如果CALLER取消,audioPlayerEndInterruption不起作用

时间:2012-06-01 13:24:26

标签: iphone ios ios5

我正在使用audioPlayerEndInterruption在“中断”后恢复游戏音乐。 它似乎适用于所有测试场景,除了: 如果收到来电但呼叫者挂机(在接听之前),则游戏会回来,但音频曲目没有。

正如我所说,所有其他呼叫中断方案都有效,跟踪确实会回来。我想知道这是不是某种iOS错误?有没有人听说过这个问题?看起来很奇怪。

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

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

非常感谢任何建议。感谢。

1 个答案:

答案 0 :(得分:0)

迟到总比没有好。

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

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