Ich habe eine iPhone-Anwendung entwickelt, die verschiedene Musikdateien abspielt. Alles funktioniert gut, außer wenn ein eingehender Anruf die Wiedergabe unterbricht. Das stürzt die App mit dem folgenden Protokoll:iPhone Absturz beim Abspielen von Audiodateien mit AVAudioPlayer und eingehende Anrufe unterbricht die Wiedergabe
START Crashlog
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 Crashlog
Ich habe es verengt in der applicationWillResignActive Methode in der AppDelegate auf einen Anruf nach unten, aber ich kann Es scheint nicht zu funktionieren, denn wenn die App in den Hintergrundmodus wechselt (durch Drücken der Home-Taste), funktioniert die App korrekt. Sie stürzt nur ab, wenn ein Telefonanruf eingeht.
Die Linie, die den Absturz in der applicationWillResignActive Methode verursacht ist:
[NavController popToRootViewControllerAnimated: NO]; // navController ist eine Instanz von UINavigationController; Ich habe diese Anweisung verwendet, um alle View-Controller zu entfernen, und wenn die App fortgesetzt wird, schiebe ich den ersten View-Controller, damit die App von Anfang an startet.
Hat jemand eine Idee, warum dieser Absturz nur auftritt, wenn ein Telefonanruf empfangen wird?
Haben Sie gelöst? – user370773