2012-09-30 11 views
7

Me gustaría utilizar AVFoundation para mostrar un video en osx. Me gustaría inicializar la película a partir de datos sin procesar en tiempo de ejecución. De acuerdo con este documento: https://developer.apple.com/library/mac/#technotes/tn2300/_index.htmlAVAsset es el equivalente a QTKitQTMovie. QTMovie tiene la función movieWithData:error: para cargar el video de datos, mientras que no pude encontrar nada similar en AVAsset. Entonces, ¿es posible hacer lo mismo en AVFoundation en absoluto?Cacao: AVAsset de datos sin procesar (es decir, NSData)

Gracias

Respuesta

1

Me temo que la única posibilidad para inicializar AVAsset ejemplo, a partir de datos sin procesar es para guardar los datos antes como un archivo. AVAsset y sus subclases usan URL solo en sus constructores.

3
NSString *tempFilePath = [NSTemporaryDirectory() stringByAppendingPathComponent:@"tmp.mp3"]; 

NSFileManager *manager = [NSFileManager defaultManager]; 
[manager createFileAtPath:tempFilePath contents:mp3Data attributes:nil]; 

AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:[NSURL fileURLWithPath:tempFilePath] options:nil]; 

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ 
      [manager removeItemAtPath:tempFilePath error:nil]; 
     }); 
Cuestiones relacionadas