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:至于为什么,目前有点忙,暂时没有时间去探索,知道的朋友欢迎留言。

你可能感兴趣的:(iOS AVPlayerItem获取音频时长错误、不准确)