我正在尝试使用以下代码将名为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:]
加载资产,但这也不起作用。
非常感谢任何帮助。
答案 0 :(得分:0)
这可能是由于文件的编码所致。例如,如果该文件是使用Sorenson 3 (SVQ3)
编解码器编码的,则您需要先更新媒体文件,然后再将其传递给AVURLAsset
。您可以使用QTMovieModernizer
类来实现。