remote-control/directional-pad(D-Pad)入力用のフォーカスナビゲーションが含まれます。クリック/タッチ/ドラッグに基づくUXの実装は、TVのユーザーエクスペリエンスとはほとんど互換性がありません。また、TVデバイスは、デスクトップデバイスやモバイルデバイスよりも使用電力が少ないことがよくあります。このため、たとえばTV向けにはアニメーションを減らして、ウェブコンテンツを最適化する必要があります。パフォーマンスと滑らかさに関する詳細なガイダンスは、ウェブアプリ開発に関するベストプラクティスを参照してください。
WebViewスタックのレイヤー
次の図は、WebViewのコードスタックのレイヤーを示しています。
Vega WebViewのアーキテクチャ図
- WebViewのコアコンポーネント: 以下の一覧のコアコンポーネントは、WebViewウィンドウ内のウェブコンテンツを解析してレンダリングするさまざまなAPIを提供します。
- メディアスタック: ハードウェアアクセラレーションへのアクセスを提供するOS API。システムオンチップ(SoC)とプラットフォームのボードサポートパッケージ(BSP)でサポートされる、フレームをデコードするためのソフトウェアオーディオ/ビデオデコーダーが含まれることもあります。
- DRM: デジタル著作権管理(DRM)ライセンスとキーを処理するAPI。このAPIは、デコーダーコンポーネントと連携してARM TrustZoneまたは高信頼実行環境(TEE)でフレームを復号化します。
- グラフィック: ウェブコンテンツとメディアレンダリングのためのサーフェスとサブサーフェスを提供するAPI。
- キーボード: WebView用のスクリーンキーボードを提供するサービス。
- アプリフレームワーク: ライフサイクルマネージャー、パッケージマネージャー、イベントマネージャーなどを提供するフレームワーク。
- Chromium: Vega用に最適化されたChromiumウェブエンジン。このエンジンでは、HTML、CSS、JavaScriptなどのウェブページの解析とレンダリングを行います。
- UIフレームワーク: リアクティブプログラミングをサポートするクロスプラットフォームのツールキット。リアクティブプログラミングは、Reactと同様の宣言型のプログラミングスタイルです。このフレームワークにより、コンポーネント開発者はクロスプラットフォームAPIの抽象化を公開して、オペレーティングシステム(OS)レベルのAPIサーフェスを操作できます。
- ネイティブVega WebViewコンポーネント: 開発者がWebViewを使用できるようにするためのC++で記述されたコンポーネント。
- React Native WebView API: AmazonとVega向けReact Nativeアプリとの間のソフトウェアインターフェイス。
- Vegaアプリ向けReact Native: 開発者が作成したアプリ。
ウェブアプリのクイックセットアップ
手順1:アプリテンプレートを追加する
手順2:必要なサービスをmanifest.tomlファイルに追加する
手順3:App.tsxファイルにWebViewコンポーネントをインポートして使用する
WebViewのプロパティ
WebViewコンポーネントのすべてのプロパティの一覧については、Vega WebViewコンポーネントリファレンスを参照してください。サポートされるメディアフォーマット
Vegaウェブアプリでは、次のオーディオ形式とビデオ形式がサポートされます。サポートされるオーディオ形式
- FLAC
- MP3
- Opus
- Vorbis
- AAC
- PCM 8ビット符号なし整数
- PCM 16ビット符号付き整数(リトルエンディアン)
- PCM 24ビット符号付き整数(リトルエンディアン)
- PCM 32ビット浮動小数点数(リトルエンディアン)
- PCM 16ビット符号付き整数(ビッグエンディアン)
- PCM 24ビット符号付き整数(ビッグエンディアン)
- PCM μ-law
- PCM A-law
- AAC-LC
- AAC-SBR
- AAC-PS
- AAC Scalable(MPEG-2)
サポートされるビデオ(ソフトウェア)形式
- Theora
- MPEG4 Part 2
サポートされるビデオ(ハードウェア)形式
- VP8
- VP9
- H.264
- H.265
デジタル著作権管理(DRM)のサポート
WebViewでは現在、WidevineとPlayReadyがサポートされています。Widevineは、ビデオでHW_SECURE_ALLを、オーディオでSW_SECURE_CRYPTOをサポートします。PlayReadyは、ビデオでSL3000を、オーディオでSL2000をサポートします。
デバイスがDRMコンテンツをサポートしているかどうかの確認
WebViewでは、デバイスがサポートしていれば、ハードウェアDRM(Widevine L1およびPlayReady SL2000/3000)とソフトウェアDRM(Widevine L3)がサポートされます。DRMが利用可能かどうかを確認するには、ウェブアプリでrequestMediaKeySystemAccessメソッドを使用します。
使用上の注意
- configのrobustnessフィールドは、照会するDRMのレベルを決定します。ハードウェアによるDRMには
HW_SECURE_ALLを使用し、ソフトウェアDRMにはSW_SECURE_CRYPTOを使用します。オーディオはハードウェアによってサポートされないため、オーディオコンテンツにはSW_SECURE_CRYPTOを使用します。 - 要求されたDRM構成がデバイスでサポートされていない場合、プロミスは拒否されます。
- ハードウェアとソフトウェアの両方のDRMレベルを確認し、サポート状況に応じて適切にフォールバックしてください。
サポート対象外の機能と既知の制限事項
サポート対象外の機能
- 位置情報
- ファイルのアップロードまたはダウンロード
- 複数行テキストボックス
- 外部ブラウザへの起動
- .movファイル
- 広告ID
- WebGPU
既知の制限事項
- ポップアップには制限があります。Javascriptの
alert()、または<select>ドロップダウン要素を使用するポップアップのみサポートされます。window.open()のような一般的なポップアップはサポートされません。

