AVURLAsset未加载(.mov文件)

Sko*_*ota 5 ios avasset

我正在尝试AVURLAsset使用以下代码加载名为output.mov(在iPhone上创建)的文件:

NSURL *outputURL = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@%@", NSTemporaryDirectory(), @"output.mov"]];

AVURLAsset *videoAsset = [AVURLAsset URLAssetWithURL:outputURL options:nil];
Run Code Online (Sandbox Code Playgroud)

该文件位于tmp应用程序的目录中.没有出现错误,但似乎没有加载资产,因为没有元数据可用(即调用NSLog(@"%@", [videoAsset commonMetadata])什么都不返回),所以我不能对资产做任何事情.

我使用以下代码来确保通过URL可以访问资源,它看起来肯定是:

if ([outputURL checkResourceIsReachableAndReturnError:&err] == NO)
        NSLog(@"Not reachable!");
Run Code Online (Sandbox Code Playgroud)

所以我不确定为什么资产没有加载.我也尝试使用加载资产,[AVAsset assetWithURL:]但也不起作用.

任何帮助将不胜感激.

Nar*_*yan 0

这可能是因为您的文件的编码。例如,如果该文件是使用Sorenson 3 (SVQ3)编解码器编码的,则您需要在将媒体文件传递到AVURLAsset. 你可以使用QTMovieModernizer类来做到这一点。