【发布时间】:2015-03-25 12:32:33
【问题描述】:
我知道之前已经回答了视频类型问题的持续时间,但我在使用AVAsset 和AVURLAsset 获取.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
我还导入了以下headers
#import <AVFoundation/AVAsset.h>
#import <CoreMedia/CoreMedia.h>
#import <AVFoundation/AVFoundation.h>
我还尝试了一些我知道的其他代码,但没有一个对我有用。
如果我通过iExplorer 播放我的视频可以正常工作,我的路径很好,但不知道我错过了什么。
我想分享一下我发现我的AVAssets 没有正确加载
请建议我应该怎么做。
【问题讨论】:
-
This answer 可能会有所帮助。
-
@ChrisLoonam 感谢您的回复。我使用了他的方法,它返回给我
AVKeyValueStatusFailed我的情况会是什么错误? -
tracksKey 应该是什么?
-
嗨@SyedAliSalman,在stackoverflow.com/questions/55605987/中需要你的帮助......这个问题是一样的......请看看这个......谢谢
标签: ios avfoundation mp4 duration avasset