iOS AVPlayerItem获取音频时长错误、不准确

错误:

 AVPlayerItem *item = [[AVPlayerItem alloc]initWithURL:FILEURL];
 Float64 duration = CMTimeGetSeconds(item.duration);

durantion要么获取不到,要么相差几秒甚至十几秒。

解决:

    NSDictionary *dic = @{AVURLAssetPreferPreciseDurationAndTimingKey:@(YES)};
    AVURLAsset *audioAsset = [AVURLAsset URLAssetWithURL:FILEURL options:dic];
    CMTime audioDuration = audioAsset.duration;
    Float64 audioDurationSeconds = CMTimeGetSeconds(audioDuration);

audioDurationSeconds得到的时长是准确的,并且不会出现获取不到的情况。

ps:至于为什么,目前有点忙,暂时没有时间去探索,知道的朋友欢迎留言。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。