Amazon Developer

as

Settings
Sign out
Notifications
Alexa
Amazonアプリストア
Ring
AWS
ドキュメント
Support
Contact Us
My Cases
開発
設計と開発
公開
リファレンス
サポート
メインコンテンツへスキップ
次の手順では、Shaka PlayerをMSEモードで使用して、アダプティブストリーミングコンテンツを再生する方法を示しています。 Amazonから提供されるShaka Playerパッチは特定のバージョンのプレーヤーを対象としていますが、任意のバージョンのShaka Playerに移植することができます。特定のバージョンのShaka Playerを使用する必要はありません。開発者は、独自の要件に合わせて適切なShaka Playerのバージョンを決定できます。Shaka Playerによるコンテンツの処理に関する問題については、オープンソースコミュニティに問い合わせてください。 Shaka Playerとサポートされるさまざまな構成の詳細については、Shaka Player(英語のみ)を参照してください。

前提条件

Shaka Playerでアダプティブコンテンツを再生できるようにコードを変更する前に、次の前提条件を満たしていることを確認し、アプリとプレーヤーを設定します。
  • W3Cメディアプレーヤーを使用するようにアプリを設定します。詳細については、メディアプレーヤーのセットアップを参照してください。
  • 依存関係の完全なリストについては、Shaka Playerのドキュメント(英語のみ)を参照してください。
  • Shaka Playerを有効にするには、追加で以下の更新を行います。
    • appフォルダのpackage.jsonを開きます。dependenciesセクションに、次の依存関係を追加します。

Vega向けShaka Playerの構成

  1. 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に更新されました。
  2. Shaka Playerパッケージを展開します。 次に例を示します。 tar -xzf shaka-rel-v4.6.18-r2.12.tar.gz
  3. /shaka-rel/scriptsディレクトリに移動します。
  4. setup.shヘルパースクリプトを実行します。 ./setup.sh
setup.shスクリプトはビルドを実行して、scriptsディレクトリにshaka-playerという名前のフォルダを生成します。ビルドの問題がある場合に考えられる解決策については、Shaka Playerビルドのトラブルシューティングを参照してください。
  1. 生成されたshaka-playerディレクトリから、shaka-rel/src/*ディレクトリの内容を<アプリのルート>/src/*にコピーします。
  2. 生成されたshaka-playerディレクトリから、distフォルダを<アプリのルート>/src/shakaplayerディレクトリにコピーします。

アダプティブコンテンツの再生

ビデオコンポーネントがマウントされたら、次の手順を実行してShaka Playerを読み込みます。

Shaka Playerでアダプティブコンテンツを再生する方法

  • src/App.tsxファイルを開き、その内容を以下のコードに置き換えます。
アプリをビルドし、デバイスまたはシミュレーターで実行してログを収集するには、次のコマンドを実行します。
アプリを作成してシミュレーターで実行する方法の詳細については、Vegaアプリの作成およびVega仮想デバイスを参照してください。
  • MPEGTSコンテンツを含むHLSアダプティブストリームに対してアプリでシーケンスモードを有効にする必要がある場合は、次の例に示すように、manifest.hls.sequenceModeをtrueに設定します。
この関数を使用すると、HLSストリームでシーケンスモードを有効にできます。シーケンスモードでは、セグメントのタイムスタンプに関係なく、隣接するセグメントの再生がサポートされます。これは、メディアセグメントのタイムスタンプの順序が乱れていて、メディアパイプラインが停止する可能性がある場合に役立ちます。

Shaka Playerを手動で統合する方法

  1. https://github.com/shaka-project/shaka-playerからShakaパッケージをクローンします。
  2. 使用しているShaka Playerのバージョンに対応するgitブランチを、v<x.y.z>-keplerという名前のローカルブランチにチェックアウトします。x.y.zを、チェックアウトするバージョンのメジャー、マイナー、パッチの各バージョン番号に置き換えます。
  3. 使用しているShaka Playerのバージョンと一致するVega Shaka Playerパッケージファイルを、展開先となる既知の場所にダウンロードします。
  4. ファイルを展開します。 次に例を示します。 tar -xzf shaka-rel-v4.6.18-r2.12.tar.gz
  5. Shakaパッチを適用します。
  6. build/all.pyを実行して、Shaka Playerをビルドします。

Shaka Playerビルドのトラブルシューティング

glibcが見つからないエラー

次のエラーが発生する場合は、後の例に示すようにnode 16.20.2をセットアップします。
nvm 16.20.2をセットアップします。

ESLintエラー

どの親ディレクトリにも.eslintrc.jsファイルがないことを確認します。

ビルドが完了しない

package-lock.jsonファイルを編集し、「git+ssh」という文字列の出現箇所をすべて「https」に置き換えます。

関連トピック


最終更新日 2026年10月26日