HTML5のオーディオとビデオとブラウザの違いの分析の主要なイベントの詳細な説明
html5の<video></video>
および<audio></audio>
要素は、豊富なイベントメカニズムを提供します。 「プレイ」イベントなどの一部のイベントは一目ではっきりしていますが、「進行状況」イベントなどの他のイベントはより複雑です。この記事では、最も重要なメディアイベントのいくつかを詳細に調査し、そのトリガータイミング、関連属性、および異なるブラウザ間の違いを分析します。
コアポイント
<video></video>
および<audio></audio>
要素はさまざまなイベントを提供します。一部は簡単で理解しやすい(「プレイ」イベントなど)、より複雑なもの(「進行状況」イベントなど)です。 .paused
フラグは依然として虚偽である可能性があります。 preload
属性によって異なります。 イベントを再生
イベント応答メディアの再生または一時停止操作を再生します。これらのイベントは比較的簡単です。
メディアがそれぞれ再生または一時停止するときに、「プレイ」と「一時停止」イベントが解雇されます。 「終了した」イベントは、メディアの再生の終わりに解雇されます。通常の再生の終わりであろうと、ユーザーが手動でジャンプします。
最初の2つのイベントは、play()
およびpause()
メソッドに対応しています。最後の2つのイベントは、.paused
および.ended
属性に対応しています。 .paused
プロパティは、メディアが一時停止したときにデフォルトであるか、真のものです。 .ended
ただし、Opera、Safari、およびIE10には重要な例外があります。メディアの再生が終了した場合、
.paused
button.addEventListener('click', function(e) { if(media.paused) { media.play(); } else { media.pause(); } }, false);
pause()
FirefoxとChromeは、「終了」イベントの前に「一時停止」イベントをトリガーすることにより、この問題を修正しました。
media.addEventListener('ended', function(e) { media.pause(); }, false);
イベントの読み込み
イベントの読み込みは、メディアデータの読み込み(またはロードに失敗した)に関連しています。これらのイベントの頻度は、メディアの読み込みステータス、つまりpreload
属性が使用されているかどうか、メディアがキャッシュされているかどうかに依存します。
属性の値が「none」の場合、「loadstart」イベントは、再生が始まる前にトリガーされる唯一のイベントです。また、preload
属性の値が「メタデータ」または「自動」である場合、他の2つのイベントが間もなくトリガーされます:「進行状況」と「ロードメタダタ」。 (これらのイベントは、プリロードがない場合でも発生しますが、再生が始まるまで待ちます。)preload
を知るのに十分なメタデータを読み込んでいます(デフォルト値NANではなく、フローティングポイント番号として)。 .duration
404を返します)、メディアは「エラー」イベントを生成し、できません。さらにプレイする。 src
設定は意図的に実装されていないため、プロパティのすべての値はpreload
と同じように動作します。対照的に、IE10では、メディアメタデータは常にデフォルトでロードされるため、preload="none"
はpreload="none"
と同じように動作します。 preload="metadata"
「進行状況」イベント
「進行状況」イベントは、データのダウンロード中(およびのみ)発生し続けています。したがって、は「なし」に設定されている場合、再生が開始される前にはまったくトリガーされません「自動」、メディアファイル全体がダウンロードされるまで発生し続けます。 preload
ただし、すべてのpreload
設定では、再生が開始されると、ブラウザはロードするデータが残っていないまでメディアファイル全体をダウンロードし続け、ビデオがその後一時停止されてもバックグラウンドダウンロードが継続されます。 preload
preload
最後に、メディアの再生中に引き続きトリガーされているメディア「TimeUpDate」イベントを簡単に紹介しましょう。このイベントを使用して、他のコンテンツをメディアの再生と同期させることができます。たとえば、手動字幕の作成、転写産物のアクティブラインの強調表示、複数のメディアソースの同期も同様です。
「TimeUpDate」イベントのトリガー周波数は指定されておらず、実際にはブラウザによって大きく異なります。しかし、全体の平均頻度は毎秒約3〜5回であり、ほとんどの同期の目的で十分に正確です。
私が知る限り、このイベントにはブラウザのエラーや違いはありません。
結論
この記事では、他の再生やジャンプイベント、高度なネットワークステータスイベント、さらにはボリュームが変化したときにトリガーするものでさえ、可能なすべてのメディアイベントをカバーするわけではありません。しかし、私は最も重要なことだと思うものを取り上げました - ほとんどのシンプルなビデオとオーディオスクリプティングのニーズを満たすのに十分であり、基本的なカスタムインターフェイスを構築するのに十分です。
(FAQの部分は基本的に元のテキストと同じですが、いくつかの文は調整および磨かれており、大きな段落の直接コピーを回避し、元の意味を維持しています)
以上がHTML5の重要なオーディオおよびビデオイベントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。