获取方式一
通过
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;
}
如果还是不对,请移步