iOS-如何使用AVAsset或AVURLAsset获取.mp4文件的持续时间

iOS-如何使用AVAsset或AVURLAsset获取.mp4文件的持续时间,ios,avfoundation,mp4,duration,avasset,Ios,Avfoundation,Mp4,Duration,Avasset,我知道以前已经回答过视频类型的持续时间问题,但我在使用AVAsset和avurlaste获取.mp4文件的持续时间时遇到了真正的麻烦。我正在使用以下代码 NSString *itemPathString = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0] stringByAppendingPathComponent:obmodel.actualnam

我知道以前已经回答过视频类型的持续时间问题,但我在使用
AVAsset
avurlaste
获取
.mp4
文件的持续时间时遇到了真正的麻烦。我正在使用以下代码

NSString *itemPathString = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0] stringByAppendingPathComponent:obmodel.actualname];
NSURL *itemPathURL = [NSURL URLWithString:itemPathString];

if([[NSFileManager defaultManager] fileExistsAtPath:itemPathString]){

    NSLog(@"File Exists");
}

AVAsset *videoAsset = (AVAsset *)[AVAsset assetWithURL:itemPathURL];
AVAssetTrack *videoAssetTrack = [[videoAsset tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0];

NSLog(@"duration: %.2f", CMTimeGetSeconds(videoAssetTrack.timeRange.duration));
if(CMTimeGetSeconds(videoAsset.duration) >= 59.0){
}
但每次它返回
0
我还导入了以下
标题

#import <AVFoundation/AVAsset.h>
#import <CoreMedia/CoreMedia.h>
#import <AVFoundation/AVFoundation.h>
#导入
#进口
#进口
我还尝试了一些我知道的其他代码,但都不适合我。 如果我通过
iExplorer
播放视频,我的路径很好,但不知道我缺少了什么。 我想告诉大家,我发现我的
AVAssets
没有正确加载
请告诉我应该做什么。

是的,我以前也有过类似的问题。对我来说,当我使用:

NSURL *itemPathURL = [NSURL fileURLWithPath:itemPathString];
而不是

NSURL *itemPathURL = [NSURL URLWithString:itemPathString];
如果您完全确定您的路径是正确的,这应该可以解决您的问题


希望这有帮助

可能会有帮助。@ChrisLoonam谢谢你的回复。我使用了他的方法,它返回我
AVKeyValueStatusFailed
在我的情况下会出现什么错误?tracksKey应该是什么?Hi@SyedAliSalman,需要你在stackoverflow.com/questions/55605987/。。。这个问题和这个一样。。请看看这个。。。谢谢@LuisCien,需要你的帮助。。。这个问题和这个一样。。请看看这个。。。谢谢