首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >iOS-如何使用.mp4或AVURLAsset获取AVAsset文件的持续时间

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

Stack Overflow用户
提问于 2015-03-25 12:32:33
回答 1查看 7.6K关注 0票数 6

我知道以前已经回答过视频类型问题的持续时间问题,但是我在使用AVAssetAVURLAsset获得一个文件的持续时间方面遇到了真正的困难。我使用以下代码

代码语言:javascript
运行
复制
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之后导入

代码语言:javascript
运行
复制
#import <AVFoundation/AVAsset.h>
#import <CoreMedia/CoreMedia.h>
#import <AVFoundation/AVFoundation.h>

我也尝试过其他一些我知道的代码,但没有一个对我有用。我的视频工作正常,如果我通过iExplorer播放它,我的道路是好的,但不知道我错过了什么。我想分享一下,我发现我的AVAssets没有正确加载,请建议我应该做些什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-26 00:06:49

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

代码语言:javascript
运行
复制
NSURL *itemPathURL = [NSURL fileURLWithPath:itemPathString];

而不是

代码语言:javascript
运行
复制
NSURL *itemPathURL = [NSURL URLWithString:itemPathString];

如果你完全确定你的道路是好的,这应该可以解决你的问题。

希望这能有所帮助!

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29255776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档