1

複数の AVAudioPlayer オブジェクトを使用して音楽を再生するアプリがあります。iOS6 では、このアプリは着信によって中断されるとクラッシュします。この問題は、iOS 4.3、5.0、または 5.1 では発生しません。アプリがクラッシュすると、次のスタック トレースが表示されました。

(lldb) スレッド バックトレース * スレッド #1: tid = 0x2403, 0x3b905e64 libsystem_c.dylib pthread_mutex_lock + 388, stop reason = instruction step over frame #0: 0x3b905e64 libsystem_c.dylibpthread_mutex_lock + 388 フレーム #1: 0x3299bd18 AVFoundation AVAudioPlayerCpp::sessionPropertyListener(unsigned long, unsigned long, void const*) + 124 frame #2: 0x33200b32 AudioToolboxAudioSessionPropertyListeners::CallPropertyListenersImp(unsigned long, unsigned long, void const*) Audio + 170cc フレーム #3: 0x3Toolbox320 AudioSessionPropertyListeners::CallPropertyListeners(unsigned long, unsigned long, void const*) + 244 frame #4: 0x332b4afc AudioToolboxASCallbackReceiver_AudioSessionInterruptionListenerMessage + 184 frame #5: 0x33389dde AudioToolbox _XAudioSessionInterruptionListenerMessage + 70 frame #6: 0x3320058a AudioToolboxmshMIGPerform + 382 frame #7: 0x337a33e6 CoreFoundation __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 34 frame #8: 0x337a338a CoreFoundation__CFRunLoopDoSource1 + 138 frame #9: 0x337a220e CoreFoundation __CFRunLoopRun + 1382 frame #10: 0x3371523c CoreFoundationCFRunLoopRunSpecific + 356 frame #11: 0x337150c8 CoreFoundation CFRunLoopRunInMode + 104 frame #12: 0x372f433a GraphicsServicesGSEventRunModal + 74 frame #13: 0x356312b8 UIKit`UIApplicationMain + 1120

applicationWillResignActive を追加しましたが、クラッシュが発生したときに呼び出されません。また、アプリ デリゲートをデリゲートとして AVAudioPlayer オブジェクトに追加し、audioPlayerBeginInterruption メソッドを実装しました。このメソッドは、クラッシュが発生したときにも呼び出されません。AVAudioPlayer オブジェクトを 1 つまたは 2 つだけ使用すると、クラッシュはなくなります。クラッシュはさらに 3 つの AVAudioPlayer オブジェクトで発生しますが、特定の時間に再生しているのはそのうちの 2 つだけで、残りは停止しています。

誰かがこの種の問題を見たことがありますか、またはヒントはありますか?

ありがとう。

4

0 に答える 0