我的视频播放器出现问题,从HTMLMediaElement.duration返回的视频时长不一致。我设置了以下侦听器以帮助说明:
video.addEventListener('timeupdate', function(e) {
console.log('Duration: ' + video.duration);
if ( video.currentTime === video.duration ) {
console.log( video.currentTime + ' === ' + video.duration )
}
});
当我一直搜索到视频结尾时,此事件返回一个不同的值(更精确)。我将在下面提供我的日志示例:
Duration: NaN
Duration: 135.8357
Duration: 135.8357
Duration: 135.8357
Duration: 135.8357
Duration: 135.8357
Duration: 135.8357
...
..我要搜索视频的结尾。
...
Duration: 135.8357
135.8357 === 135.8357
Duration: 135.952833
我一直搜索到视频结尾,当前时间等于持续时间,然后持续时间更新为另一个时间。一直搜索到视频结尾不会触发ended
事件(除非视频恢复并到达135.952833
的新终点)。
有人对此问题有任何见解或对可能解决方案的想法吗?
答案 0 :(得分:0)
我有完全相同的问题,但有音频元素。搜寻到音频的终点时,durationchange
事件不断触发,audio.duration
保持变化几秒钟。
原来是音频源的问题。这是有问题的音频的提琴手:https://jsfiddle.net/jessuni/kxcmye8z/42/ 您是否尝试过另一个视频源并重现该问题?