即使类别为AVAudioSessionCategoryPlayback,AVAudioPlayer也会停止在屏幕锁定上播放

Sid*_*Sid 12 iphone screen avaudioplayer

我的应用程序使用AVAudioPlayer播放音频播放列表.我没有更改iOS4.3和iOS5之间的代码.但是,即使我将类别设置为AVAudioSessionCategoryPlayback,iOS5上的音频也会暂停屏幕锁定.

我在iOS4.3和iOS5设备上测试了代码,这个问题出现在iOS5设备上.

还有其他人遇到过这个问题吗?我不知所措,因为我甚至不知道从哪里开始调试这个问题.我的调试开始并以检查AVAudioSessionCategory设置结束.

我正在做的代码是:

[[AVAudioSession sharedInstance] setDelegate: self];
NSError *setCategoryError = nil;
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: &setCategoryError];
Run Code Online (Sandbox Code Playgroud)

编辑:

我已经实施和处理了 audioPlayerBeginInterruption

编辑#2:解决了!感谢Rhythmic Fistman的回答

这是发生了什么以及我做了什么.即使屏幕被锁定,iOS5也会立即将您的应用推向后台.这意味着您需要在应用程序中启用背景音频,并使处理该音频的任何视图/视图控制器成为第一响应者.

第1步: 在您的应用中启用背景音频

步骤2: 启用远程事件并成为负责处理音频播放列表的viewcontroller/view上的第一个响应者

注意:确保在设备上进行测试.模拟器将使代码看起来不起作用.

Rhy*_*man 12

Screenlock在iOS5中已更改,它现在将您的应用程序发送到后台,因此如果您希望继续播放音频,则必须将"audio"作为UIBackGroundModes添加到Info.plist文件中.

我能找到的最接近文档的是一些Apple devforum 帖子(需要登录).