W3C MediaとVegaメディアコントロールの統合
Vegaメディアコントロール(VMC)は、Keplerを使用するメディアアプリ開発者が、メディアコントロール用のさまざまな入力モダリティを効率的に統合できるようにする機能を提供します。メディアアプリには通常、再生・一時停止・停止などのユーザーインターフェイスが備わっていますが、ユーザーがリモコンやAlexaの音声コマンドなどでの操作を希望することも珍しくありません。Vegaメディアコントロールの機能はそれらの多様な入力方法の統合を処理するため、開発者はスムーズなメディア再生というコアビジネスロジックの開発に専念できます。
W3C Media APIを使用してコンテンツを再生するアプリでは、無料でKMCを統合して、一時停止、再生、シークなどの基本的な再生制御を有効にすることができます。W3C Media APIは、内部でKMCサーバーを作成し、サーバーの状態を公開して、再生・一時停止・シークという基本的なコマンドを処理します。
player.setMediaControlFocus(componentInstance)を呼び出したり、機能のオーバーライドを実装したりしないでください。この統合をオプトインするには、次の手順に従います。
- KMCを有効にします。Vegaメディアコントロールの使用開始の説明に従って、manifest.tomlファイルに必要なマニフェストエントリを追加します。
- package.jsonファイルを更新して、
@amazon-devices/kepler-media-controlsへの依存関係を指定します。 -
対話型コンポーネントのコンポーネントインスタンスを取得します。
import { useComponentInstance , IComponentInstance } from '@amazon-devices/react-native-kepler'; const componentInstance: IComponentInstance = useComponentInstance(); -
ビデオプレーヤーを初期化する前に、プレーヤーインスタンスにメディアコントロールフォーカスを設定します。
player.setMediaControlFocus(componentInstance);
これにより、このプレイヤーインスタンスでKMCが有効になり、リモコンやAlexa音声制御による一時停止・再生・シークの基本機能がサポートされます。
特定の制御コマンドのオーバーライド
場合によっては、W3C Mediaがデフォルトで実行する特定の制御コマンドの処理を、アプリでオーバーライドすることが必要になります。たとえば、ライブコンテンツの再生中にシークを無効にする場合があります。W3C Mediaには、これを実現する方法も用意されています。
-
W3C Mediaが提供するVegaMediaControlHandlerを継承し、目的の関数をアプリでオーバーライドします。
import {VegaMediaControlHandler} from "@amazon-devices/react-native-w3cmedia"; import {IMediaSessionId } from '@amazon-devices/kepler-media-controls'; class AppOverrideMediaControlHandler extends VegaMediaControlHandler { async handlePlay(mediaSessionId?: IMediaSessionId) { if(shouldOverride) { // アプリの要件に従ってカスタム処理を実行します。 } else { // デフォルトハンドラーを呼び出します。 super.handlePlay(mediaSessionId); } } }; -
setMediaControlFocusメソッドに、アプリのメディアコントロールハンドラーを第2パラメーターとして渡します。player.setMediaControlFocus(componentInstance, new AppOverrideMediaControlHandler());
関連トピック
Last updated: 2025年9月30日

