プレーヤーのサイズ設定

このトピックでは、iframe および Videoタグ実装を使用して、動画とプレーヤーのサイズを設定する方法を説明します。

サイズ設定の考慮事項

動画およびプレーヤーのサイズ設定において重要な概念が 2 つあります。

  • アスペクト比 – プレーヤー作成時に curl ステートメントで設定するメディアの幅と高さのプロパティが、動画の持つ本来の寸法(アスペクト比)を定義します。

  • プレーヤーサイズ – CSS や HTML コードで設定するプレーヤーの幅と高さのプロパティにより、プレーヤーのサイズが決まります。プレーヤーのサイズを変更すると、本来の動画寸法をもとにコントロールの位置が適切に保たれます。

アスペクト比の設定

動画のアスペクト比とは、幅と高さの比率のことです。従来のテレビは 4:3、ワイドスクリーンは 16:9 のアスペクト比を使用します。

プレーヤーを作成する際、Studio を使って動画の幅と高さを指定できます。Players モジュールの プレーヤー情報 セクションを使用します。

sizing-studio-aspect-ratio

動画のアスペクト比は一定のままで、プレーヤーがレスポンシブにサイズ変更されてもコントロールは適切に配置されます。

誤ったアスペクト比を使用する場合

動画の寸法と異なるメディアのアスペクト比を指定すると、動画の周りにレターボックスが表示され、プレーヤーのコントロールも動画上に正しく配置されません。

ここでは、メディアの幅と高さをそれぞれ 640px と 480px(4:3 のアスペクト比)に設定していますが、使用している Tiger 動画は 16:9 のアスペクト比です。

incorrect aspect ratio

正しいアスペクト比を使用する場合

メディアの寸法が動画のアスペクト比と一致している場合、レターボックスは表示されず、プレーヤーのコントロールもサイズ変更時に正しく配置されます。

ここでは、メディアの幅と高さをそれぞれ 640px と 360px(16:9 のアスペクト比)に設定しており、Tiger 動画と同じ比率となっています。

correct aspect ratio

プレーヤーサイズの設定

プレーヤーのサイズは Studio を使用して設定できます。Players モジュールの プレーヤー情報 セクションを使用します。

sizing player in studio

以下のセクションで説明するように、CSS を使用してプレーヤーのサイズを設定することもできます。

iframe を使用する

iframe 実装では、iframe 要素に width 属性と height 属性を指定することでプレーヤーのサイズを設定できます。設定方法はいくつかあります。

  • iframe 要素に属性を追加する

  • iframe 要素に CSS を適用する

  • id 属性を使用して CSS を適用する

iframe 要素に属性を追加する

iframe 要素に widthheight 属性を追加して設定します。

    <!doctype html>
    <html>
    
    <head>
      <meta charset="UTF-8">
      <title>Size the Player</title>
    </head>
    
    <body>
    
      <iframe src="https://players.brightcove.net/1507807800001/rf1BTdKk6M_default/index.html?videoId=6116766236001"
        allowfullscreen=""
        allow="encrypted-media"
        width="960" height="540"></iframe>
    
    </body>
    </html>

iframe 要素に CSS を適用する

CSS 内で、iframe 要素に対して widthheight を設定します。

    <!-- Page styles -->
    <style>
      iframe {
          width: 640px;
          height: 360px;
       }
    </style>

id 属性を使用して CSS を適用する

CSS 内で iframe 要素に追加した id を参照します。この方法は、ページに複数の iframe 要素が存在する場合に便利です。

    <!-- Page styles -->
    <style>
      #myPlayer {
        width: 640px;
        height: 360px;
      }
    </style>
    ...
    <iframe id="myPlayer" ...

Videoタグ(インページ埋め込み)を使用する

Videoタグ(インページ埋め込み)実装では、video 要素に width 属性と height 属性を指定することでプレーヤーサイズを設定できます。これを行う方法はいくつかあります。

  • video 要素に属性を追加する
  • class 属性を使用して CSS を適用する
  • id 属性を使用して CSS を適用する

video 要素に属性を追加する

