我的应用程序使用AVAudioPlayer播放音频播放列表。我没有在iOS4.3和iOS5之间更改代码。但是,即使我将类别设置为AVAudioSessionCategoryPlayback,iOS5上的音频也会在屏幕锁定上暂停。
我已经在iOS4.3和iOS5设备上测试了代码,并且在iOS5设备上发生了此问题。
还有其他人遇到过这个问题吗?我不知所措,因为我什至不知道从哪里开始调试此问题。我的调试通过检查AVAudioSessionCategory设置开始和结束。
我正在执行的代码是:
[[AVAudioSession sharedInstance] setDelegate: self];
NSError *setCategoryError = nil;
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: &setCategoryError];
编辑:
我已经实现并处理了
audioPlayerBeginInterruption
编辑#2:解决了!感谢Rhythmic Fistman's Answer
这是正在发生的事情,我做了什么。现在,即使屏幕被锁定,iOS5的更改也会将您的应用推到后台。这意味着您需要在应用程序中启用背景音频,并使处理该音频的任何 View / View Controller 成为第一响应者。
步骤1:
Enable background audio in your app
第2步:
Enable remote events and become the first responder on the viewcontroller / view responsible for handling your audio playlist
注意:
确保在设备上对此进行测试。模拟器将使代码看起来不起作用。
最佳答案
屏幕锁在iOS5中已更改,现在将您的应用发送到后台,因此,如果要继续播放音频,必须将“音频”作为UIBackGroundModes添加到Info.plist文件中。
我可以找到与该文档最接近的内容
Apple devforum posts(需要登录)。
关于iphone - 即使类别为AVAudioSessionCategoryPlayback,AVAudioPlayer也将停止在屏幕锁定上播放,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8085049/