我尝试使用以下代码加载一个名为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:]加载资源,但同样不起作用。
任何帮助都将不胜感激。
发布于 2020-02-07 02:09:07
这可能是因为您的文件的编码。例如,如果该文件是使用Sorenson 3 (SVQ3)编解码器编码的,则在将其传递到AVURLAsset之前,您需要对媒体文件进行现代化处理。您可以使用QTMovieModernizer类来完成此操作。
https://stackoverflow.com/questions/15447579
复制相似问题