video 要素に widthheight 属性を追加し、値を設定します。

    <video-js data-account="1507807800001"
      data-player="rf1BTdKk6M"
      data-embed="default"
      controls=""
      data-video-id="6116766236001"
      data-playlist-id=""
      data-application-id=""
      width="960" height="540"></video-js>
    <script src="https://players.brightcove.net/1507807800001/rf1BTdKk6M_default/index.min.js"></script>

class 属性を使用して CSS を適用する

video 要素には class 属性があり、CSS から参照してプレーヤーサイズを設定できます。

    <!-- Page styles -->
    <style>
      .video-js {
        width: 640px;
        height: 360px;
      }
     </style>

id 属性を使用して CSS を適用する

CSS 内で、video 要素に追加した id を参照します。この方法は、ページに複数の video 要素がある場合に便利です。

    <!-- Page styles -->
    <style>
      #video_1 {
        width: 640px;
         height: 360px;
      }
    </style>
    ...
    <video-js id="video_1" ...

パーセンテージの使用

Brightcove Player の iframe または video タグで heightwidth 属性を使用する場合、これらの属性はピクセルのみで測定されます。実際、height および width 属性には単位を入力しません(px を付けることはできますが、技術的には正しい HTML 仕様ではありません)。

      width="480"

パーセンテージを使用することも可能で、これは CSS を使って次の 2 通りの方法で実現できます。

  • video タグ内で style 属性を使用する方法。
          <video-js data-video-id="5622718636001"
            data-account="1507807800001"
            data-player="default"
            data-embed="default"
            data-application-id
            controls=""
            style="width: 100%;height: 100%"></video-js>
          <script src="https://players.brightcove.net/1507807800001/default_default/index.min.js"></script>
  • style タグを使用する方法。
          ...
          <style>
              .video-js {
                height: 100%;
                width: 100%;
              }
          </style>
          ...
          <video-js data-account="1752604059001"
            data-player="H1xW7NWcz"
            data-embed="default"
            data-application-id
            controls=""></video-js>
          <script src="https://players.brightcove.net/1752604059001/H1xW7NWcz_default/index.min.js"></script>

フルスクリーン表示

最新のブラウザで fullscreen API をサポートしている場合、プレーヤーがフルスクリーンに切り替わった際に 100% にスケールされるよう、ページ内の CSS ルールを適用する必要があります。これを行わないと、フルスクリーン表示でもプレーヤーが元のサイズのまま表示されてしまいます。

フルスクリーンモードでプレーヤーが適切にスケールされるよう、以下の CSS を使用します。

      /***************************
      * Fullscreen display      *
      ***************************/
      body.vjs-full-window {
        padding: 0;
        margin: 0;
        height: 100%;
      }
      .video-js.vjs-fullscreen {
        position: fixed;
        overflow: hidden;
        z-index: 1000;
        left: 0;
        top: 0;
        bottom: 0;
        right: 0;
        width: 100% !important;
        height: 100% !important;
      }
      .video-js:-webkit-full-screen {
        width: 100% !important;
        height: 100% !important;
      }
      .video-js.vjs-fullscreen.vjs-user-inactive {
        cursor: none;
      }

優先順位の順序

プレーヤーのサイズを設定する方法はいくつかあります。以下は、その優先順位の一覧です。

  • 実行時の変更(JavaScript を使用してプレーヤーサイズを変更)
  • <video-js> タグで設定されたサイズ
  • CSS(通常の継承ルールに従う)
  • プレーヤー設定(Player configuration settings)

Player API におけるサイズ

Player API には、ピクセル単位でサイズを返す 4 つのメソッドがありますが、それぞれの違いを理解することが重要です。

  • .height() - video タグの height 属性で設定された高さを返します(属性が設定されていない場合、height() は 0 を返します)。
  • .width() - video タグの width 属性で設定された幅を返します(属性が設定されていない場合、width() は 0 を返します)。
  • .currentHeight() - 設定方法に関係なく、プレーヤーの現在の高さを返します。
  • .currentWidth() - 設定方法に関係なく、プレーヤーの現在の幅を返します。

多くの場合、使用すべきメソッドは currentHeight()currentWidth() です。