poco me encontré con un problema que no pude encontrar discutido cualquier lugar en Internet - que se inicializa un AVAudioPlayer
para reproducir un archivo de audio, y conseguir el error siguiente:AVAudioPlayer inicialización: código de error -50
Error Domain=NSOSStatusErrorDomain Code=-50 "Operation could not be completed. (OSStatus error -50.)
Resultó que había cometido un error al crear mi NSURL
para enviarlo al método init
del reproductor de audio, lo que provocaba que el objeto NSURL
fuera nulo. Error estúpido, bastante fácil de encontrar al depurar, pero pensé en enumerarlo aquí por si alguien más hace lo mismo.
Y para cualquier persona que se pregunte por qué su objeto NSURL es nulo, si está creando su NSURL de esta manera y su nombre de archivo tiene espacios, necesitará codificar por ciento: 'NSString * path = [[ NSBundle mainBundle] pathForResource: @ "archivo con spaces.mp3" ofType: @ ""]; NSString * ruta = [ruta de acceso stringByAddingPercentEspaisajesUsuarioUsingEncoding: NSUTF8StringEncoding]; NSURL * url = [NSURL URLWithString: ruta]; ' – Brynjar
comentario impresionante que señala el problema con espacios en el nombre de archivo! ¡muchas gracias! – codepushr
Una posible fuente de este error es intentar usar la opción AVAudioSessionCategoryOptions.defaultToSpeaker junto con AVAudioSessionCategoryPlayback. Eso no funciona, necesita usar AVAudioSessionCategoryPlayAndRecord, o descartar la opción predeterminadaToSpeaker. – RenniePet