Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa:原始数据(即NSData)中的AVAsset_Cocoa_Avfoundation_Qtkit - Fatal编程技术网

Cocoa:原始数据(即NSData)中的AVAsset

Cocoa:原始数据(即NSData)中的AVAsset,cocoa,avfoundation,qtkit,Cocoa,Avfoundation,Qtkit,我想使用AVFoundation在osx上显示视频。我想在运行时从原始数据初始化电影。根据本文档:AVAsset相当于QTKit的QTMovieQTMovie具有从数据加载视频的功能movieWithData:error:,而我在AVAsset中找不到任何类似的功能。那么,在AVFoundation中也可以做同样的事情吗 谢谢恐怕从原始数据初始化AVAsset实例的唯一可能性是将之前的数据保存为文件AVAsset及其子类仅在其构造函数中使用URL。可以通过AVAssetResourceLoade

我想使用AVFoundation在osx上显示视频。我想在运行时从原始数据初始化电影。根据本文档:
AVAsset
相当于QTKit的
QTMovie
QTMovie
具有从数据加载视频的功能
movieWithData:error:
,而我在
AVAsset
中找不到任何类似的功能。那么,在AVFoundation中也可以做同样的事情吗


谢谢

恐怕从原始数据初始化
AVAsset
实例的唯一可能性是将之前的数据保存为文件
AVAsset
及其子类仅在其构造函数中使用URL。

可以通过
AVAssetResourceLoaderDelegate
实现从
NSData
创建
AVAsset

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];
        });
具体实施:

func resourceLoader(_ resourceLoader: AVAssetResourceLoader, shouldWaitForLoadingOfRequestedResource loadingRequest: AVAssetResourceLoadingRequest) -> Bool
它必须:

  • 正确填写loadingRequest.contentInformationRequest。提示,使用
    loadingRequest.contentInformationRequest.contentType=AVFileType.mycontenttype.rawValue
  • 正确响应数据

  • 这并没有回答问题,它只是显示了如何将
    NSData
    写入临时文件,并由此初始化
    AVAsset
    。如何操作?如何找到您的示例代码?谢谢