2015-10-31 10 views
6

Ich habe ein Archiv im App Store hochgeladen und bekomme einen Absturz, wenn ich versuche, einen Intro-Sound zu spielen. Ich verwende AVAudioEngine, um den Sound abzuspielen. Wenn ich Code über Xcode kompiliere und ausführe, funktioniert alles gut. Wenn ich auf TestFlight hochlade und versuche, meine App als internen Tester auszuführen, stürzt meine App ab. Der Crash-Bericht ist:Testflug-App stürzt ab mit libAVFAudio.dylib: AVAE_RaiseException (NSString *, ...) + 60

enter image description here

Wenn ich AVAudioPlayer verwenden diesen Sound zu spielen, es ist ok. Ich kann nicht verstehen, was das Problem mit AVAudioEngine ist. Irgendwelche Ratschläge?

+0

Ich habe das gleiche Problem ... Kann jemand beraten? – KorinW

+0

Alle Updates, ich habe das gleiche Problem? –

+0

Ich habe nie eine Lösung gefunden ... Ich habe stattdessen AVAudioPlayer verwendet. – Thomas

Antwort

1

Ich sah die gleiche Ausnahme nur im Release-Build meiner App und speziell für iPhone7. Die Ausnahme scheint an einem Wechselpunkt der Audio-Session-Kategorie aufzutreten. In meinem Fall von

Wechsel
AVAudioSessionCategorySoloAmbient 

zu

AVAudioSessionCategoryPlayAndRecord, with: AVAudioSessionCategoryOptions.defaultToSpeaker 

ich eine Abhilfe gefunden, die zumindest für mich einfach funktioniert.

Der folgende Artikel https://forums.developer.apple.com/thread/65656 sagt, dass diese Art von Ausnahme bei der Initialisierung von mehreren Audio-Eingabeeinheit auftritt.

Um die Initialisierung von mehrere Eingangsaudioeinheit zu verhindern, hinzugefügt ich die folgenden Codes vor dem Wechsel der Audiositzung Kategorie

AudioOutputUnitStop((engine.inputNode?.audioUnit)!) 
AudioUnitUninitialize((engine.inputNode?.audioUnit)!) 

Motor die Instanz von AVAudioEngine ist.

Ich hoffe, es wird euch helfen!