ホームページ ウェブフロントエンド jsチュートリアル HTML5の重要なオーディオおよびビデオイベント

HTML5の重要なオーディオおよびビデオイベント

Feb 23, 2025 am 10:40 AM

HTML5のオーディオとビデオとブラウザの違いの分析の主要なイベントの詳細な説明

Essential Audio and Video Events for HTML5

html5の<video></video>および<audio></audio>要素は、豊富なイベントメカニズムを提供します。 「プレイ」イベントなどの一部のイベントは一目ではっきりしていますが、「進行状況」イベントなどの他のイベントはより複雑です。この記事では、最も重要なメディアイベントのいくつかを詳細に調査し、そのトリガータイミング、関連属性、および異なるブラウザ間の違いを分析します。

コアポイント

  • html5の<video></video>および<audio></audio>要素はさまざまなイベントを提供します。一部は簡単で理解しやすい(「プレイ」イベントなど)、より複雑なもの(「進行状況」イベントなど)です。
  • プレイイベント(「プレイ」、「一時停止」、「終了」など)は、メディアの再生または操作の一時停止に応答し、対応するメディア機能とプロパティに対応します。ただし、一部のブラウザには、メディア再生が終了した場合、Opera、Safari、IE10などの例外がありますが、.pausedフラグは依然として虚偽である可能性があります。
  • イベントの読み込みは、「LoadStart」、「Progress」、「LoadedMetadata」、「CanPlay」、「CanPlayThrough」イベントなど、メディアデータの障害の読み込みまたはロードに関連しています。しかし、それらの動作は、ブラウザとpreload属性によって異なります。
  • 「進行状況」イベントは、ダウンロードデータ中に継続的にトリガーされ、ダウンロードの進行状況を示すために一連の時間範囲が使用されます。ただし、Operaが2つの範囲を作成するなど、ブラウザには違いがありますが、モバイルSafariはアクティビティの範囲のみを保持します。
  • 「TimeUpDate」イベントは、メディアの再生中に継続的にトリガーされ、他の要素をメディア再生と同期するために使用されます。このイベントには通常、ブラウザのエラーや違いはありません。

イベントを再生

イベント応答メディアの再生または一時停止操作を再生します。これらのイベントは比較的簡単です。

メディアがそれぞれ再生または一時停止するときに、「プレイ」と「一時停止」イベントが解雇されます。 「終了した」イベントは、メディアの再生の終わりに解雇されます。通常の再生の終わりであろうと、ユーザーが手動でジャンプします。

最初の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属性が使用されているかどうか、メディアがキャッシュされているかどうかに依存します。

すべての場合において、最初のイベントがトリガーされるのは「LoadStart」イベントであり、ブラウザがデータを探し始めたことを示しています。しかし、これは、ブラウザが検索を開始することのみを意味し、データが実際にロードされていること、またはメディアリソースが存在することさえ意味しません。

属性の値が「none」の場合、「loadstart」イベントは、再生が始まる前にトリガーされる唯一のイベントです。また、preload属性の値が「メタデータ」または「自動」である場合、他の2つのイベントが間もなくトリガーされます:「進行状況」と「ロードメタダタ」。 (これらのイベントは、プリロードがない場合でも発生しますが、再生が始まるまで待ちます。)preload

「進行状況」イベントは比較的複雑であり、次のセクションで個別に説明します。 「Loadedmetadata」イベントはシンプルです。つまり、ブラウザはメディアの

を知るのに十分なメタデータを読み込んでいます(デフォルト値NANではなく、フローティングポイント番号として)。 .duration

もちろん、「LoadedMetadata」イベントは、メディアがロードできる場合にのみ起動されます - 負荷が失敗した場合(たとえば、

404を返します)、メディアは「エラー」イベントを生成し、できません。さらにプレイする。 src

もう一度、いくつかの重要なブラウザの違いが発生しました。モバイルSafariでは、

設定は意図的に実装されていないため、プロパティのすべての値はpreloadと同じように動作します。対照的に、IE10では、メディアメタデータは常にデフォルトでロードされるため、preload="none"preload="none"と同じように動作します。 preload="metadata"

「進行状況」イベント

「進行状況」イベントは、データのダウンロード中(およびのみ)発生し続けています。したがって、

は「なし」に設定されている場合、再生が開始される前にはまったくトリガーされません「自動」、メディアファイル全体がダウンロードされるまで発生し続けます。 preload ただし、すべてのpreload設定では、再生が開始されると、ブラウザはロードするデータが残っていないまでメディアファイル全体をダウンロードし続け、ビデオがその後一時停止されてもバックグラウンドダウンロードが継続されます。 preload

データ自体は一連の時間範囲で表され、「進行状況」イベントを使用する前にこれらの時間の範囲がどのように機能するかを理解することが重要です。

