2011-01-10 17 views
1

さまざまな音楽ファイルを再生するiPhoneアプリケーションを開発しました。着信電話が再生を中断する場合を除いて、すべてが正常に機能しています。これは、次のログとアプリケーションをクラッシュ:AVAudioPlayerを使用してオーディオファイルを再生しているときにiPhoneクラッシュが発生する

START CRASH LOG

Thread 0 Crashed: 

0 libobjc.A.dylib     0x32d98f20 objc_msgSend + 20 
1 AVFoundation     0x30739ddc AVAudioSessionPropertyListener(void*, unsigned long, unsigned long, void const*) + 284 
2 AudioToolbox     0x36d78bec SSServer_AudioSessionInterruptionListenerMessage + 316 
3 AudioToolbox     0x36d017bc _XAudioSessionInterruptionListenerMessage + 128 
4 AudioToolbox     0x36c68584 mshMIGPerform + 224 
5 CoreFoundation     0x3752f5c4 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 22 
6 CoreFoundation     0x3752f582 __CFRunLoopDoSource1 + 158 
7 CoreFoundation     0x3752182e __CFRunLoopRun + 574 
8 CoreFoundation     0x37521504 CFRunLoopRunSpecific + 220 
9 CoreFoundation     0x37521412 CFRunLoopRunInMode + 54 
10 GraphicsServices    0x33e76d1c GSEventRunModal + 188 
11 UIKit       0x3591d574 -[UIApplication _run] + 580 
12 UIKit       0x3591a550 UIApplicationMain + 964 

ENDのクラッシュログ

私はアプリデリゲートにapplicationWillResignActiveメソッドで呼び出しにそれを絞られているが、私はできますアプリがバックグラウンドモード(ホームボタンを押すことによって)に進むと、アプリが正しく動作し、電話がかかったときにクラッシュするだけなので、それを理解しているようだ。 applicationWillResignActive方法でクラッシュを引き起こす

ラインである:

【からNavController popToRootViewControllerAnimated:NO]。 // navControllerはUINavigationControllerのインスタンスです。私はこのステートメントを使用してすべてのビューコントローラを削除し、アプリケーションが再開したら、最初のビューコントローラをプッシュして、アプリが最初から開始するようにします。

このクラッシュが電話の着信時にのみ発生する理由を知っている人はいますか?

+1

解決しましたか? – user370773

答えて

1

非常に似たようなクラッシュを追跡しています。 、MyAudioSessionInterruptionListener(または AudioSessionInitializeに渡されたコールバックの名前)特に

https://github.com/mattgallagher/AudioStreamer/issues/6

を、それが登録されていた後、それはinClientDataは、変更することはできませんです。

、ここで説明したように私達のものがあることが判明しますそのため、コールバックは、基になるオブジェクトの割り当てが解除されていても、常に賢明なことを行わなければなりません。

AudioStreamに提案されている解決策は、静的変数を使用し、現在コールバックに関心のあるオブジェクトを指していることを確認し、割り当てられていないオブジェクトを指し示すことです。重要な点はinClientDataを使用しないことです。

関連する問題