ho recentemente imbattuto in un problema che non riuscivo a trovare discusso ovunque su Internet - mi è stato in fase di inizializzazione di un AVAudioPlayer
per riprodurre un file audio, e ottenere il seguente errore:AVAudioPlayer inizializzazione: il codice di errore -50
Error Domain=NSOSStatusErrorDomain Code=-50 "Operation could not be completed. (OSStatus error -50.)
A quanto risulta, ho commesso un errore durante la creazione del mio da inviare al metodo lettore audio init
, con conseguente oggetto nullo NSURL
. Stupido errore, abbastanza facile da trovare durante il debug, ma ho pensato di elencarlo qui nel caso in cui qualcun altro faccia la stessa cosa.
E per chiunque altro si chieda perché il loro oggetto NSURL è nullo, se si sta creando NSURL come questo e il nome del file contiene degli spazi, è necessario codificare per percentuale: 'NSString * percorso = [[ NSBundle mainBundle] pathForResource: @ "file with spaces.mp3" ofType: @ ""]; NSString * percorso = [percorso stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]; NSURL * url = [NSURL URLWithString: percorso]; ' – Brynjar
commento impressionante che indica il problema con gli spazi nel nome del file! enorme grazie! – codepushr
Un'origine possibile per questo errore sta tentando di utilizzare l'opzione AVAudioSessionCategoryOptions.defaultToSpeaker insieme a AVAudioSessionCategoryPlayback. Non funziona, devi usare AVAudioSessionCategoryPlayAndRecord - o rilasciare l'opzione defaultToSpeaker. – RenniePet