2012-09-30 5 views
7

Vorrei utilizzare AVFoundation per visualizzare un video su osx. Vorrei inizializzare il film da dati grezzi in fase di esecuzione. Secondo questo documento: https://developer.apple.com/library/mac/#technotes/tn2300/_index.htmlAVAsset è l'equivalente di QTKit'sQTMovie. QTMovie ha la funzione movieWithData:error: per caricare il video dai dati, mentre non ho trovato nulla di simile in AVAsset. Quindi, è possibile fare la stessa cosa in AVFoundation?Cacao: AVAsset da dati non elaborati (ad esempio NSData)

Grazie

risposta

1

temo la possibilità unica per inizializzare AVAsset esempio dai dati grezzi è quello di salvare i dati prima in un file. AVAsset e le sue sottoclassi utilizzano gli URL solo nei loro costruttori.

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]; 
     });