はじめに
このトピックでは、 CMS API からデータを取得し、それを Brightcove Player のオーバーレイで表示する方法について説明します。このオーバーレイでは、再生が一時停止または終了したときに、アカウント内の関連動画(タグ/メタデータ経由)が表示されます。人気のあるビデオオーバーレイのサンプルも参照してください。
制約事項
プレーヤーの例
次の使用例は、再生が一時停止または終了したときに、関連するビデオのサムネイルを対話的にオーバーレイ表示します。下のビデオの再生を開始します。再生を一時停止したとき、またはビデオが終了すると、関連するビデオのオーバーレイが表示されます。オーバーレイでサムネイルを選択すると、関連付けられたビデオがプレーヤーにロードされ、再生が開始されます。
Pen Brightcove プレーヤーのサンプルを参照してください。タグを介した関連ビデオ(CMS API) Brightcove Learning Services( @ bcls1969) オンCodePen。
ソースコード
概要
このサンプルでは、 PHPで構築されたプロキシを呼び出すにはCMS APIプレーヤーに読み込まれた動画と同じタグ値を持つ同じアカウントの関連動画を検索します。
CMS API を初めて使用する場合は、まず、次のドキュメントを参照してください。
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 イベント | プラグイン |
---|---|---|
catalog.getVideo () | 遊ぶ | ビデオオーバーレイ |
catalog.load () | 終わった | |
遊ぶ () |
プレーヤー/HTML構成
Overlayプラグインは、この例の JavaScript コードで定義され、初期化されています。ここで行われる理由は、オーバーレイを初期化する前に、関連する動画のメタデータを取得する必要があるためです。
プレーヤー設定にオーバーレイプラグインを含める場合は、Video Cloud Studio のプレーヤーモジュールにオーバーレイ JavaScript および CSS ファイルを追加できます。の中にプラグインセクション、 出て名前プロパティが空白であるため、コード内でプラグインを初期化できます。
その他のHTML
追加することを忘れないでくださいid
に属性video
プレーヤーの埋め込みコードにタグを付けます。
<video-js id="myPlayerID"
...
アプリケーションフロー
このアプリケーションの背後にある基本的なロジックは次のとおりです。
- ベース CMS API URL とプロキシコード URL の値を定義する変数を作成します。
- ビデオの読み込みが開始されるまで待ってから、ビデオのメタデータが取得されます。
- CMS API のリクエストを設定します。
- プロキシコードを呼び出して、 CMS API最初の9つの関連ビデオを取得します。
- オーバーレイコンテンツをフォーマットして、関連する各動画のサムネイルを表示します。
- ユーザーが関連するビデオサムネールの 1 つを選択し、それをプレーヤーにロードして再生を開始します。
値を定義する
ベースの値を定義する変数を作成しますCMS API URLとプロキシコードのURL。
ロードされたメタデータを待つ
ラベルが付いたコードを見つけます。
// +++ Wait for loadedmetadata +++
loadedmetadata
イベントをリッスンして、ビデオの読み込みが開始されるのを待ちます。これにより、アカウント ID、名前、mediainfo
タグの値などのビデオメタデータがオブジェクト内で使用できるようになります。
API リクエストの設定
ラベルが付いたコードを見つけます。
// +++ Setup the API request +++
現在プレーヤーにロードされているビデオの情報を使用して、 CMS API同じアカウントの動画の検索リクエスト。検索では、現在の動画の最初のタグと同じ値を持つ動画が検索されます。現在の動画と同じ名前の動画を除外し、返される動画の数を 9 に制限します。これは、オーバーレイレイアウトに収まる数です。
を作るCMS APIリクエスト
ラベルが付いたコードを見つけます。
// +++ Make the CMS API request +++
プロキシコードを使用して、HTTPGETリクエストをCMS API RESTfulWebサービス。返されたデータを JSON 形式で解析します。エラーが発生した場合は、エラーメッセージを表示します。
オーバーレイの内容を書式設定する
ラベルが付いたコードを見つけます。
// +++ Format the overlay content +++
オーバーレイコンテンツをフォーマットするには、次の操作を実行します。
- CMS API から返された関連動画ごとに ID、名前、サムネイルを抽出し、配列に格納します。
- 関連するビデオアレイをループして、
<div>
<div>
関連する各ビデオの要素を保持するビデオリストラッパーを作成します。これがオーバーレイコンテンツになります。 - 新しく作成した関連ビデオコンテンツでオーバーレイプラグインを初期化します。オーバーレイが表示されると、関連するビデオサムネイルのグリッドが表示されます。ビデオの再生が一時停止または終了したときにオーバーレイを表示します。メインビデオの再生中にオーバーレイを非表示にします。
関連ビデオの読み込みと再生
ラベルが付いたコードを見つけます。
// +++ Load and play related video +++
ユーザーが選択した関連ビデオのロードと再生を開始する関数を作成します。
アプリケーションのスタイリング
CSS は、オーバーレイの関連するビデオのサムネイルグリッドにスタイルを設定します。
プラグインコード
通常、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 レポ: related-videos-cms.js には、プラグインの JavaScript コードが表示されます。
プレーヤーでプラグインを使用する
プラグインの CSS ファイルと JavaScript ファイルをインターネットでアクセス可能な場所に保存したら、プレーヤーでプラグインを使用できます。Studio の PLAYERSモジュールでは、プレーヤーを選択し、[ プラグイン ] セクションで CSS ファイルと JavaScript ファイルに URL を追加し、名前を追加することもできます。オプションが必要な場合は、[Options] と [Options]
プロキシコード
このページのサンプルアプリを独自のバージョンで作成するには、独自のプロキシを作成してホストする必要があります。(Brightcoveラーニングサービスで使用されるプロキシは、Brightcoveのドメインからのリクエストのみを受け付けます)。サンプルプロキシは、使用するものとよく似ていますが、BrightCove 以外のドメインからのリクエストをブロックするチェックがないと、この GitHub リポジトリにあります。また、そこで使用するための基本的な手順と、プロキシを使用してアプリケーションを構築するためのより詳細なガイドについては、「REST API の使用」を参照してください。