audioPlayerEndInterruption 不起作用,如果 CALLER 取消



我正在使用audioPlayerEndInterruption在"中断"后恢复游戏音乐。它似乎适用于所有测试的场景,除了:如果接到呼叫,但呼叫者挂断(在被应答之前),游戏会恢复,但音轨不会。

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

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

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

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

迟到总比没有好。

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

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

最新更新