iOS: crea un NSURL desde un NSFileHandle o NSPipe

Recibo un flujo de audio codificado a través de la networking, pero hay un montón de datos mezclados, así que necesito recibir los packages, eliminar el audio y luego reproducir el audio.

AVAudioPlayer, que puede o no ser la mejor herramienta para esto, pero es la ruta que estoy persiguiendo actualmente, quiere datos de NSData o NSURL. NSData no funcionará porque es un flujo de datos y quiero que comience tan pronto como llegue y continúe jugando. Mi pensamiento fue:

NSPipe *pipe = [[NSPipe alloc] init]; NSFileHandle *writeHandle = [pipe fileHandleForWriting]; NSFileHandle *readHandle = [pipe fileHandleForReading]; // in network reception thread... NSData *audioData = [packet getAudioData]; [writeHandle writeData:audioData]; // in audio thread... NSURL *url = [[NSURL alloc] init]; [url setResourceValue:NSURLFileResourceTypeNamedPipe forKey:NSURLFileResourceTypeKey error:&error]; // Connect the readHandle AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error]; 

Sin embargo, no sé cómo pasar el `readHandle` a la URL. ¿Cómo creo un NSURL desde un NSFileHandle existente? ¿Hay un enfoque mejor para esto por completo? ¿Hay alguna forma de escribir datos en algo que pueda convertirse en un NSURL?

El único requisito real es que puedo reproducir el audio lo más cerca posible del time real. No quiero poner en queue los datos ni siquiera una décima de segundo antes de que se reproduzcan.

No es posible recuperar una URL de NSFileHandle porque no todos los manejadores tienen una URL correspondiente. Su ejemplo parecería ser uno de esos ejemplos.