Matterキャストの概要
Matterキャストを使用すると、ユーザーはiOSまたはAndroidのスマートフォンでコンテンツを開始し、Fire TVやEcho Showにキャストしたり、スマートフォンから再生を制御したりできます。アプリで独自のキャストプロトコルを使用する必要はありません。
この概要では、MatterキャストをFire TV対応アプリとモバイルアプリに統合する前に理解しておく必要のある重要な概念と用語を紹介します。これらの概念を理解したら、Matterキャストの統合ガイドに進み、手順に従ってコードを実装できます。
Matterキャストの機能
MatterキャストをFire TV対応アプリとモバイルアプリに統合すると、数多くのメリットがもたらされます。
- 再生、一時停止、ナビゲーション、早送り、早戻し、音量などのメディアコントロールとデバイスコントロールがサポートされ、ユーザーはスマートフォンから直接TVの視聴体験を制御できます。
- Fire TVデバイスやEcho Showデバイスで実行されるアプリと連携して動作します。
- ユーザーは、スマートフォンでコンテンツを閲覧するかコンテンツの視聴を開始し、それを互換性のあるFire TVデバイスやEcho Showデバイスにキャストできます。
- Fire TV対応アプリがまだインストールされていない場合は、Fire TVデバイスやEcho Showデバイスへのアプリのインストールを支援できます。
前提条件
MatterキャストをFire TV対応アプリとモバイルアプリに統合する前に、以下の準備が必要です。
- AndroidまたはiOS用の開発環境。Android Debug Bridge(ADB)へのアクセス、IDE、シミュレーターも用意することをお勧めします。
- Fire TV対応アプリとiOSまたはAndroid用モバイルアプリのソースコードへのアクセス。
- MatterキャストをサポートするFire TVデバイス。これには、Fire OS 7以降を実行するほとんどのデバイスが含まれます。
- CSAのウェブサイトで公開されている最新のMatter仕様の参照。コア、デバイスライブラリ、アプリクラスターの各仕様をダウンロードすることをお勧めします。Matterキャストは、アプリクラスター仕様のメディアに関するセクションで定義されています。
主要な概念と用語
以下のセクションでは、Matterキャストを統合する前に知っておく必要のある中核的な概念と用語を紹介します。キャスト操作における主要な役割(プレーヤー、クライアント、コンテンツアプリ)、このドキュメント全体で使用される重要な用語をまとめた用語表、クライアントがプレーヤーまたはコンテンツアプリを制御するために使用するコマンドを公開するクラスターについて説明しています。
詳細については、次のリソースを参照してください。
- Connectivity Standards Alliance(CSA)ウェブサイトで公開されているMatter公式ドキュメント。
- MatterのGitHubリポジトリ(英語のみ)にある追加のオープンソースのサンプルアプリ。
- Matter 1.5仕様の公式のプロトコル定義。
役割:プレーヤー、クライアント、コンテンツアプリ
Matterキャストでの役割とは、各デバイスまたはアプリがキャスト操作で果たす目的を表します。このドキュメントでは、キャスト操作に関与するデバイスとアプリを次のように呼びます。
-
プレーヤー: Fire TVデバイスとEcho Showデバイスはキャストビデオプレーヤーです。プレーヤーは、メディアを物理的な出力先または内蔵ディスプレイ画面にレンダリングします。
-
クライアント: AndroidまたはiOS用のモバイルアプリです。クライアントはネットワーク上のプレーヤーを検出し、キャストを開始し、再生を制御します。
-
コンテンツアプリ: Fire TV対応アプリです。コンテンツアプリはプレーヤー上で実行され、クライアントからコマンドを受け取ります。
クライアントは、プレーヤー自体を制御するか(Fire TVの出力音量を変更するなど)、プレーヤー上で実行されている特定のコンテンツアプリを制御します。
用語の要約
次の表は、上記の役割に加えて、このドキュメント全体で使用される重要な用語をまとめたものです。
| 用語 | 定義 |
|---|---|
| プレーヤー | キャストビデオプレーヤー。 |
| クライアント | AndroidアプリまたはiOSアプリ。 |
| コンテンツアプリ | Fire TV対応アプリ。 |
| ファブリック | 1つのネットワーク内に存在し、同じセキュリティドメインを共有するデバイスまたはアプリ。 |
| コミッショニング | クライアントがファブリックに参加するプロセス。 |
| コミッショナー | ユーザーがキャスト先として使用するプレーヤー。 |
| コミッショニー | ネットワーク上のプレーヤーを検出するクライアント。 |
| User Directed Commissioning(UDC)リクエスト | クライアントがプレーヤーに送信するメッセージ。 |
| デバイス認証証明書 (DAC) | クライアントのベンダーを特定してクライアントの真正性を確認し、そのクライアントがどのコンテンツアプリにコンテンツをキャストできるかを判断します。 |
| クライアントベンダー | クライアントの真正性を確認し、どのコンテンツアプリへのアクセスを許可する必要があるかを判断するために、プレーヤーに提供される情報。 |
クラスター
Matterでは、プレーヤーまたはコンテンツアプリが公開する関連性のある機能がクラスターとしてグループ化され、クライアントで動作を制御するために使用されます。各クラスターは、キャストでサポートできる機能またはエクスペリエンスを定義します。たとえば、コンテンツアプリでは、D-padナビゲーション(キーパッド入力クラスター)、再生コントロール(メディア再生クラスター)、ユーザーログイン(アカウントログインクラスター)のサポートを定義できます。
Fire TVでは、次のビデオプレーヤークラスターとコンテンツアプリクラスターがサポートされています。
| クラスター名 | ターゲット | 説明 |
|---|---|---|
| オン/オフ | ビデオプレーヤー | Fire TVをオンまたはオフにします。 |
| アカウントログイン | コンテンツアプリ | ユーザーのアカウントへのログインを可能にするコマンドです。 |
| アプリランチャー | コンテンツアプリ | ビデオプレーヤーデバイスでアプリまたはアプリのインストールフローを起動するためのインターフェイスです。 |
| キーパッド入力 | コンテンツアプリ | 上、下、選択などのアクションコマンドを使用して、ビデオプレーヤーまたはコンテンツアプリを制御します。 |
| メディア再生 | コンテンツアプリ | ビデオプレーヤーデバイスでのメディアの再生操作(再生、一時停止など)を制御します。 |
| ターゲットナビゲーター | コンテンツアプリ | ターゲットセット内でのUXナビゲーションを提供するインターフェイスです。 |
| コンテンツランチャー | コンテンツアプリ | ビデオプレーヤーデバイスでコンテンツアプリ内の特定のコンテンツを起動します。 |
コミッショニング
コミッショニングとは、クライアントをプレーヤーに安全に接続して通信できるようにするプロセスです。Matterでは、コミッショニング対象のデバイス間で共有されるネットワークをファブリックと呼びます。これは、同じセキュリティドメインを共有するデバイスのセットです。コミッショニングは、ユーザーが初めてプレーヤーにキャストするときに一度だけ行われます。このプロセスでは、プレーヤーがコミッショナーで、クライアントがコミッショニーになります。
コミッショニングは、ネットワーク上のプレーヤーの検出からプレーヤーのファブリックへのクライアントの追加まで、次の手順で行われます。
- デバイスの検出。クライアント(コミッショニー)は、DNSベースのサービス検出(DNS-SD)を使用してネットワーク上のプレーヤーを検出し、結果として得られたキャストターゲットの一覧をユーザーに提示します。
- ターゲットプレーヤーの選択。ユーザーがターゲットプレーヤーを選択すると、クライアントはそのプレーヤーにメッセージを送信してコミッショニングを要求します。このメッセージはUDCリクエストと呼ばれます。これには、クライアントに関する情報、クライアントのコミッショニング方法(パスコード入力ダイアログを表示するかどうかとその表示方法)、キャスト先のコンテンツアプリを含めることができます。
- パスコードの交換。プレーヤーは、UDCリクエストの情報に対応するコンテンツアプリがあるかどうかを確認し、コミッショニングプロセスに必要なパスコードと識別子の取得を試みます。これらはコンテンツアプリで提供するか、そうでない場合はユーザーが入力できます。パスコードとは、プレーヤーとクライアント間の安全な接続を確立するために必要な8桁の数字コードです。
- 安全な接続とコミッショニング。プレーヤーとクライアント間でパスコードを使用して安全な接続が確立されると、プレーヤーとクライアントは、クライアントをプレーヤーのMatterファブリックにコミッショニングするための運用証明書を交換します。この交換中にクライアントがDACを提供します。プレーヤーはDACを使用して、クライアントの真正性を確認(クライアントのベンダーを特定)し、そのクライアントがどのコンテンツアプリにキャストできるかを判断します。
コミッショニングが完了すると、クライアントとプレーヤーはCASE(Certificate Authenticated Session Establishment)セッションを確立します。クライアントはこの接続情報をキャッシュするため、以降のセッションでは、同じコミッショニングプロセスを繰り返すことなく直接CASEセッションを再確立できます。
Fire TVでは、手順3でパスコードを取得するために2つの方法がサポートされています。どちらの実装を選択するかは、パスコードをルーティングするクラウドサービスを構築するかどうかによって異なります。
方法1: クライアントへのパスコードの手動入力(推奨)
クライアントが初めてプレーヤーに接続するとき、対応するコンテンツアプリがアカウントログインクラスターをサポートしていない場合や、GetSetupPINコマンドからパスコードが返されない場合(TempAccountIdentifierの不一致やクラウドルックアップの失敗が原因の場合など)は、ユーザーが手動でクライアントにパスコードを入力する必要があります。
このシナリオのフローは、次の3つのフェーズに従います。
- フェーズ1:検出とリクエスト: クライアントがDNS-SDを通じてプレーヤーを検出し、接続できることを示すUDCリクエストを送信します。
- フェーズ2:手動でのPINのルーティング: プレーヤーが8桁のパスコードを生成し、画面に表示します。ユーザーは、このパスコードを手動でクライアントに入力します。
- フェーズ3:認証: クライアントがパスコードと自身のDACをプレーヤーに提供します。プレーヤーはパスコードとDACを検証し、クライアントをファブリックに正常に追加します。
方法2: コンテンツアプリの使用
クライアントが初めてプレーヤーに接続するとき、プレーヤーは、対応するコンテンツアプリをUDCメッセージから特定します。次に、そのアプリのstatic_matter_clusterファイルを読み取って、アプリがアカウントログインクラスターを実装しているかどうかを確認します。クラスターがある場合は、コンテンツアプリを使用してパスコードを取得することで、ユーザーによる手動入力を必要とせずにプレーヤーがクライアントのコミッションを実行できます。
このシナリオのフローは、次の3つのフェーズに従います。
- フェーズ1:検出とリクエスト: クライアントが開発者のクラウドサービスにパスコードと
TempAccountIdentifier(ローテーションIDトークン)をアップロードし、DNS-SDを通じてプレーヤーを検出して、同じTempAccountIdentifierを含むUDCリクエストを送信します。 - フェーズ2:バックグラウンドでのPINのルーティング: プレーヤーがコンテンツアプリの
GetSetupPINコマンドを呼び出して、TempAccountIdentifierを渡します。コンテンツアプリは、一致するパスコードをクラウドサービスから取得してプレーヤーに返します。ユーザーによるセットアップPINの物理的な入力は必要ありません。 - フェーズ3:認証: クライアントがパスコードと自身のDACをプレーヤーに提供します。プレーヤーはパスコードとDACを検証し、クライアントをファブリックに追加します。
GetSetupPINのほかに、プレーヤーはクラスターのloginコマンドとlogoutコマンドを呼び出して、クライアントのアクセスが追加または削除されたときに通知します。方法2では、アカウントログインクラスターと、パスコードを中継できるクラウドサービスをコンテンツアプリに実装する必要があります。コンテンツアプリでパスコードを返すことができない場合、プレーヤーは方法1にフォールバックします。アプリの証明
Matterキャストでは、コミッショニングプロセス中にクライアントからプレーヤーに証明情報を提供する必要があります。この証明情報により、プレーヤーでクライアントの真正性を確認し、どのコンテンツアプリへのアクセスを許可する必要があるかを判断することが可能になります。各コンテンツアプリのAndroidマニフェストファイルには、アクセスを許可するクライアントを指定する情報が含まれています。プレーヤーはこの情報を使用して、コンテンツアプリと1つ以上のクライアントとの対応付けを行います。Matterにおける証明は、DACと認定宣言(CD)を使用して行われます。証明手順とDACの詳細については、アプリの証明を参照してください。
関連リソース
- iOSおよびAndroid用のクライアントSDKは、MatterのGitHubリポジトリ(英語のみ)にあるコードを使用してソースからビルドできます。
- プレーヤー上で実行されるサンプルコンテンツアプリのソースコードは、MatterのGitHubリポジトリのcontent-app(英語のみ)で公開されています。
関連トピック
Last updated: 2026年7月15日

