Acceder a una canción cargada con AVPlayer

Quiero guardar una canción que cargué con el método - (id)initWithURL: de AVPlayer, para no tener que cargarla la próxima vez que quiera reproducirla. Pasé horas buscando en la documentación de Apple, pero no encontré una solución.

preguntado el 22 de mayo de 12 a las 14:05

2 Respuestas

Si tiene una URL, simplemente puede usar cualquiera NSURLConnection o clases similares para descargar la URL al almacenamiento local. AVPlayer Sin embargo, no hará esto por usted, tendrá que hacerlo manualmente.

contestado el 22 de mayo de 12 a las 18:05

Como dijo @iKenndac, no puedes sacar esto de AVPlayer. Puede descargar el archivo usted mismo y almacenarlo en el disco, pero perderá todas las optimizaciones que ofrece AVPlayer en términos de descargar una canción y comenzar a reproducirla lo más rápido posible. Sin duda, la próxima vez que reproduzca la canción obtendrá los beneficios de tener la canción ya en el disco. Si esa compensación está bien para usted, entonces en sus devoluciones de llamada de NSURLConnection hará algo como esto:

- (void)connection:(NSURLConnection *)connection
    didReceiveData:(NSData *)data 
{
    [responseData appendData:data];
}

- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
    NSFileHandle *myHandle = [NSFileHandle fileHandleForUpdatingAtPath:someFilePath];
    [myHandle writeData:responseData];
    [myHandle synchronizeFile];
    [myHandle closeFile];           
}

Deberá definir responseData como un objeto NSMutableData y asegurarse de inicializarlo antes de llamar a appendData.

contestado el 22 de mayo de 12 a las 18:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.