2017-07-24 3 views
0

ich diesen Fehler hatte, wo ich AVFoundation verwenden, um einen Weg zu meiner Audio-Datei zu machen, so, wenn ich diese Codezeile verwendenWert kann nicht auspacken Wenn Sie diese Codezeile verwenden Insbesondere

audioPlayer = try AVAudioPlayer(contentsOf: URL.init(fileURLWithPath: Bundle.main.path(forResource: "Alone", ofType: "m4r")!)) 
audioPlayer.prepareToPlay() 

Es stürzt ab und gibt mir

Ich habe den ganzen Code richtig, da der Compiler keine Fehler zeigt. Ich verwende Xcode 9 und swift 4

+1

Es wird URL-Pfad mit Ressource "Alone.m4r" nicht abgerufen. Also, es wird zum Absturz. –

+0

Wenn Sie es versuchen, sollten Sie auch fangen oder es abstürzen lassen –

+0

Problem kann aufgrund der erzwungenen Unwrap sein, die Sie verwenden: Bundle.main.path (forResource: "Alone", ofType: "m4r")! – PGDev

Antwort

2

Dies geschieht, weil Sie erzwungenen Auspacken von nicht vorhandenen Pfad. Generell ist es eine schlechte Übung. Versuchen Sie, das erzwungene Auspacken zu vermeiden. Versuchen Sie folgendes:

guard let path = Bundle.main.path(forResource: "Alone", ofType: "m4r") else { 
    print("wrong path") 
    return 
} 
let url = URL(fileURLWithPath: path) 
audioPlayer = try AVAudioPlayer(contentsOf: url) 
audioPlayer.prepareToPlay() 

Dann, wenn Sie einen „falschen Weg“ in Debug-Konsole zu sehen, die die Ressource mit dem Dateinamen „Alone“ und Erweiterung „m4r“ bedeutet nicht existiert Bündel in Ihrer Anwendung. Hoffe diese Hilfe.

Verwandte Themen