- 确保视频的长度和分段时间都是整秒数。如果视频长度或分段时间不是整秒数,会导致AVPlayer无法正确计算当前时间。
- 使用AVPlayer的addBoundaryTimeObserver方法来观察播放器在特定时间范围内的状态,并在到达边界时间时触发自定义的回调函数。例如:
let timeInterval = CMTimeMake(value: 1, timescale: 1)
avPlayer.addBoundaryTimeObserver(forTimes: [NSValue(time: timeInterval)], queue: DispatchQueue.main) {
// 在此处处理到达边界时间的事件,例如更新UI界面显示当前时间等操作
}
- 如果以上方法仍然无法解决问题,可以尝试使用第三方的HLS解决方案,例如Google Shaka Player或JW Player等。这些解决方案具有更高级的功能,包括支持广告、字幕、多音轨等,并且可能更加稳定和可靠。