调用AVAudioSession setActive后恢复iPod播放:否

时间:2013-01-08 18:57:51

标签: objective-c ios avaudiosession

在您的应用使用会话完成后,恢复播放iPod或其他音频会话的最佳方法是什么?

注意我已经尝试过调用...

[_session setActive:NO
          withFlags:AVAudioSessionSetActiveFlags_NotifyOthersOnDeactivation
              error:outError];

我正在构建一个iOS VoIP应用程序,它使用AVAudioSessionCategoryPlayAndRecord作为其类别,并使用kAudioSessionMode_VoiceChat作为其模式。为了简化音频会话管理的处理,我有一个单例,它可以监听应用程序状态和其他重要事件的通知。但是,上述代码似乎不会导致音乐在iPod应用程序上恢复。

最后,我们还注意到,当双击主页按钮时,屏幕底部显示的音乐控件就像我们的应用程序是播放音频一样。然而,我们已经将它设置为不活跃。

如果有人有任何线索,我愿意更多地了解这里发生的事情。

1 个答案:

答案 0 :(得分:0)

在我看来,您无法通知iOS您不再需要音频会话。你确定对“setActive”的调用没有失败吗?或者可能在代码中的其他位置重新激活会话。

除此之外,一旦系统意识到您没有使用它,音乐应用程序应该能够重新获得它的音频。这可以通过使用AVAudioSessionInterruptionNotification通知的第三方应用程序来完成。对于调试,您可以尝试添加自己作为观察者,看看您的回调是否被调用。因此,如果您成功停用了会话,其他应用程序应该可以完成剩下的工作。