概要: プレーヤー API

Brightcove Player API を使用すると、ブラウザーが HTML5 動画やその他のサポートされている再生技術で動画を再生している場合でも、JavaScript を通じて動画を操作できます。

プレーヤーの参照

API 関数を使用するには、プレーヤー オブジェクトにアクセスする必要があります。これは簡単に行えます。video タグに ID が設定されていることを確認するだけです。サンプルの埋め込みコードでは ID に myPlayerID を使用しており、プレーヤー オブジェクトは myPlayer 変数に格納されます。1 ページに複数の動画がある場合は、各 video タグに一意の ID を設定してください。

      var myPlayer = videojs.getPlayer('myPlayerID');

プレーヤーの ready メソッド

Video.js が動画および API をセットアップするまでにかかる時間は、接続速度など複数の要因によって異なります。そのため、プレーヤーの API を必要とするコードを実行するには、プレーヤーの ready() メソッドを使用します。

      videojs.getPlayer('myPlayerID').ready(function() {
        var myPlayer = this;
      
        // 例: イベントの処理
        myPlayer.on('loadstart',doLoadstart);
      
      });

プレーヤーの ready とプレーヤー内の動画の ready の違い

本ドキュメントの説明から、次のような API の使い方は安全だと思われるかもしれません。

      videojs.getPlayer('myPlayerID').ready(function() {
        var myPlayer = this;
        // プレーヤー内の動画を再生
        myPlayer.play()
      });

しかし、プレーヤーが操作可能な状態になったからといって、プレーヤー内の動画が読み込まれ、再生可能な状態になっているとは限りません。この例では再生を行っていますが、そのためには loadedmetadata イベントを使用する必要があります。このイベントは、動画が再生可能な状態であることを保証します。コードは次のようになります。

      videojs.getPlayer('myPlayerID').ready(function() {
        var myPlayer = this;
        // プレーヤー内の動画を再生
        myPlayer.on('loadedmetadata',function(){
          myPlayer.play();
        })
      });

関数内で行う処理が play() メソッドの呼び出しのみで、他にプレーヤーを操作しない場合は、次のようにコードを簡略化できます(ready() メソッドを使用する必要はありません)。

      videojs.getPlayer('myPlayerID').on('loadedmetadata',function(){
        var myPlayer = this;
        myPlayer.play();
      });

API メソッド

これで準備完了のプレーヤーにアクセスできるようになったため、動画を制御したり、値を取得したり、動画イベントに応答したりできます。Video.js API の関数名は HTML5 メディア API に準拠しています。主な違いは、動画のプロパティに対してゲッター/セッター関数が使用される点です。

      // 素の HTML5 video 要素にプロパティを設定
      myVideoElement.currentTime = "120";
      
      // Video.js プレーヤーにプロパティを設定
      myPlayer.currentTime(120);

プレーヤー API のすべてのメソッドおよびイベントの一覧は、プレーヤー API ドキュメントを参照してください。