Amazon Developer

as

Settings
Sign out
Notifications
Alexa
Amazonアプリストア
Ring
AWS
ドキュメント
Support
Contact Us
My Cases
開発
設計と開発
公開
リファレンス
サポート
メインコンテンツへスキップ
アプリでMatterキャストを有効にするには、以下を更新する必要があります。
  • クライアント:これはユーザーが使用するAndroidまたはiOSのスマートフォンアプリです。スマートフォンアプリをMatterクライアントにすると、ユーザーがFire TVなどのキャストターゲットを検出できるようになります。さらに、コンテンツをキャストしたり、キャストセッションを制御したりすることもできます。
  • コンテンツアプリ:Vega上で動作するFire TVデバイス上のユーザー向けアプリです。VegaアプリをMatterコンテンツアプリにすると、クライアントがVegaアプリを制御できるようになります。たとえば、クライアントで特定のコンテンツの再生を開始できます。
Matterキャストの概念、用語、および前提条件に関する背景情報については、「Matterキャストの概要」を参照してください。 Vegaを使った開発の背景情報については、「Vega向け開発」を参照してください。

手順1:MatterキャストSDKをクライアントアプリに統合する

VegaでのMatterキャストのクライアント(スマートフォンアプリ)統合は、Fire OSの場合と同じように機能します。AndroidまたはiOSのスマートフォンアプリはMatterキャストSDKを使用して、プレーヤーを検出し、接続を確立し、コマンドを送信します。 VegaデバイスでMatterキャストをサポートするために、スマートフォンアプリを変更する必要はありません。ビルドとセットアップ、コミッショニング、デバイス認証など、MatterキャストSDKをクライアントアプリに統合する方法の詳細については、Fire OS Matterキャスト統合ガイドの手順1を参照してください。

手順2:MatterキャストをVegaアプリに統合する

Vegaにおいて、コンテンツアプリの統合は概念的にFire OSと似ていますが、使用するAPIは異なります。AIDLファイル、Matterエージェントクライアント、BroadcastReceiversなどのMatterプロトコル構成を直接操作する代わりに、VegaアプリはVegaプラットフォームと統合されます。 Vegaプラットフォームは、関連するコマンドと属性のグループであるクラスターにまとめられた、モダリティにとらわれない一連のAPIを提供します。コンテンツアプリはサポートするクラスターのプロバイダーとして登録され、Vega Matterキャストサービスがプロバイダーアプリとクライアントのスマートフォンアプリ間の通信を処理します。

アーキテクチャの概要

Vega OSでは、VegaプラットフォームのMatterキャストサービスがMatterプロトコルレイヤーを処理し、スマートフォンアプリとVegaコンテンツアプリ間の変換を行います。 Vega Matterキャストアーキテクチャ このアーキテクチャの主な利点は、コンテンツアプリがMatterプロトコルと直接やり取りしないことです。標準のVegaプラットフォームクラスターハンドラーを実装すると、VegaプラットフォームのMatterキャストサービスがすべてのプロトコル変換を処理します。

MatterクラスタからVegaプラットフォームクラスタへのマッピング

Matterキャストはいくつかのクラスターを定義します。Fire OSとVegaアーキテクチャの両方には、システムによって処理され、コンテンツアプリのアクションを必要としないクラスターがいくつかあります。Vegaでは、一部のクラスターは、コンテンツアプリが実装する必要があるVegaプラットフォームクラスターにマップされます。

システム処理クラスター

このコードを実装するためにコンテンツアプリのアクションは必要ありません。

コンテンツアプリクラスター

Vegaコンテンツアプリは、プロバイダーとして登録することでこれらのクラスターを実装します。

1. アプリのマニフェストを更新する方法

Matterキャストのサポートとアプリが提供するVegaプラットフォームクラスターを宣言するには、Vegaアプリのmanifest.tomlファイルを更新する必要があります。これは、Fire OSにおけるAndroidManifest.xmlの更新に相当するVegaでの作業です。

Matterキャスト構成

[offers.matter-casting]セクションを追加して、アプリのMatterキャストのアイデンティティを宣言してください。ベンダーIDと製品IDは、デバイス認証証明書(DAC)の値と一致する必要があります。詳しくは、「アプリの証明」を参照してください。 開発のためには、次のサンプル値を使用できます。このセクションはマニフェストの[offers]エリアにあります。

マニフェスト全体の例

次の例は、コンテンツランチャー、メディアコントロール、アカウントログイン、およびターゲットナビゲータークラスターと共にMatterキャストをサポートするVegaコンテンツアプリの完全なmanifest.tomlを示しています。com.amazondeveloper.media.sampleをアプリのパッケージIDに置き換えてください。

