我有一个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)
我的app app委托:
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文件中的“必需背景模式”属性定义为“App播放音频”。
在iPhone中工作正常,所以任何想法都是我的问题?
先谢谢了,
答案 0 :(得分:1)
尝试注册远程控制事件......
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
虽然它似乎与它没有任何关系,但如果您的应用没有获得遥控器,AVPlayer和其他播放器状态似乎会失败。
在你的app delegate中,通过以下方式响应遥控器:
-(void)remoteControlReceivedWithEvent:(UIEvent *)event
{
switch(event.subtype)
{
case UIEventSubtypeRemoteControlPause:
[self pause];
break;
case UIEventSubtypeRemoteControlPlay:
[self play];
break;
}
}