# 付録1:プレイヤーオブジェクト取得機能について

# プレイヤーオブジェクトを取得する

プレイヤーオブジェクトは、プレイヤータグ発行画面またはプレイヤータグAPIで「プレイヤーオブジェクト名」を指定することで、指定した名前のJavaScriptのグローバルオブジェクトとして取得できます。

補足

「プレイヤーオブジェクト名」を指定するには、アカウントに「プレイヤーインスタンスの取得」権限が必要です。

# プレイヤーオブジェクトを使用する

プレイヤーオブジェクトの使用例について記述します。プレイヤーオブジェクトに対してULIZA Player (HTML5)のAPIを使用できます。サンプルコードはすべて「プレイヤーオブジェクト名」を「player」に設定した場合のコードです。<プレイヤータグ> で示す位置にプレイヤータグを挿入してください。ULIZA Player (HTML5)のAPIの詳細はULIZA Player (HTML5) APIリファレンス (opens new window)を参照してください。

注意事項

  • プレイヤーオブジェクト名が同じプレイヤータグを同一ページに複数設置した場合は、後に読み込まれたプレイヤーオブジェクトで上書きされます。

  • ULIZA Player (HTML5)が読み込まれるまでAPIは正常に動作しません。読み込まれたかどうかを判別するためには以下のように「ulizaplayerready」イベントをリスナーに追加してください。

<script type="text/javascript">
  window.addEventListener('ulizaplayerready', function(event) {
    // 任意の処理を記述
  });
</script>

# プレイヤーを再生状態にする

プレイヤーが停止状態の場合に、プレイヤーオブジェクトの「play」メソッドを呼ぶことでプレイヤーを再生状態にできます。「再生状態にする」ボタンをクリックして再生状態にするサンプルコードは以下の通りです。

補足

  • ユーザー操作を契機としないタイミングで「play」メソッドを実行する場合、プラットフォームにより無視される場合があります。
<!DOCTYPE html>
<html>
  <head>
    <script type="text/javascript">
      function play() {
        player.play();
      }
    </script>
  </head>
  <body>
    <プレイヤータグ>
    <button type="button" onClick="play()">再生状態にする</button>
  </body>
</html>

# プレイヤーを一時停止状態にする

プレイヤーが再生状態の場合に、プレイヤーオブジェクトの「pause」メソッドを呼ぶことでプレイヤーを一時停止状態にできます。「一時停止状態にする」ボタンをクリックして一時停止状態にするサンプルコードは以下の通りです。

<!DOCTYPE html>
<html>
  <head>
    <script type="text/javascript">
      function pause() {
        player.pause();
      }
    </script>
  </head>
  <body>
    <プレイヤータグ>
    <button type="button" onClick="pause()">一時停止状態にする</button>
  </body>
</html>

# プレイヤーのサイズを取得する

プレイヤーオブジェクトの「width」メソッドを呼ぶことでプレイヤーの幅を取得できます。また、「height」メソッドを呼ぶことでプレイヤーの高さを取得できます。「サイズ取得」ボタンをクリックしてプレイヤーの幅と高さをアラート表示するサンプルコードは以下の通りです。

<!DOCTYPE html>
<html>
  <head>
    <script type="text/javascript">
      function getSize() {
        alert('幅:' + player.getWidth() + 'px, 高さ:' + player.getHeight() + 'px');
      }
    </script>
  </head>
  <body>
    <プレイヤータグ>
    <button type="button" onClick="getSize()">サイズ取得</button>
  </body>
</html>

# プレイヤーオブジェクトを破棄する

プレイヤーオブジェクトの「dispose」メソッドを呼ぶことでプレイヤーオブジェクトを破棄できます。「プレイヤー破棄」ボタンをクリックしてプレイヤーオブジェクトを破棄するサンプルコードは以下の通りです。

<!DOCTYPE html>
<html>
  <head>
    <script type="text/javascript">
      function dispose() {
        player.dispose();
      }
    </script>
  </head>
  <body>
    <プレイヤータグ>
    <button type="button" onClick="dispose()">プレイヤー破棄</button>
  </body>
</html>

# 再生位置を取得する

プレイヤーオブジェクトの「getCurrentTime」メソッドを呼ぶことで再生位置を取得できます。また、「setCurrentTime」メソッドを呼ぶことで任意の位置にジャンプできます。「10秒送り」ボタンをクリックして現在の再生位置から10秒先にジャンプするサンプルコードは以下の通りです。

<!DOCTYPE html>
<html>
  <head>
    <script type="text/javascript">
      function forward() {
        player.setCurrentTime(player.getCurrentTime() + 10);
      }
    </script>
  </head>
  <body>
    <プレイヤータグ>
    <button type="button" onClick="forward()">10秒送り</button>
  </body>
</html>

# コントロールバーにボタンを追加する

プレイヤーオブジェクトの「addControlBarButton」メソッドを呼ぶことでコントロールバーに任意のボタンを追加できます。コントロールバーにボタンを追加するためには、プレイヤープリセット設定で「コントロールバーボタンの追加」が有効である必要があります。「コントロールバーボタン追加」ボタンをクリックして「10秒戻し」ボタンと「10秒送り」ボタンをコントロールバーに追加するサンプルコードは以下の通りです。

補足

  • プレイヤープリセット設定で「コントロールバーボタンの追加」を有効にする必要があります。
<!DOCTYPE html>
<html>
  <head>
    <script type="text/javascript">
      function addControlBarButton() {
        player.addControlBarButton({
          id: 'back',
          state: [
            { textJa: '◀◀' }
          ],
          tooltipJa: '10秒戻し',
          onClickListener: function(currentStateIndex, nextStateIndex, player, element) {
            player.setCurrentTime(player.getCurrentTime() - 10);
            return nextStateIndex;
          }
        });
        player.addControlBarButton({
          id: 'forward',
          state: [
            { textJa: '▶▶' }
          ],
          tooltipJa: '10秒送り',
          onClickListener: function(currentStateIndex, nextStateIndex, player, element) {
            player.setCurrentTime(player.getCurrentTime() + 10);
            return nextStateIndex;
          }
        });
      }
    </script>
  </head>
  <body>
    <プレイヤータグ>
    <button type="button" onClick="addControlBarButton()">コントロールバーボタン追加</button>
  </body>
</html>

上記のサンプルコードの表示例は以下の図の通りです。

# プレイヤー表示領域にボタンを追加する

プレイヤーオブジェクトの「addButton」メソッドを呼ぶことでプレイヤー表示領域に任意のボタンを追加できます。プレイヤーの初期化時に「ページ更新」ボタンをプレイヤー表示領域に追加するサンプルコードは以下の通りです。

<!DOCTYPE html>
<html>
  <head>
    <style>
      #btn {
        color: white;
        background-color: green;
        width: 150px;
        height: 50px;
      }
      #btn:hover {
        background-color: blue;
      }
      #btn:active {
        background-color: red;
      }
      #btn_text {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
      }
    </style>
    <script type="text/javascript">
      function addButton() {
        var btn = player.addButton({
          hideUserInactive: true
        });
        btn.id = 'btn';
        btn.innerHTML = '<div id="btn_text">ページ更新</div>';
        btn.addEventListener('click', function(e) {
          location.reload();
        });
      }
      window.addEventListener('ulizaplayerready', addButton);
    </script>
  </head>
  <body>
    <プレイヤータグ>
  </body>
</html>

上記のサンプルコードの表示例は以下の図の通りです。