マニフェストに関する重要なポイント:

  • [offers.matter-casting]セクションは、MatterキャストサービスのためのアプリのMatterアイデンティティ(ベンダーID、プロダクトID、ベンダー名)を宣言します。
  • key = "interface.provider"が付いた[[extras]]セクションは、アプリがサポートするのはどのVegaプラットフォームクラスターかを宣言します。これは、Fire OSにおけるstatic_matter_clusters JSONファイルのようなものです。
  • categoriesフィールドには、プライマリ対話型コンポーネントの"com.amazon.category.kepler.media"が含まれていることが必要です。
  • アカウントログインクラスターはoverride_attribute_componentを使用してステータスクエリをヘッドレスサービスコンポーネントにルーティングするため、システムはアプリのUI全体を起動しなくてもログインステータスをクエリできます。
  • メディアコントロールのcommand_optionsフィールドとfeaturesフィールドは、アプリがどのオプションのコマンドと機能をサポートするかを宣言します。アプリの機能に合わせてこれらを調整してください。

2. パッケージ依存関係の追加

サポートしているVegaプラットフォームクラスターのpackage.jsonファイルに次の依存関係を追加します。

3. コンテンツランチャークラスターを実装する

コンテンツランチャークラスターは、Matterコンテンツランチャークラスターに対応しています。これにより、スマートフォンアプリがVegaアプリ内の特定のコンテンツを起動できるようになります。 スマートフォンアプリがMatterコンテンツランチャーコマンドを送信すると、MatterキャストサービスはそれをVegaプラットフォームのコンテンツランチャー呼び出しに変換します。アプリはIContentLauncherHandlerインターフェイス、具体的にはhandleLaunchContentコールバックを通じてこれを受け取ります。 ハンドラーは以下を受け取ります。
  • contentSearch - エンティティタイプ、値、外部IDを含むパラメーターリストなど、ユーザーが視聴または検索したいコンテンツを記述します。
  • autoPlay - trueの場合、コンテンツを直接再生します(クイック再生)。falseの場合、検索結果を表示します。
  • optionalFields - 追加の任意パラメーター。
詳細なリクエスト例やカタログ統合を含むコンテンツランチャー統合ガイドの全文については、以下を参照してください。 MatterキャストのhandleLaunchContent実装のレスポンスコントラクトは次のとおりです。

4. メディアコントロールクラスターの実装

メディアコントロールクラスターはMatterメディア再生クラスターに対応します。これにより、Vegaアプリでのメディア再生(再生、一時停止、停止、シーク、早送り、早戻し、スキップ送り、スキップ戻しなど)をスマートフォンアプリで制御できます。 スマートフォンアプリがMatterメディア再生コマンドを送信すると、MatterキャストサービスはそれをVegaプラットフォームのメディアコントロール呼び出しに変換します。アプリはIMediaControlHandlerAsyncインターフェイスを介してこれを受け取ります。このインターフェイスにはhandlePlay、handlePause、handleStop、handleSeekなどのメソッドが含まれます。 アプリは、現在の再生状態、機能、サポートされている制御などを記述するMediaSessionStateオブジェクトを保持します。再生状態が変化したら、VegaプラットフォームAPIのupdateMediaSessionStates()を通じてアプリから報告します。すると、Matterキャストサービスはこれらの状態更新をMatter属性レポートに変換します。このレポートはスマートフォンアプリがサブスクライブできます。 主要な概念:
  • プロバイダー登録:アプリはそのハンドラーをMediaControlServerComponentAsync.getOrMakeServer()およびsetHandlerForComponent()を使用して登録します。
  • セッション状態:再生ステータス、位置、速度、機能、およびサポートされているアクションを格納したMediaSessionStateオブジェクトを保持します。
  • 複数セッション:メディアコントロールはピクチャーインピクチャーなどの機能のために複数セッションをサポートします。
メディアコントロール統合ガイドの全文については、以下を参照してください。 MediaPlayStateとMediaControlHandlerを実装するには、これらのガイドに従う必要があります。 次に、MediaControlHandlerAsync内に以下を追加して、Matterメディア再生クラスターを追加できます。各ハンドラーはを返します。プロバイダーは、ハンドラー呼び出しのたびに、返されたPromiseを解決するか、または拒否する必要があります。Matterキャストサービスは25秒のコマンドタイムアウトを強制するため、プロバイダーは転送と処理のオーバーヘッドを考慮して20秒以内にPromiseを解決する必要があります。25秒以内に応答がない場合、スマートフォンアプリはタイムアウトエラーを受け取ります。

5. アカウントログインクラスターの実装

アカウントログインクラスターはMatterアカウントログインクラスターに対応します。Matterキャストのコンテキストでは2つの目的を果たします。
  1. コミッショニングパスコードフロー:最初のコミッショニングプロセス中に、プレーヤーはコンテンツアプリでGetSetupPINコマンドを呼び出して、コミッショニングパスコードを取得できます。これにより、プレーヤーはユーザーが手動でコードを入力しなくてもクライアントを稼働させることができます。GetSetupPINコマンドには、クライアントからUDCメッセージで渡されるTempAccountIdentifier引数(ローテーションID)があります。コンテンツアプリは通常、独自のクラウドサービスを使用してこのIDを照合し、パスコードを中継します。
  2. ログインステータスレポート:アプリは、認証ステータス(SIGNED_INまたはSIGNED_OUT)をシステムに報告します。Fire TV UIはこの情報を使用して、適切な視聴オプション(「今すぐ観る」や「登録」など)を表示します。Matterキャスト中もクライアントアクセスを判断するために使用されます。
