SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

japan.internet.com翻訳記事

HTML 5のマルチメディア(オーディオ/ビデオ)サポート紹介

Webページへのビデオやオーディオの埋め込み

 しかし、メディアというものには本質的に時系列の処理が伴います。オーディオ/ビデオファイルやネットワーク接続について読み込みとキャッシュの両方が必要になれば、それだけで大変な作業が生じます。その難しさは、時間的な処理を必要としないリソースのほとんどを扱う場合には見られないものです。こうした理由から、Web上でのビデオやオーディオの処理を何らかの方法で制御したければ、非同期処理によって、メディア提供側のWebサイトからクライアントに返されるさまざまなイベントを処理する必要があります。表4に、すべてのイベントの一覧と、それらがディスパッチされるタイミングを示します(HTML 5に関するドキュメントから引用)。

表4 メディアユーザーインターフェースのイベント
イベント名 インターフェース ディスパッチのタイミング 前提条件
loadstart Event リソース選択アルゴリズムの一環として、ユーザーエージェントがメディアデータの検索を開始 networkStateNETWORK_LOADINGに等しい
progress Event ユーザーエージェントがメディアデータのフェッチを実行 networkStateNETWORK_LOADINGに等しい
suspend Event ユーザーエージェントが意図的にメディアデータのフェッチを現在行っていないが、メディアリソース全体のダウンロードが済んでいるわけでもない networkStateNETWORK_IDLEに等しい
abort Event ダウンロードの完了前にユーザーエージェントがメディアデータのフェッチを停止したが、この停止はエラーによるものではない errorMEDIA_ERR_ABORTEDというコードを持つオブジェクトである。networkStateNETWORK_EMPTYNETWORK_IDLEのどちらか(ダウンロード中止のタイミングに依存)に等しい
error Event メディアデータのフェッチ実行中にエラーが発生 errorMEDIA_ERR_NETWORK以上のコードを持つオブジェクトである。networkStateNETWORK_EMPTYNETWORK_IDLEのどちらかに等しい
emptied Event メディア要素networkStateNETWORK_EMPTYの状態になった(レポート対象となる読み込み中に致命的なエラーが発生したか、リソース選択アルゴリズムがすでに実行されている状態でload()メソッドが実行されたことが原因。後者の場合、load()の呼び出しに同期してイベントが発生する) networkStateNETWORK_EMPTYであり、すべてのIDL属性が初期状態にある
stalled Event ユーザーエージェントがメディアデータのフェッチを試みたが、データがまだ用意されていない networkStateNETWORK_LOADINGである
play Event 再生が開始された。play()メソッドからの復帰後に発生する pausedがfalseになった
pause Event 再生が一時停止された。pauseメソッドからの復帰後に発生する pausedがtrueになった
loadedmetadata Event ユーザーエージェントがメディアリソースの長さと寸法を判定した readyStateが初めてHAVE_METADATA以上の値になった
loadeddata Event ユーザーエージェントがメディアデータのレンダリングを現在の再生位置で初めて行えるようになった readyStateが増加によって初めてHAVE_CURRENT_DATA以上の値になった
waiting Event 次のフレームが利用不可のため再生を停止したが、ユーザーエージェントはそのフレームがやがて利用可能になると想定している readyStateHAVE_CURRENT_DATA以下の値になり、かつpausedがfalseである。seekingがtrueであるか、バッファリングされた範囲のいずれにも現在の再生位置が含まれていない。pausedがfalseになることなく、他の2つの理由(再生が終了したか、再生がエラーによって停止した)によって再生が停止する可能性がある
playing Event 再生が開始された readyStateHAVE_FUTURE_DATA以上の値になったか、pausedがfalseであるか、seekingがfalseであるか、現在の再生位置バッファリングされた範囲のいずれかに含まれる
canplay Event ユーザーエージェントはメディアデータの再生を再開できるが、今すぐに再生を開始すればコンテンツのさらなるバッファリングのために停止せずには現在の再生速度でメディアリソースを最後までレンダリングできないと予測している readyStateが増加によってHAVE_FUTURE_DATA以上の値になった
canplaythrough Event ユーザーエージェントは、今すぐに再生を開始しても、コンテンツのさらなるバッファリングのために停止することなくメディアリソースを現在の再生速度で最後までレンダリングできると予測している readyStateHAVE_ENOUGH_DATAになった
seeking Event IDL属性であるseekingがtrueに変化し、ユーザーエージェントがこのイベントを発生させるのに十分な時間がシーク操作にかかっている  
seeked Event IDL属性のseekingがfalseに変化した  
timeupdate Event 現在の再生位置の変化が、通常の再生に伴って、あるいは特に興味深い形(不連続的な変化など)で起こった  
ended Event メディアリソースの終端に達したので再生が停止した currentTimeメディアリソースの終端に等しく、endedがtrueである
ratechange Event defaultPlaybackRate属性とplaybackRate属性のどちらかが更新された  
durationchange Event duration属性が更新された  
volumechange Event volume属性とmuted属性のどちらかが変化した。関連する属性セッターからの復帰後に発生する  

 表4に示したイベントのなかで特に便利なものとして、canplayイベントとcanplaythroughイベントが挙げられます。canplayイベントは、すべてのデータの読み込みが終わっていなくても、ビデオプレーヤーが実際にコンテンツのレンダリングを意味のある形で開始できるだけのデータが読み込まれた時点で発生します。一方のcanplaythroughイベントは基本的に、ブラウザのバッファへのデータ読み込みが完全に済み、途中で再生を一時停止して残りのコンテンツを取得しなくてもビデオを最後まで再生できるようになった時点で発生します。

次のページ
ブラウザベンダーが寄せる関心の高さ

この記事は参考になりましたか?

japan.internet.com翻訳記事連載記事一覧

もっと読む

この記事の著者

japan.internet.com(ジャパンインターネットコム)

japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.comEarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Kurt Cagle(Kurt Cagle)

ライター、情報アーキテクト、XML News NetworkとMetaphorical Webのウェブマスター。カナダ、ブリティッシュコロンビア州のビクトリア在住。XMLToday.orgの編集長、O'Reilly Mediaの寄稿編集者。現在、XBRLに関する著書を執筆中。彼のTwitterはtw...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/4817 2010/02/10 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー