- W3C標準の
decodeInfo()。Shaka Playerやその他のウェブベースのプレーヤーを使用するアプリに推奨されます。 - VegaグラフィックスAPI。W3C APIを使用しないカスタムプレーヤーに推奨されます。
前提条件
- Vega開発環境がセットアップされていること
- Vega OSで動作するReact Nativeアプリ
- テスト用のFire TV Stick 4K Select
@amazon-devices/react-native-w3cmediaパッケージがインストールされていること(decodeInfo()を使用する場合)
decodeInfo()ポリフィルの定義
Amazonのパッチが適用されたShaka Playerを使用する場合は、この手順をスキップしてください。これにはポリフィルが既に含まれています。
その他のプレーヤーの場合は、decodeInfo()のポリフィルを定義します。メディア機能のドキュメントに含まれているポリフィルのコードを参照してください。
Vega Sportsサンプルアプリでは、ビルドスクリプトによってW3CMediaPolyfill.tsというファイルが<アプリのルート>/w3media/polyfills/フォルダに配置されます。このファイルにdecodeInfo()の実装が含まれています。
ポリフィルのインストール
アプリにポリフィルを定義したら、そのポリフィルをインストールして、アプリからメディア機能にアクセスできるようにします。Vega Sportsサンプルアプリでは、アプリの初期化中にポリフィルがインストールされます。decodeInfo()による解像度サポートの照会
Shaka Playerや、decodingInfo()を直接呼び出すその他のW3Cベースのプレーヤーを使用する場合は、この手順をスキップしてください。
カスタムプレーヤーのコードでは、decodeInfo()を使用して、接続されているディスプレイでサポートされる解像度をチェックします。次の例では、HDおよび超高精細(UHD)のAdvanced Video Coding(AVC)ストリームのデコードがサポートされるかどうかを確認します。
decodingInfoImpl()はconfiguration_4kをサポート対象外として返し、低解像度の構成をサポート対象として返します。
代替手段としてのVegaグラフィックスAPIの使用
VegaグラフィックスAPIは、Fire TVデバイスおよび接続されているディスプレイに関する情報を取得する手段を提供します。取得できる情報には、高さと幅に加えて、ハイダイナミックレンジ(HDR)などの機能が含まれます。この方法は、W3C APIを使用しないカスタムプレーヤーに最適です。 返される高さの値には、デバイスとディスプレイの組み合わせに応じて適切な解像度が反映されます。- HD TVがFire TV Stick 4K Selectに接続されている場合は1080が返されます。
- 4K TVがFire TV Stick 4K Selectに接続されている場合は2160が返されます。
実装のテスト
アプリをビルドし、Fire TVデバイスで実行します。- Fire TV Stick 4K SelectをHD(1080p)TVに接続します。
- アプリを実行し、HDストリームのみがリクエストされることを確認します。
- Fire TV Stick 4K Selectを4K TVに接続します。
- アプリを実行し、4Kストリームがリクエストされることを確認します。