アカウントログインクラスターは、対話型コンポーネントとは別のヘッドレスサービスコンポーネントとして実装されます。システムは、アプリのUI全体を起動しなくてもログインステータスを照会できます。これには以下が必要です。
  • manifest.tomlで宣言されているサービスコンポーネント。
  • ステータスクエリをサービスにルーティングするためのoverride_attribute_component設定。
  • @amazon-devices/headless-task-managerを使用して登録されるヘッドレスエントリーポイント。
  • 対話型コンポーネントとサービスコンポーネントの間でログイン状態を共有するための永続ストレージ(AsyncStorageなど)。
アカウントログイン統合ガイドの全文は、以下を参照してください。 これらのガイドに従って、AccountLoginWrapperとservice.jsを実装してください。 次に、AccountLoginWrapper内に以下を追加して、Matterアカウントログインクラスターのサポートを追加できます。各ハンドラーはPromise(handleGetSetupPinの場合Promise<string>、handleLoginとhandleLogoutの場合Promise<void>)を返します。プロバイダーは、ハンドラー呼び出しのたびに、返されたPromiseを解決するか、または拒否する必要があります。Matterキャストサービスは25秒のコマンドタイムアウトを強制するため、プロバイダーは転送と処理のオーバーヘッドを考慮して20秒以内にPromiseを解決する必要があります。25秒以内に応答がない場合、スマートフォンアプリはタイムアウトエラーを受け取ります。

6. ターゲットナビゲータークラスターの実装

ターゲットナビゲータークラスターは、Matterターゲットナビゲータークラスターに対応します。さまざまな画面、コンテンツカテゴリ、出力エンドポイントなど、アプリ内の再生ターゲット間を移動するためのインターフェイスを提供します。 アプリは、ターゲットナビゲーションリクエストを受け取るハンドラーを登録します。スマートフォンアプリがMatterターゲットナビゲーターコマンドを送信すると、MatterキャストサービスはそれをVegaプラットフォームのターゲットナビゲーター呼び出しに変換します。ハンドラーは、ナビゲート先のターゲットの識別子を含むStandardTargetIdentifier1オブジェクトを受け取ります。 主要な概念:
  • ターゲット検出:アプリは、固有の識別子や人間が読める名前などのメタデータを含む利用可能なターゲットを公開します。
  • ターゲット選択:ハンドラーはナビゲーションリクエストを処理し、要求されたターゲットに切り替えます。
ターゲットナビゲーター統合ガイドは作成中です。

7. レポート属性の変更

Matterキャストの重要な部分は、スマートフォンアプリがコンテンツアプリの現在の状態について常に通知されることです。コンテンツアプリの状態が変化した場合は、VegaプラットフォームAPIを通じてその変化を報告する必要があります。状態変化の例としては、再生の開始、一時停止、ユーザーのログインなどがあります。Vega Matterキャストサービスは、これらの状態変化を、スマートフォンアプリがサブスクリプションを通じて受け取るMatter属性レポートに内部的に変換します。 各クラスターには、属性変更を報告する独自のメカニズムがあります。 メディアコントロール
アカウントログイン

8. Vegaアプリをオンデマンドでインストール

ユーザーがコンテンツアプリをインストールしていないのにそれに対してキャストしようとすると、システムはアプリのインストールを促すメッセージを表示する必要があります。これは、アプリランチャークラスターを使用してシステムレベルで処理されます。スマートフォンアプリは、起動アプリクラスターペイロードのApplicationID情報にパッケージ名を提供し、簡単にインストールできるようにシステムはこれをVegaアプリストアと照合します。 これはFire TVとまったく同じクライアントの動作です。この機能については、コンテンツアプリから追加で統合する必要はありません。manifest.tomlにあるアプリのパッケージ名が、Vegaアプリストアで公開されているものと一致していることを確認してください。

手順3:プレーヤーを操作する

ビデオプレーヤーのインタラクションには、検出、接続、エンドポイントの選択、コマンドの発行、属性の読み取り、イベントのサブスクライブなどがあります。これらのインタラクションは、MatterキャストSDKを使用してスマートフォンアプリによって処理されます。このインタラクションは、プレーヤーがFire OSとVega OSのどちらを実行していても同じです。 プレーヤーの発見、接続、エンドポイントの選択、スマートフォンからのコンテンツアプリの操作について詳しくは、Fire OS Matterキャスト統合ガイドのステップ3を参照してください。

関連トピック


最終更新日 2026年10月26日