preload

(次のコンテンツは基本的に元のテキストと同じですが、いくつかの文は調整および磨かれており、大きな段落の直接コピーを回避し、元の意味を維持します)

時間の更新イベント

最後に、メディアの再生中に引き続きトリガーされているメディア「TimeUpDate」イベントを簡単に紹介しましょう。このイベントを使用して、他のコンテンツをメディアの再生と同期させることができます。たとえば、手動字幕の作成、転写産物のアクティブラインの強調表示、複数のメディアソースの同期も同様です。

「TimeUpDate」イベントのトリガー周波数は指定されておらず、実際にはブラウザによって大きく異なります。しかし、全体の平均頻度は毎秒約3〜5回であり、ほとんどの同期の目的で十分に正確です。

私が知る限り、このイベントにはブラウザのエラーや違いはありません。

結論

この記事では、他の再生やジャンプイベント、高度なネットワークステータスイベント、さらにはボリュームが変化したときにトリガーするものでさえ、可能なすべてのメディアイベントをカバーするわけではありません。しかし、私は最も重要なことだと思うものを取り上げました - ほとんどのシンプルなビデオとオーディオスクリプティングのニーズを満たすのに十分であり、基本的なカスタムインターフェイスを構築するのに十分です。

(FAQの部分は基本的に元のテキストと同じですが、いくつかの文は調整および磨かれており、大きな段落の直接コピーを回避し、元の意味を維持しています)

以上がHTML5の重要なオーディオおよびビデオイベントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

javascriptの分解:それが何をするのか、なぜそれが重要なのか javascriptの分解:それが何をするのか、なぜそれが重要なのか Apr 09, 2025 am 12:07 AM

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

JavaScriptの進化:現在の傾向と将来の見通し JavaScriptの進化:現在の傾向と将来の見通し Apr 10, 2025 am 09:33 AM

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

JavaScriptエンジン:実装の比較 JavaScriptエンジン:実装の比較 Apr 13, 2025 am 12:05 AM

さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

Python vs. JavaScript:学習曲線と使いやすさ Python vs. JavaScript:学習曲線と使いやすさ Apr 16, 2025 am 12:12 AM

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

JavaScript:Web言語の汎用性の調査 JavaScript:Web言語の汎用性の調査 Apr 11, 2025 am 12:01 AM

JavaScriptは、現代のWeb開発のコア言語であり、その多様性と柔軟性に広く使用されています。 1)フロントエンド開発:DOM操作と最新のフレームワーク(React、Vue.JS、Angularなど)を通じて、動的なWebページとシングルページアプリケーションを構築します。 2)サーバー側の開発:node.jsは、非ブロッキングI/Oモデルを使用して、高い並行性とリアルタイムアプリケーションを処理します。 3)モバイルおよびデスクトップアプリケーション開発:クロスプラットフォーム開発は、反応および電子を通じて実現され、開発効率を向上させます。

next.jsを使用してマルチテナントSaaSアプリケーションを構築する方法(フロントエンド統合) next.jsを使用してマルチテナントSaaSアプリケーションを構築する方法(フロントエンド統合) Apr 11, 2025 am 08:22 AM

この記事では、許可によって保護されたバックエンドとのフロントエンド統合を示し、next.jsを使用して機能的なedtech SaaSアプリケーションを構築します。 FrontEndはユーザーのアクセス許可を取得してUIの可視性を制御し、APIリクエストがロールベースに付着することを保証します

next.jsを使用してマルチテナントSaaSアプリケーションを構築する(バックエンド統合) next.jsを使用してマルチテナントSaaSアプリケーションを構築する(バックエンド統合) Apr 11, 2025 am 08:23 AM

私はあなたの日常的な技術ツールを使用して機能的なマルチテナントSaaSアプリケーション(EDTECHアプリ)を作成しましたが、あなたは同じことをすることができます。 まず、マルチテナントSaaSアプリケーションとは何ですか? マルチテナントSaaSアプリケーションを使用すると、Singの複数の顧客にサービスを提供できます

C/CからJavaScriptへ:すべてがどのように機能するか C/CからJavaScriptへ:すべてがどのように機能するか Apr 14, 2025 am 12:05 AM

C/CからJavaScriptへのシフトには、動的なタイピング、ゴミ収集、非同期プログラミングへの適応が必要です。 1)C/Cは、手動メモリ管理を必要とする静的に型付けられた言語であり、JavaScriptは動的に型付けされ、ごみ収集が自動的に処理されます。 2)C/Cはマシンコードにコンパイルする必要がありますが、JavaScriptは解釈言語です。 3)JavaScriptは、閉鎖、プロトタイプチェーン、約束などの概念を導入します。これにより、柔軟性と非同期プログラミング機能が向上します。

See all articles