我开发了一个 iPhone 应用程序,它允许其他应用程序在后台播放音频。为此,我像这样初始化我的音频会话:
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
在我的应用程序的某个时刻,我提供了一个音频播放器来播放存储在 CoreData 中的一些文件,其中包含 AVAudioPlayer。当用户点击播放按钮时,背景音频应该暂停。当播放器完成或暂停时,背景音频应恢复播放。
在播放器完成播放后恢复时
-(void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag
{
[[AVAudioSession sharedInstance] setActive:NO withFlags:AVAudioSessionSetActiveFlags_NotifyOthersOnDeactivation error:nil];
}
就像一个魅力,我在暂停后卡住了简历。它应该在按钮的 IBAction 中以相同的方式工作
-(IBAction)pausePlayer
{
if (self.player.isPlaying) {
[self.player pause];
[[AVAudioSession sharedInstance] setActive:NO withFlags:AVAudioSessionSetActiveFlags_NotifyOthersOnDeactivation error:nil];
}
}
但我总是遇到同样的错误:
Unable to deactivate audio session. Error: Error Domain=NSOSStatusErrorDomain Code=560030580 "The operation couldn’t be completed. (OSStatus error 560030580.)"
有什么建议为什么在这种情况下无法停用 AudioSession?