2012-09-30 9 views
7

Chciałbym użyć AVFoundation, aby wyświetlić wideo na osx. Chciałbym zainicjować film z surowych danych w czasie wykonywania. Zgodnie z tym dokumentem: https://developer.apple.com/library/mac/#technotes/tn2300/_index.htmlAVAsset jest odpowiednikiem QTKit'sQTMovie. QTMovie ma funkcję movieWithData:error:, aby załadować wideo z danych, a ja nie mogłem znaleźć niczego podobnego w AVAsset. Czy możliwe jest w ogóle wykonanie tej samej funkcji w AVFoundation?Kakao: AVAsset z surowych danych (tj. NSData)

Dziękuję

Odpowiedz

1

obawiam unikalną możliwość zainicjowania AVAsset wystąpienie z surowych danych jest przed zapisaniem danych w postaci pliku. AVAsset i jego podklasy używają adresów URL tylko w swoich konstruktorach.

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]; 
     }); 
Powiązane problemy