天天看点

iOS 获取音频时长的正确姿势 笔记

获取方式一

通过​

​AVPlayerItem​

​​的​

​duration​

​​ 来获取时长,总是差那么几秒,十几秒

​​

​CMTimeGetSeconds(self.player.currentItem.duration);​

获取方式二

通过​

​AVURLAsset​

​​的​

​duration​

​ 来获取时长

- (NSTimeInterval)audioDurationFromURL:(NSString *)url {
    AVURLAsset *audioAsset = nil;
    NSDictionary *dic = @{AVURLAssetPreferPreciseDurationAndTimingKey:@(YES)};
    if ([url hasPrefix:@"http"]) {
        audioAsset = [AVURLAsset URLAssetWithURL:[NSURL URLWithString:url] options:dic];
    }else {
        audioAsset = [AVURLAsset URLAssetWithURL:[NSURL fileURLWithPath:url] options:dic];
    }
    CMTime audioDuration = audioAsset.duration;
    float audioDurationSeconds = CMTimeGetSeconds(audioDuration);
    return audioDurationSeconds;
}      

如果还是不对,请移步

参考

有趣的点赞动画