1

我正在使用 audioPlayerEndInterruption 在“中断”后恢复游戏音乐。它似乎适用于所有测试的场景,除了: 如果接到电话但来电者挂断(在被接听之前),游戏会回来,但音轨不会。

正如我所说,所有其他呼叫中断情况都有效,轨道确实回来了。我想知道这是否是某种iOS错误?有人听说过这个问题吗?似乎很奇怪。

我倾向于暂时忘记它,但它很烦人!我的代码是这样的:

-(void)audioPlayerEndInterruption:(AVAudioPlayer *)player withFlags:(NSUInteger)flags{
    if(flags == AVAudioSessionInterruptionFlags_ShouldResume && player != nil){
        [player play];
    }
}

将不胜感激任何建议。谢谢。

4

1 回答 1

0

迟到总比不到好。

我也遇到了这个问题。它看起来像一个错误(至少在 ios 5.1 中),因为如果所有 AVAudioPlayer 都已停止,并且仅播放 openAL 声音,则 AVAudioSession 委托方法会按预期调用(但 AVAudioPlayer 不会)。

因此,如果 AVAudioPlayer 正在运行,我使用一种解决方法:只需将 AppDelegate::applicationDidBecomeActive 调用添加到您的 audioPlayerEndInterruption 处理程序,并在适当的情况下进行一些检查(如果存在声音管理器等等)。这对我有用。

于 2012-12-03T17:13:13.920 回答