前提条件
Shaka Playerでアダプティブコンテンツを再生できるようにコードを変更する前に、次の前提条件を満たしていることを確認し、アプリとプレーヤーを設定します。- W3Cメディアプレーヤーを使用するようにアプリを設定します。詳細については、メディアプレーヤーのセットアップを参照してください。
- 依存関係の完全なリストについては、Shaka Playerのドキュメント(英語のみ)を参照してください。
- Shaka Playerを有効にするには、追加で以下の更新を行います。
-
appフォルダのpackage.jsonを開きます。
dependenciesセクションに、次の依存関係を追加します。
-
appフォルダのpackage.jsonを開きます。
Vega向けShaka Playerの構成
-
Vega向けShaka Playerを既知の場所にダウンロードします。
VegaがサポートしているShaka Playerのバージョンは、以下のとおりです。各バージョンの内容については、リリースノートを参照してください。
- ソースバージョンに含まれる内容については、4.16.13に関するリリースノート(英語のみ)を参照してください。
- 4.16.13-r1.2 - 非推奨になったxmldomを@xmldom/xmldomに移行しました。
- 4.16.13-r1.1 - setup.shのpython3への更新と、ネイティブトラックの統合の修正が行われています。また、MPEG1ビデオMIMEが追加されたほか、コーデック情報のないMIMEタイプが処理されるようになりました。
- ソースバージョンに含まれる内容については、4.8.5に関するリリースノート(英語のみ)を参照してください。
- 4.8.5-r1.7 - 非推奨になったxmldomを@xmldom/xmldomに移行しました。
- 4.8.5-r1.6 - setup.shのpython3への更新と、ネイティブトラックの統合の修正が行われています。また、MPEG1ビデオMIMEが追加されたほか、コーデック情報のないMIMEタイプが処理されるようになりました。
- 4.8.5-r1.3 - 一部のコーデック切り替え時の再生失敗に関連するバグ修正、およびシーク時やバリアント切り替え時のAV同期問題の修正。
- 4.8.5-r1.2 - 複数の再生シナリオにわたってパフォーマンスと安定性が向上しました。同じMIMEタイプでMediaSourceが不必要にリセットされないようにすることで、メディア処理を強化しました。マニフェストの更新が無限に遅延する問題を解決しました。X-TIMESTAMP-MAPが不連続マーカーなしで存在する場合の、HLS字幕のタイミング精度が向上しました。より強固なDRM機能を実現するために、主要なシステムアクセスのクローニング機能が追加されました。npmパッケージのスコープが
@amazon-devicesに更新されました。
- 4.6.18に関するリリースノート(英語のみ)
- 4.6.18-r2.16 - 一部のコーデック切り替え時の再生失敗に関連するバグを修正。
- 4.6.18-r2.15 - 複数の再生シナリオにわたってパフォーマンスと安定性が向上しました。同じMIMEタイプでMediaSourceが不必要にリセットされないようにすることで、メディア処理を強化しました。マニフェストの更新が無限に遅延する問題を修正し、DASHネイティブ化のバグを修正しました。
- 4.3.6に関するリリースノート(英語のみ)
- 4.3.6-r2.5 - ヘッドレスJS再生をサポートするようにポリフィルを更新しました。インポートを
@amzn/react-native-w3cmediaから@amazon-devices/react-native-w3cmedia/dist/headlessに変更しました。npmパッケージのスコープが@amazon-devicesに更新されました。
- 4.3.6-r2.5 - ヘッドレスJS再生をサポートするようにポリフィルを更新しました。インポートを
- ソースバージョンに含まれる内容については、4.16.13に関するリリースノート(英語のみ)を参照してください。
-
Shaka Playerパッケージを展開します。
次に例を示します。
tar -xzf shaka-rel-v4.6.18-r2.12.tar.gz - /shaka-rel/scriptsディレクトリに移動します。
-
setup.shヘルパースクリプトを実行します。
./setup.sh
- 生成されたshaka-playerディレクトリから、shaka-rel/src/*ディレクトリの内容を<アプリのルート>/src/*にコピーします。
- 生成されたshaka-playerディレクトリから、distフォルダを<アプリのルート>/src/shakaplayerディレクトリにコピーします。
アダプティブコンテンツの再生
ビデオコンポーネントがマウントされたら、次の手順を実行してShaka Playerを読み込みます。Shaka Playerでアダプティブコンテンツを再生する方法
- src/App.tsxファイルを開き、その内容を以下のコードに置き換えます。
-
MPEGTSコンテンツを含むHLSアダプティブストリームに対してアプリでシーケンスモードを有効にする必要がある場合は、次の例に示すように、
manifest.hls.sequenceModeをtrueに設定します。
Shaka Playerを手動で統合する方法
-
https://github.com/shaka-project/shaka-playerからShakaパッケージをクローンします。
-
使用しているShaka Playerのバージョンに対応するgitブランチを、v<x.y.z>-keplerという名前のローカルブランチにチェックアウトします。x.y.zを、チェックアウトするバージョンのメジャー、マイナー、パッチの各バージョン番号に置き換えます。
- 使用しているShaka Playerのバージョンと一致するVega Shaka Playerパッケージファイルを、展開先となる既知の場所にダウンロードします。
-
ファイルを展開します。
次に例を示します。
tar -xzf shaka-rel-v4.6.18-r2.12.tar.gz -
Shakaパッチを適用します。
-
build/all.pyを実行して、Shaka Playerをビルドします。

