【发布时间】:2012-08-26 08:03:11
【问题描述】:
我开发了一个 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?
【问题讨论】:
-
您是否尝试将音频帧偏移设置为 -1 和/或完全停止您的播放器实例?
-
560030580 转换为十六进制并解释为 ASCII 是
!act。如果您在AudioSession.h中查找此内容,则该错误为kAudioSessionNotActiveError。 -
@SteveMadsen 你是个了不起的十六进制低语者。
标签: ios ios5 avaudioplayer avaudiosession