我正在尝试构建iOS应用程序(iOS> 5.0)。当由用户设置的定时器结束时,它应播放音乐文件。这里是我的设置,如果到目前为止做了什么:iOS中的背景音频
- 我在plist中使用avplayer
- 我设置背景模式为“应用程序播放音频” 在我的appDelegate
我:
NSError *sessionError = nil; [[AVAudioSession sharedInstance] setDelegate:self]; [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:&sessionError];
一首歌之前,将要播放一集:
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:&sessionError]; [[AVAudioSession sharedInstance] setActive:YES error:&sessionError];
我通知我的“playerItemDidPlayToEnd”应用程序,停止播放器,并告诉其他应用程序,如music.app变得活跃起来
_avPlayer = nil; NSError *sessionError = nil; [[AVAudioSession sharedInstance] setActive:NO withFlags:AVAudioSessionSetActiveFlags_NotifyOthersOnDeactivation error:&sessionError];
这工作得很好。你可以让你的音乐应用程序在后台播放。我的应用程序开始播放音乐应用程序消失的歌曲。我的歌被播放,如果它完成了音乐应用程序继续播放。但只要我的应用程序不在后台。
在后台我得到的错误:
Error Domain=NSOSStatusErrorDomain Code=560161140 "The operation couldn\u2019t be completed. (OSStatus error 560161140.)"
是否有可能的两个组合,在背景(自定义事件)播放和F.E.之间切换music.app和我的应用程序在后台是不可能的?
这里,我的播放器模型的代码:http://pastie.org/4830995
是的,正如上面提到的“我的plist中的背景模式设置为”应用程序播放音频“,但我也阅读了几个线程后,背景模式不再有任何影响,因为ios5了。 – mightym
对不起,我不知道。 –