【问题标题】:AVPlayer not working on iPad when device auto-locked设备自动锁定时,AVPlayer 无法在 iPad 上运行
【发布时间】:2013-10-31 15:21:16
【问题描述】:

我有一个通过流媒体播放音乐的 iOS 应用,它在 iPhone 上运行良好。但我在 iPad 上遇到了问题。 我的问题是,当我播放歌曲时,屏幕自动锁定后正在播放当前歌曲但未播放下一首歌曲。如果我手动锁定设备,下一首歌曲会正确播放。 我在执行 audioPlayerDidStartPlaying 委托时记录,所以我知道它已执行,但我什么也听不到。 我是从 iPad 的日志中得到的。

Oct 31 13:48:41  mediaserverd[1891] <Notice>: 13:48:41.634 NOTE:      [0x4150000] <aqme> MEMixerChannel.cpp:777: EnableProcessor: EQ not supported for 2e+04 Hz
Oct 31 13:48:44  mediaserverd[1891] <Notice>: 13:48:44.331 NOTE:      [0x4150000] <aqme> MEMixerChannel.cpp:777: EnableProcessor: EQ not supported for 2e+04 Hz
Oct 31 13:48:44  mediaserverd[1891] <Warning>: 13:48:44.334 [0x4150000] TranslateCMSessionErrorCode: AudioSessionSetClientPlayState: WARNING translating CMSession error: -16980
Oct 31 13:48:44  mediaserverd[1891] <Error>: 13:48:44.335 ERROR:     [0x4150000] AQServer.cpp:150: SetSessionPlayState: AudioQueue: Error '!pla' from AudioSessionSetClientPlayState(0x76358a)

我的应用委托中有:

NSError *sessionError = nil;
[[AVAudioSession sharedInstance] setActive:YES error:NULL];
[[AVAudioSession sharedInstance] setDelegate:self];
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:&sessionError];

// Change the default output audio route
UInt32 doChangeDefaultRoute = 1;
AudioSessionSetProperty(kAudioSessionProperty_OverrideCategoryDefaultToSpeaker,
                            sizeof(doChangeDefaultRoute), &doChangeDefaultRoute);

并且我在 info.plist 文件中将“必需的背景模式”属性定义为“应用播放音频”。

在 iPhone 中工作正常,所以有什么想法是我的问题吗?

非常感谢,

【问题讨论】:

    标签: ios iphone ipad streaming avplayer


    【解决方案1】:

    尝试注册远程控制事件...

    [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
    

    虽然看起来和它没什么关系,但是如果你的应用没有获取遥控器,播放时AVPlayer和其他播放器状态似乎会失败。

    在您的应用委托中,通过以下方式响应遥控器:

    -(void)remoteControlReceivedWithEvent:(UIEvent *)event
    {
        switch(event.subtype)
        {
            case UIEventSubtypeRemoteControlPause:
                [self pause];
                break;
            case UIEventSubtypeRemoteControlPlay:
                [self play];
                break;
    
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-09
      • 1970-01-01
      • 2014-08-30
      • 2017-01-28
      • 2016-08-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多