可以通过设置最小时间更新间隔或者使用AVPlayerItem的方法来使AVPlayer在进行精确定位时更准确。
示例代码如下所示:
// 设置最小时间更新间隔为0.1秒 let player = AVPlayer() player.minimalTimeTolerance = CMTimeMake(value: 1, timescale: 10)
// 使用AVPlayerItem方法进行精确定位 let playerItem = AVPlayerItem(url: videoURL) let time = CMTimeMakeWithSeconds(Float64(seekTime), preferredTimescale: Int32(NSEC_PER_SEC)) playerItem.seek(to: time, completionHandler: { (_) in // seek完成之后的操作 }) player.replaceCurrentItem(with: playerItem) player.play()