跟踪视频在网页中播放的时间。
跟踪视频在网页中播放的时间。
问题是如何获得视频播放的总时间。
我正在使用videojs作为JavaScript库。
需要注意的是,currentTime()方法不是我们想要的总播放时间,我们还要考虑观看者将电影跳到任意播放位置,并希望获得实际播放的时间。
例子)
60秒的视频
观看者先观看了前5秒,然后跳到10秒的位置观看了接下来的5秒。
当前时间是15秒,但我希望总观看时间是10秒。
事实上,每当观看者播放10%,就调用API。
如何实现JavaScript?
编辑)
读取视频可能耗时较长,所以很难使用new Date()
。
例如,由于网络速度问题,5秒的视频可能需要10秒。
我正在考虑以下代码。
只要查看控制台,它在大多数情况下工作正常,但在跳过播放位置时,在极少数情况下测量播放速率时会出现错误。
const player = videojs('myPlayer'); const trackingPoint = 10; let totalTime = 0; let tempTotalTime = 0; let startTime = 0; player.on('pause', function () { totalTime += tempTotalTime; }); player.on('play', function () { startTime = player.currentTime(); }); player.on('timeupdate', function () { if (player.paused()) { return; } let currentTime = player.currentTime(); tempTotalTime = currentTime - startTime; let tmptotalTime = totalTime + tempTotalTime; let playbackRate = tmptotalTime / player.duration() * 100; console.log(Math.floor(playbackRate) + ' %'); });