AVURLAsset未加载(.mov文件)

时间:2013-03-16 09:19:32

标签: ios avasset

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

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

AVURLAsset *videoAsset = [AVURLAsset URLAssetWithURL:outputURL options:nil];

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

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

if ([outputURL checkResourceIsReachableAndReturnError:&err] == NO)
        NSLog(@"Not reachable!");

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

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

这可能是由于文件的编码所致。例如,如果该文件是使用Sorenson 3 (SVQ3)编解码器编码的,则您需要先更新媒体文件,然后再将其传递给AVURLAsset。您可以使用QTMovieModernizer类来实现。