0

我有一个通过流媒体播放音乐的 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 中工作正常,所以有什么想法是我的问题吗?

先谢谢了,

4

1 回答 1

1

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

[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];

尽管它似乎与它没有任何关系,但如果您的应用程序没有获取遥控器,则播放时 AVPlayer 和其他播放器状态似乎会失败。

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

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

    }
}
于 2013-12-05T16:09:08.297 回答