1

「中断」後にゲーム音楽を戻すために audioPlayerEndInterruption を使用しています。テストされたすべてのシナリオで完全に機能するように見えますが、次の点を除きます。 電話がかかってきたが発信者が (応答される前に) 電話を切った場合、ゲームは戻ってきますが、オーディオ トラックは戻りません。

私が言うように、他のすべての通話中断シナリオは機能し、トラックは戻ってきます. これは何らかのiOSのバグなのだろうか?誰もこの問題について聞いたことがありますか? 奇妙に思えます。

とりあえず忘れがちだけど、めんどくさい!私のコードは次のようなものです:

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

アドバイスをいただければ幸いです。ありがとう。

4

1 に答える 1

0

決して遅くなるよりはましだ。

私もこの問題を経験しています。すべてのAVAudioPlayerが停止し、openALサウンドのみが再生されている場合、AVAudioSessionデリゲートメソッドが期待どおりに呼び出されるため(少なくともiOS 5.1では)バグのように見えます(ただし、AVAudioPlayerは呼び出されません)。

したがって、AVAudioPlayerが実行されている場合は、回避策を使用します。AppDelegate:: applicationDidBecomeActive呼び出しをaudioPlayerEndInterruptionハンドラーに追加し、必要に応じていくつかのチェックを行います(サウンドマネージャーが存在する場合など)。これは私のために働きます。

于 2012-12-03T17:13:13.920 に答える