是否可以测量“视频”标签的观看时间?我看到它有“onplaying”和“onpause”事件,所以我可能会伪造一个计时器。
只是想知道我是否还缺少其他东西。
HTML5 媒体元素触发 'timeupdate' 事件。请参阅http://dev.w3.org/html5/spec/media-elements.html#event-mediacontroller-timeupdate。当该事件触发时,您可以检查 .currentTime 的当前时间和 .duration 的视频长度。它还会触发“durationchange”事件。
完整的 HTML5 媒体 DOM 接口规范:http ://dev.w3.org/html5/spec/media-elements.html
videoElement.currentTime
来源:https ://developer.mozilla.org/en-US/docs/DOM/HTMLMediaElement
我试图在我正在从事的项目中完成同样的事情。我使用jquery 秒表插件做到了。
这是您需要的 JS:
var w = new Stopwatch();
document.querySelector("#video").addEventListener("playing", Start, false);
document.querySelector("#video").addEventListener("pause", Stop, false);
document.querySelector("#video").addEventListener("waiting", Stop, false);
function Start() {
if ($("#video").get(0).paused == true)
Stop();
else
w.start();
}
function Stop() {
w.stop();
}
这就是你如何获得经过的查看时间(以毫秒为单位):
var e = w.getElapsed();
time = (((e.hours * 3600) + (e.minutes * 60) + e.seconds) * 1000 + e.milliseconds); // Total view time
请记住 - 这不是最准确的方法,但它是我用我的编码技能设法完成的最好的方法。
祝你好运!