ich vor kurzem in ein Problem lief, dass ich nicht überall im Internet diskutiert finden konnte - ich war Initialisierung ein AVAudioPlayer
eine Audiodatei zu spielen, und immer folgende Fehlermeldung:AVAudioPlayer Initialisierung: Fehlercode -50
Error Domain=NSOSStatusErrorDomain Code=-50 "Operation could not be completed. (OSStatus error -50.)
Wie sich herausstellte, hatte ich einen Fehler bei der Erstellung meines NSURL
gemacht, um es an den Audioplayer init
zu senden, was dazu führte, dass das NSURL
Objekt null war. Dummer Fehler, ziemlich leicht zu finden beim Debuggen, aber ich dachte, ich würde es hier auflisten, falls jemand anderes das Gleiche macht.
Und für alle anderen, die sich fragen, warum ihr NSURL-Objekt null ist, wenn Sie Ihre NSURL wie folgt erstellen und Ihr Dateiname Leerzeichen enthält, müssen Sie in Prozent codieren: 'NSString * path = [[ NSBundle mainBundle] pathForResource: @ "file with spaces.mp3" ofType: @ ""]; NSString * path = [Pfad stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]; NSURL * url = [NSURL URLWithString: Pfad]; ' – Brynjar
great Kommentar, der das Problem mit Leerzeichen im Dateinamen hervorhebt! vielen Dank! – codepushr
Eine mögliche Quelle für diesen Fehler ist die Verwendung der Option AVAudioSessionCategoryOptions.defaultToSpeaker zusammen mit AVAudioSessionCategoryPlayback. Das funktioniert nicht, Sie müssen AVAudioSessionCategoryPlayAndRecord verwenden - oder die defaultToSpeaker-Option löschen. – RenniePet