- W3C Media APIを直接使用する:これは、フラット(非ABR)コンテンツを再生する場合に適したアプローチです。
- W3C Media APIを使用してカスタムJavaScriptプレーヤーを作成する:開発者は、関連するW3C Media APIを直接統合して、独自のJavaScriptベースのメディアプレーヤーを作成できます。
- 既存のJavaScriptプレーヤーライブラリを統合する:Shaka Player、hls.js、dash.js、Bitmovin Playerなど、よく知られているJavaScriptメディアプレーヤーライブラリがいくつかあります。開発者は、これらの既存のプレーヤーのいずれかを統合できます。このようなプレーヤーにより、基盤のW3C Media APIが抽象化されます。
- HTMLMediaElement(英語のみ)
- Media Source Extension(英語のみ)
- Encrypted Media Extension(英語のみ)
URLモード
URLモードは、MP4ファイルやMP3ファイルなどの非アダプティブコンテンツ形式の再生用に設計されています。このモードでは、HTMLMediaElement.src属性を使用してメディアソースを直接設定します。
オーディオのみの再生の例
次の例は、オーディオのみを再生する簡単な実装を示しています。useRef()を使用してVideoPlayerのインスタンスを作成する。- プレーヤーを初期化し、再生が自動的に開始されるようにautoplayをtrueに設定する。
- src属性を使用してオーディオのソースURLを設定する。
- オーディオ再生を示すテキストを含むシンプルなUIをレンダリングする。
ビデオ再生の例
次の例は、URLモードでのビデオ再生を示しています。useRef()を使用してVideoPlayerのインスタンスを作成する。onSurfaceViewCreatedコールバックを実装し、その中で以下を実行する。- ビデオプレーヤーを初期化する。
setSurfaceHandle()を使用してプレーヤーをサーフェスに関連付ける。- 自動再生を有効にする。
- ビデオのソースURLを設定する。
onSurfaceViewDestroyedコールバックを実装し、その中で以下を実行する。- サーフェスハンドルを切り離す。
- プレーヤーの初期化を解除する。
- プレーヤーの参照をクリーンアップする。
- ライフサイクルコールバックでコンポーネントをレンダリングする。
- サーフェスの管理:ビデオ再生では、onSurfaceViewCreatedコールバックとonSurfaceViewDestroyedコールバックを通じてKeplerVideoSurfaceViewのライフサイクルを管理する必要があります。
- サーフェスハンドル:ビデオ再生では、setSurfaceHandle()を使用してプレーヤーをレンダリングサーフェスに関連付ける必要があります。
- クリーンアップ:ビデオ再生では、サーフェスが破棄されたときに、サーフェスハンドルのクリーンアップと初期化解除を正しく実行する必要があります。
MSEモード
MSE(Media Source Extensions)モードは、HLSストリームやDASHストリームなどのアダプティブビットレートコンテンツを再生するために使用します。このモードを使用するには、アダプティブメディアストリームのダウンロードと管理を処理するJavaScriptベースのメディアプレーヤーライブラリを統合する必要があります。メディアプレーヤーの選択
MSEをサポートするJavaScriptメディアプレーヤーには、次のようなものがあります。- オープンソース:Shaka Player、Dash.js、HLS.js、Bitmovin、Video.js
- 商用:Bitmovinやその他のプロプライエタリソリューション
Shaka Playerを使用したMSEストリーミングの例
次の例は、Shaka Playerを使用してDASHコンテンツをストリーミングする方法を示しています。- コンテンツを構成する:DASHマニフェストURLとDRM設定(必要な場合)を定義します。
- プレーヤーオプションを設定する:アダプティブビットレート(ABR)ストリーミングを有効にします。
- ビデオプレーヤーを初期化する:サーフェスが作成されたときに、VideoPlayerインスタンスを作成して初期化します。
- Shaka Playerを統合する:ShakaPlayerインスタンスを作成し、コンテンツを読み込みます。
- 字幕を管理する:字幕のレンダリングのためにKeplerCaptionsViewコンポーネントを設定します。
- クリーンアップを処理する:サーフェスが破棄されたときに、プレーヤーの読み込み解除とリソースの初期化解除を正しく実行します。
ビルドとテスト
Vega SDKを使用してアプリをビルドし、デバイスまたはシミュレーターで実行します。詳細な手順については、以下のトピックを参照してください。重要:URLモードとMSEモード
URLモードはアダプティブストリーミングではサポートされません。一部の基本的なアダプティブコンテンツでは、限定的な状況でURLモードが機能する場合がありますが、その動作は保証されません。公式には、URLモードでのアダプティブビットレートストリーミングはサポートされません。 URLモードは次の場合にのみ使用してください。- 非アダプティブコンテンツ(MP4、MP3ファイル)• 単純な再生のシナリオ
- アダプティブビットレートコンテンツ(HLS、DASHストリーム)
- DRMで保護されたコンテンツ
- ライブストリーミング
- 高度な再生機能
次の手順
プレーヤーを選択するときは、サポートされている機能、パフォーマンス、コミュニティサポート、ライセンスなどの要素を考慮する必要があります。各プレーヤーから提供されているドキュメントと例を確認して、アプリの要件に最も適しているものを判断してください。プレーヤーを選択したら、その統合ガイドを参照して、React Nativeメディアプレーヤーアプリ内で設定して使用する方法を学びます。これらのプレーヤーのいくつかは既に移植されています。以下を参照してください。- Shaka Playerを使用したアダプティブストリーミングコンテンツ(HLS/DASH)の再生
- Dash.jsプレーヤーを使用したアダプティブコンテンツの再生
- Hls.jsプレーヤーを使用したアダプティブコンテンツの再生

