動画の開始/再生/一時停止/完了イベントのイベントトラッキングを設定しました。Youtube APIイベントは、シーク/バッファからポーズを区別します。
HTML5、Youtube、およびYoukuのビデオのイベントを統一的に報告する方法があります。 HTML5とモバイルYoukuのビデオには問題ありません。デスクトップのYouku(フラッシュ)の場合、ビデオがどの状態にあるかを確認するために、setInterval
の投票を設定しなければならなかった。
問題はYoutubeの埋め込みビデオです。私たちは、onStateChange
イベントに耳を傾ける:
player.addEventListener('onStateChange', function(e) {
if(e.data === 0) {
// Complete
} else if(e.data === 1) {
// Play
} else if(e.data === 2) {
// Pause
}
}
しかし、ビデオの再生中にユーザがビデオに努めるとき、タイムラインバーと相互作用し、プレーヤーが一時停止に遊びやバッファ(e.data === 3
)イベントをトリガします。私たちは、シークによる一時停止と再生を追跡したくありません。
クロムでは、バッファイベントが常に最初にトリガーされるため、シークアクションを区別できます。 3
のように、2
とプレイヤーがバッファリングしたとき1
。したがって、バッファイベントに密接に従っている一時停止イベントと、経過した時間に関係なくバッファイベントに続くすべての再生イベントは無視されます。これはうまくいく。
しかし、firefoxでは、イベントの順序は非常に異なります。 firefoxでは、バッファイベントは後になります。だから我々は注文を受ける2
、1
、3
。動画がすでにバッファリングされている場合は2
、3
、1
となります。
YouTube動画のシークイベントを検出する別の方法はありますか?シーケンスをキャプチャする方法
これらSO [29293877](http://stackoverflow.com/questions/29293877/how-to-listen-to-seek-event-in-youtube-embed-api)質問と[12676241]をチェック(http://stackoverflow.com/questions/12676241/detecting-a-play-event-in-youtube-api)それがあなたを助けることができるなら。 – KENdi