「video」タグの視聴時間を計測することはできますか?「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
私が取り組んでいるプロジェクトで同じことを達成しようとしました。jquery stopwatch pluginを使用して実行しました。
必要な 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
心に留めておいてください - これはこれを行うための最も正確な方法ではありませんが、私のコーディングスキルで達成できた最善の方法です.
幸運を!
videoElement.currentTime
ソース: https://developer.mozilla.org/en-US/docs/DOM/HTMLMediaElement