プレーヤーの例
次のビデオは、ビデオを実行するブラウザ/プラットフォームによって動作が異なります。ビデオがオーディオで自動再生される場合は、自動再生されます。そうでない場合は、ビデオの再生が開始されますが、ミュート解除ボタンが表示されます。このボタンをクリックすると、ビデオのオーディオが聞こえます。一般的に、iOS、Safari、Chrome を使用している場合、ビデオがミュートされていないと、動画は自動再生されません。このサンプルでは、ビデオを自動再生する方法を示し、ミュートを解除するための明らかなボタンを示します。
IMA3 プリロールを使用している場合は、このドキュメントの「プリロール広告を使用する」セクションを参照してください。このセクションでは、IMA プリロール広告で機能を機能させるには、次の CodePen に示すコードに適用する必要がある小さな変更について詳しく説明します。
ペンを見るミュート解除ボタンによる自動再生 Brightcove Learning Services( @ rcrooks1969) オンCodePen。
ソースコード
CodePen を使用する
上記のCodePenを効果的に使用するためのヒントは次のとおりです。
- [ 結果]ボタンをクリックして、プレーヤーの実際の表示を切り替えます。
- HTML/CSS/JSボタンをクリックして、いずれかのコードタイプを表示します。
- このドキュメントの後半では、アプリケーションで使用されるロジック、フロー、およびスタイル設定については、 Player/HTML設定、アプリケーションフロー、およびアプリケーションのスタイル設定で説明されます。セクション。これらのセクションの情報に沿って従う最も良い方法は、次のとおりです。
- CodePen の [ EDIT ON CODEPEN]ボタンをクリックし、1 つのブラウザ/ブラウザタブでコードを使用できるようにします。
- CodePen で、表示するコードを調整します。CodePen 内の異なるコードセクションの幅を変更できます。
- を見るプレーヤー/ HTML構成、アプリケーションフローおよび/またはアプリケーションのスタイリング別のブラウザ/ブラウザタブのセクション。これで、コードの説明に従い、同時にコードを表示できるようになります。
開発シーケンス
推奨される開発順序は次のとおりです。
- インページ埋め込みプレーヤーの実装を使用して、プレーヤー、プラグイン、CSS の機能をテストします (CSS が必要な場合)
- ローカルテストのためにプラグインのJavaScriptとCSSを別々のファイルに置く
- エラーを解決したら、プラグインコードとCSSをサーバーにデプロイします
- Studio を使用してプラグインと CSS をプレイヤーに追加する
- iframe の実装が適切であると判断した場合は、インページ埋め込みプレーヤーの実装を置き換えます (次のセクションで詳しく説明します)。
これらの手順の詳細については、「ステップバイステップ」を参照してください。プラグイン開発ガイド。
iframe またはページ内埋め込み
Brightcove Player の拡張機能を開発する際には、コードが iframe 実装またはページ内埋め込み実装に最も適しているかどうかを判断する必要があります。ベストプラクティスの推奨事項は、iframe 実装で使用するプラグインを構築することです。iframe プレーヤーを使用する利点は次のとおりです。
- 既存のJavaScriptおよび/またはCSSとの衝突はありません
- 自動応答性
- iframe は、ソーシャルメディアアプリ(または動画が他のアプリに「移動」する必要があるとき)での使用を容易にします。
インページ埋め込みプレーヤーの統合はより複雑になりますが、その実装に関するコードを計画する場合もあります。一般化するために、このアプローチは、包含ページがプレイヤーと通信する必要がある場合に最適です。具体的には、いくつかの例を挙げます。
- 含まれているページのコードは、プレイヤーイベントをリッスンして行動する必要があります
- プレーヤーは包含ページのスタイルを使用します
- iframe は、含まれているページからのリダイレクトのように、アプリロジックが失敗します。
最終実装で iframe コードを使用しない場合でも、JavaScript 用のプラグインと CSS 用の別のファイルを使用して、ページ内埋め込みコードを使用できます。これにより、ロジックがカプセル化され、複数のプレーヤーで簡単に使用できます。
API/プラグインリソースを使用
API メソッド | API イベント |
---|---|
ミュート () | ロードされたメタデータ |
遊ぶ () | |
オン () | |
ボリューム () |
プレーヤー/HTML構成
このセクションでは、プレーヤーの作成時に必要な特別な設定について詳しく説明します。さらに、ページ内埋め込みプレーヤー実装コード以外に、ページに追加する必要があるその他の HTML 要素についても説明します。
プレーヤーの設定
標準の包含に加えてid
の中にvideo
タグ、playsinline
iOS機能に属性が追加されました:
<div id="playerContainer" class="outer">
<video-js id="myPlayerID"
data-video-id="5755775186001"
data-account="1752604059001"
data-player="default"
data-embed="default"
data-application-id
class="video-js"
controls
playsinline></video-js>
</div>
その他のHTML
前のセクションで説明した以外の他の HTML 要素はページに追加されません。
アプリケーションフロー
このアプリケーションの背後にある基本的なロジックは次のとおりです。
play()
メソッドを使用して、ビデオの再生を試みます。メソッドへの呼び出しは、JavaScript の約束によって返された値を保持する変数に割り当てられます。- 約束が解決された場合(ビデオが再生中)、プレーヤーのミュートを解除し、音量レベルを設定します。
- 約束が拒否された場合(ビデオが再生されていない)場合は、次の手順を実行します。
- プレーヤーをミュートし、ビデオの再生を開始します(プレーヤーがミュートされてから今やります)。
- ミュート解除ボタンとして機能する HTML ボタン要素を動的に作成します。
-
click
ボタンにイベントリスナーを追加します。 - ボタンのテキスト、スタイルなどを設定します。
- プレーヤーの上にボタンを置きます。
動画を再生してみる
ラベルが付いたコードを見つけます。
// ### Wait for loadedmetadata then try to play video ###
標準的な手順に従って、loadedmetadata
play()
メソッドを使用する前にイベントを待機します。メソッド呼び出しから返された約束は、promise
変数に格納されます。ビデオが再生されている場合は、プレーヤーのミュートを解除して音量を設定できます。
自動再生ができないときは、プレーヤーをミュートしてビデオを再生します。
ラベルが付いたコードを見つけます。
// ### If autoplay prevented: mute the video, play video and display unmute button ###
ここでは、catch
約束のロジックは、ビデオがプレーヤーで開始されなかったときに行動することができます。プレーヤーはプログラムによってミュートされるため、ビデオが再生されます。play()
メソッドが再び呼び出され、ビデオが開始されます。このコードの後に、ボタンは動的に作成され、設定されます。
click
イベントリスナーをボタンに追加する
ラベルが付いたコードを見つけます。
// ### Add button's event listener ###
JavaScriptを使用するとaddEventListener()
、クリックのイベントハンドラが動的に作成されます。イベントハンドラでは、プレーヤーはミュート解除され、ボリュームレベルが設定され、最後にボタンが DOM から削除されます。
ボタンの設定
ラベルが付いたコードを見つけます。
// ### Configure the button ###
このコードセクションでは、ボタンのラベルが設定され、ボタンの外観が設定され、ボタンを配置する CSS 参照用にが追加されます。class
コンテナにボタンを追加する
ラベルが付いたコードを見つけます。
// ### Add the button to the container ###
コードの 1 行では、div
プレーヤーを制限するボタンが配置されます。
プレロール広告を使用する
ミュート解除ボタンが表示されたときに広告が再生されるため、コンテンツプレーヤーではなく広告プレーヤーのミュートを解除する必要があります。これを行うには、クリックハンドラーに以下を使用します。
button.addEventListener("click", function() {
myPlayer.ima3.adPlayer.muted(false);
myPlayer.ima3.adPlayer.volume(volumeLevel);
//myPlayer.muted(false);
//myPlayer.volume(volumeLevel);
playerContainer.removeChild(button);
}
コンテンツプレーヤーボリュームコントロールの 2 行のコードはコメントアウトされ、比較のためにのみ残されます。
iOS/SAFARI/Chrome 以外のコードでも同じ変更を行う必要はありません。これは、広告がロードされる前(loadstart
イベントで)ボリュームが変更され、その変更はロード時に広告プレーヤーに渡されます。
作業例については、この CodePen を参照してください。
アプリケーションのスタイリング
3 つの CSS セレクタは、次のことを実行します。
height
width
ビデオとを 100% に設定すると、ビデオが配置されているコンテナがいっぱいになります。div
プレーヤーを囲むで使用するクラスセレクターを作成します。使用される値は、プレーヤーのサイズに対応します。div
プレイヤーを囲むの中央にミュート解除ボタンを配置する別のクラスセレクターを作成します。
プラグインコード
通常、JavaScript を Brightcove Player プラグインに変換する場合は、公称の変更が必要です。必要な変更の 1 つは、ready()
メソッドの標準使用をプラグインを定義するコードに置き換えることです。
ここでは、プレーヤーで動作するJavaScriptコードへの非常に一般的に使用されるスタートです:
videojs.getPlayer('myPlayerID').ready(function() {
var myPlayer = this;
...
});
最初の行を変更して、標準の構文を使用して Brightcove Player プラグインを起動します。
videojs.registerPlugin('pluginName', function(options) {
var myPlayer = this;
...
});
前述のように、このドキュメントの対応する GitHub レポ: unmute-button.js には、プラグインの JavaScript コードが表示されます。
プレーヤーでプラグインを使用する
プラグインの CSS ファイルと JavaScript ファイルをインターネットでアクセス可能な場所に保存したら、プレーヤーでプラグインを使用できます。Studio の PLAYERSモジュールでは、プレーヤーを選択し、[ プラグイン ] セクションで CSS ファイルと JavaScript ファイルに URL を追加し、名前を追加することもできます。オプションが必要な場合は、[Options] と [Options]