HTMLMediaElement持续时间不一致

时间:2018-11-01 15:45:01

标签: javascript video javascript-events html5-video hls.js

我的视频播放器出现问题,从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的新终点)。

有人对此问题有任何见解或对可能解决方案的想法吗?

1 个答案:

答案 0 :(得分:0)

我有完全相同的问题,但有音频元素。搜寻到音频的终点时,durationchange事件不断触发,audio.duration保持变化几秒钟。

原来是音频源的问题。这是有问题的音频的提琴手:https://jsfiddle.net/jessuni/kxcmye8z/42/ 您是否尝试过另一个视频源并重现该问题?