ユーザーID パスワード

技術情報

  • FAQ よくある質問
  • 個人ユーザー向けサービスのお手続きについて

コード&コラム Web編 〜実践!HTML5〜

第1章 Audio/Video (2/3)

JavaScriptによるVideo/Audio制御

HTML5ではVideo、Audioの各要素をJavaScriptより操作するメソッド、プロパティ、イベントが用意されており、これらを利用することでメディアの再生、停止を含めた細かい制御を行う事が可能です。

例えば、<video>タグのcontrol属性を指定することでコントロールインターフェースが自動で表示されますが、これはブラウザにより表示が異なる為、各ブラウザにおいてのデザイン統一が行えません。
しかし、これらの機能をJavaScript APIを利用し、制御することでブラウザに依存しないオリジナルのコントロールインターフェースの作成が可能です。



メディア要素を操作するメソッド

以下はVideo/Audio要素の親インターフェースであるMediaElementが持つプロパティ/メソッドです。これらのプロパティ/メソッドはVideo要素、Audio要素のどちらに対しても利用できます。

表4. MediaElementが持つプロパティ/メソッド
属性 内容
error 現在のエラー状態であるMediaErrorオブジェクトを返す
エラーが無ければnullが返却される
currentSrc メディアリソースのアドレスが返却される
networkState ネットワークアクティビティの状態を返す
  • NETWORK_EMPTY = 0 初期状態
  • NETWORK_IDLE = 1 ネットワーク接続直前
  • NETWORK_LOADING = 2メディアデータダウンロード中
  • NETWORK_NO_SOURCE = 3 ダウンロードするリソースがない
buffered バッファしたメディア・リソースの範囲を表すTimeRangesオブジェクトを返却する
readyState メディアデータのダウンロード状態を表す整数値
  • HAVE_NOTHING = 0 何もダウンロードしていない
  • HAVE_METADATA = 1 メディアメタデータのダウンロード済み
  • HAVE_CURRENT_DATA = 2 現在再生位置の直近までのデータをダウンロード済み
  • HAVE_FUTURE_DATA = 3 再生位置に加え次フレームデータまでをダウンロード済み
  • HAVE_ENOUGH_DATA = 4 再生位置に加え次フレームデータまでをダウンロード済みであり、且つダウンロード速度から計算し、最後まで再生できるだけのデータをダウンロード済である状態
seeking シーク中かどうか
シーク中の場合trueが返却される
currentTime 現在再生位置を表す秒数
initialTime 初期再生位置としてロード時に自動的にシークされた秒数
duration メディアデータの長さを表す秒数
paused 一時停止中かどうか
defultPlabackRate デフォルトの再生速度。デフォルトは1.0
playbackRate 現在の再生速度。デフォルトは1.0
マイナスの場合は巻き戻しとなる
seekable シーク可能なメディアリソースの範囲を表すTimeRangesオブジェクトを返す
ended 再生が終了しているかどうか
play() 動画の再生を行う
pause() 動画の再生を行う
load() 動画のロードをやり直す
canPlayType(type) 指定されたMINEタイプのメディアデータの再生可否
戻り値は文字列で以下の値を返す
  • ”(空文字列)” 再生できない
  • ”maybe” サポートフォーマット
  • ”probably” 再生可能


メディア操作に関するイベント

以下はMediaElementにおいて定義されているイベントとなります。

表5. MediaElementにおいて定義されているイベント
イベント 内容
loadstart メディアデータの読み込みを開始した
progress メディアデータの読み込み中
suspend ダウンロードの一時停止(エラー状態ではない)
abort エラーによりダウンロード中止
error エラー発生
emptied 読み込み開始に伴う初期化時に発生するイベント
stalled データが予期しない理由で読み込めない時
loadedmetadata メタデータの読み込み完了
loadeddata メディアデータ読み込み完了
canplay 再生できる
canplaythrough このままのダウンロード速度が続けば最後まで再生できる
playing 一時停止等から復帰し再生が再開された
waiting 次のフレームデータのダウンロード待ち
seeking 指定再生位置への移動中
seeked 指定再生位置への移動完了
ended 再生終了
durationchange メディアデータの長さが更新された
timeupdate 現在の再生位置が変更された時
play 再生中
pause 一時停止中
ratechange 再生速度が変更された
volumechange ボリュームが変更された

サンプルコード

第1章
Audio/Video

第2章
Canvas

第3章
Photo Gallery

第4章
神経衰弱ゲーム