開発者コンソール

Matterキャストの概要

Matterキャストの概要

Matterキャストは、ユーザーがiOSアプリやAndroidアプリから、Fire TV、Echo Show、Matterキャストをサポートするその他のTVにコンテンツをキャストできるようにする機能です。ユーザーは、スマートフォンでコンテンツを閲覧するかコンテンツの視聴を開始し、それを互換性のあるFire TVデバイスやEcho Showデバイスにキャストできます。Matterキャストでは、再生、一時停止、ナビゲーション、早送り、早戻し、音量などのメディアコントロールとデバイスコントロールがサポートされているため、ユーザーはスマートフォンから直接TVの視聴体験を制御できます。Matterキャストは、Fire TVまたはEcho Showデバイスで実行されるアプリとも連携して動作します。Fire TV対応アプリがまだインストールされていない場合、Matterキャストは、Fire TVデバイスまたはEcho Showデバイスへのアプリのインストールを支援できます。

Matterキャストは、Connectivity Standards Alliance(CSA)(英語のみ)によって公開されるMatter標準の一部です。Matterは、スマートホームデバイスは安全で信頼性が高く、シームレスに使用できるべきであるという共通の信念に基づいて構築されています。Matterでは、インターネットプロトコル(IP)を使用して、スマートホームデバイス、スマートフォンアプリ、クラウドサービス間の通信を実現します。Fire TVデバイスとEchoデバイスには、Matter仕様1.3(英語のみ)の定義に従ってMatterキャストが実装されています。

前提条件

  1. AndroidとiOS用の開発環境。ADBにアクセスできることが推奨されます。IDEとシミュレーターがあると理想的です。
  2. Fire TV対応アプリおよびiOS/Androidモバイルアプリのソースコードへのアクセス。
  3. MatterキャストをサポートするFire TVデバイス。これには、Fire OS 7以降を実行するほとんどのデバイスが含まれます。
  4. 参照用にCSAのウェブサイトから最新のMatter仕様をダウンロードしておくこと(英語のみ)。コア、デバイスライブラリ、アプリクラスターの各仕様をダウンロードすることをお勧めします。Matterキャストは、アプリクラスター仕様のメディアに関するセクションで定義されています。

主要な概念と用語

ここでは、コンテンツおよびクライアントアプリでのMatterキャストのサポートに関連する、Matterの主要な概念と用語について説明します。詳細については、Matterの公式ドキュメントを参照してください。追加のオープンソースのサンプルアプリは、MatterのGitHubリポジトリ(英語のみ)で公開されています。公式のMatter仕様は、Connectivity Standards Allianceのページから入手できます。

キャストビデオプレーヤー、クライアント、クラスター

Matterのコンテキストでは、ビデオプレーヤーエンドポイント(キャストビデオプレーヤーまたは基本的なビデオプレーヤー)とは、物理的な出力先またはデバイスに搭載されているディスプレイ画面にメディアを再生できるデバイスを表します。Fire TVデバイスとEcho Showデバイスはキャストビデオプレーヤー(プレーヤー)です。スマートフォンのAndroidアプリまたはiOSアプリは、キャストビデオプレーヤーのキャストクライアント(クライアント)であり、プレーヤー自体の制御(Fire TVの出力音量の変更など)や、プレーヤーで実行されている特定のアプリ(コンテンツアプリ)の制御を行います。このドキュメントでは、スマートフォンアプリをクライアント、Fire TV対応アプリをコンテンツアプリと呼びます。

このドキュメントでよく使用される用語

用語の要約

用語 定義
プレーヤー キャストビデオプレーヤー。
クライアント AndroidアプリまたはiOSアプリ。
コンテンツアプリ Fire TV対応アプリ。
ファブリック 1つのネットワーク内に存在し、同じセキュリティドメインを共有するデバイスまたはアプリ。
コミッショニング クライアントがファブリックに参加するプロセス。
コミッショナー ユーザーがキャスト先として使用するプレーヤー。
コミッショニー ネットワーク上のプレーヤーを検出するクライアント。
User Directed Commissioning(UDC)リクエスト クライアントがプレーヤーに送信するメッセージ。
デバイス認証証明書 (DAC) クライアントのベンダーを特定してクライアントの真正性を確認し、そのクライアントがどのコンテンツアプリにコンテンツをキャストできるかを判断します。
クライアントベンダー クライアントの真正性を確認し、どのコンテンツアプリへのアクセスを許可するかを判断するために、プレーヤーに提供される情報。

それぞれの詳細な説明については、以下を参照してください。

プレーヤーアプリとコンテンツアプリは、クライアントから動作を制御するためのコマンドを提供するクラスターを公開します。アプリがキャスト用にサポートする機能とエクスペリエンスは、これらのクラスターによって定義されます。たとえば、コンテンツアプリでは、D-Padナビゲーション(キーパッド入力クラスター)、再生コントロール(メディア再生)、ユーザーログイン(アカウントログイン)のサポートを定義できます。Fire TVでは、次のビデオプレーヤークラスターとコンテンツアプリクラスターがサポートされています。

クラスター名 ターゲット 説明
オン/オフ ビデオプレーヤー Fire TVをオンまたはオフにします。
アカウントログイン コンテンツアプリ ユーザーのアカウントへのログインを可能にするコマンド。
アプリランチャー コンテンツアプリ ビデオプレーヤーデバイスでアプリまたはアプリのインストールフローを起動するためのインターフェイス。
キーパッド入力 コンテンツアプリ 上、下、選択などのアクションコマンドを使用して、ビデオプレーヤーまたはコンテンツアプリを制御します。
メディア再生 コンテンツアプリ ビデオプレーヤーデバイスでのメディアの再生操作(再生、一時停止など)を制御します。
ターゲットナビゲーター コンテンツアプリ ターゲットセット内でのUXナビゲーションを提供するインターフェイス。

コミッショニングとパスコードの取得

クライアントがプレーヤーおよびそのコンテンツアプリと通信するには、両方が同じネットワークに属していること、かつクライアントがプレーヤーのMatterファブリックに参加することが必要です。Matterにおけるファブリックとは、1つのネットワーク内に存在し、同じセキュリティドメインを共有するデバイスとアプリのグループです。Matterでは、クライアントがファブリックに参加するプロセスをコミッショニングと呼びます。コミッショニングは、ユーザーが初めてプレーヤー(コミッショナー)にキャストするときに1回行われます。

コミッショニング中、クライアント(コミッショニー)はまずDNS-SDを使用してネットワーク上のプレーヤーを検出し、結果として得られたキャストターゲットの一覧をユーザーに提示します。ユーザーがターゲットプレーヤーを選択すると、クライアントはプレーヤーにメッセージを送信してコミッショニングを要求します。このメッセージはUser Directed Commissioning(UDC)リクエストと呼ばれます。このメッセージには、クライアントに関する情報、クライアントのコミッショニング方法(パスコード入力ダイアログを表示するかどうかとその表示方法)に関する情報、キャスト先のコンテンツアプリに関する情報を含めることができます。プレーヤーは、UDCリクエスト内の情報に対応するコンテンツアプリがあるかどうかを確認し、コミッショニングセッション用のパスコードと識別子の取得を試みます。このパスコードは、コンテンツアプリから提供される場合もあれば、ユーザーが入力する場合もあります。パスコードとは、プレーヤーとクライアント間の安全な接続を確立するために必要な8桁の数字コードです。プレーヤーとクライアント間でパスコードを使用して安全な接続が確立されると、プレーヤーとクライアントは、クライアントをプレーヤーのMatterファブリックにコミッショニングするための一連のメッセージを交換します。このメッセージ交換プロセスには、クライアントのデバイス認証証明書(DAC)を提供する製品証明が含まれます。DACにより、プレーヤーはクライアントの真正性を確認(クライアントのベンダーを特定)し、その情報を使用して、クライアントがコンテンツをキャストできるコンテンツアプリ(該当するベンダーにアクセスを許可しているコンテンツアプリ)を判断できます。

Fire TVでは、パスコードを取得する方法が2つサポートされています。

方法1: クライアントへの手動入力(推奨)

クライアントが初めてプレーヤーに接続するとき、対応するコンテンツアプリがアカウントログインクラスターをサポートしていない場合や、GetSetupPINコマンドからパスコードが返されない場合は、ユーザーが手動でクライアントにパスコードを入力する必要があります。このシナリオでは、プレーヤー(Fire TV)が4~6桁のパスコードを生成して表示し、そのパスコードをクライアントに入力するようにユーザーに指示します。ユーザーがクライアントにパスコードを入力すると、クライアントはコミッショニングの準備が整ったことを示すUDCメッセージをプレーヤーに送信します。プレーヤーは、これに応じてファブリックへのクライアントのコミッショニングを実行します。この手動でクライアントに入力する方法は、コンテンツアプリがプレーヤーにインストールされているかどうかに関係なく機能します。

方法2: コンテンツアプリの使用

クライアントが初めてプレーヤーに接続するとき、プレーヤーはUDCメッセージで提供された情報を使用して、クライアントに対応するコンテンツアプリを特定します。次に、プレーヤーはstatic_matter_clusterファイルを読み取って、特定されたコンテンツアプリがアカウントログインクラスターを実装しているかどうかを確認し、コンテンツアプリを使用してパスコードの取得を試みます。アカウントログインクラスターは、コミッショニングのためのプレーヤーとコンテンツアプリ間の通信に使用されます。プレーヤーは、コンテンツアプリのGetSetupPINコマンドを呼び出してコミッショニングパスコードをリクエストします。また、クライアントからのアクセスがコンテンツアプリに追加されるときと削除されるときに、ログインコマンドとログアウトコマンドを呼び出します。GetSetupPINコマンドには、クライアントからUDCメッセージで渡されたトークン(ローテーションID)を受け取るTempAccountIdentifier引数があります。コンテンツアプリは通常、独自のクラウドサービスを使用して、クライアントからUDCコマンド経由で渡されたTempAccountIdentifier値と照合することでパスコードを取得します。この場合、クライアントは、クライアントのパスコードおよび同じTempAccountIdentifier値をクラウドサービスに直接アップロードして、クラウドサービスがパスコードをコンテンツアプリに中継できるようにします。コンテンツアプリを使用する方法でパスコードを取得すると、プレーヤーは、ユーザーによるコードの手動入力を必要とせずにクライアントのコミッションを実行できます。

アプリの証明

Matterキャストでは、クライアントからプレーヤーに証明情報を提供する必要があります。この証明情報により、プレーヤーでクライアントの真正性を確認し、どのコンテンツアプリへのアクセスを許可するかを判断することが可能になります。各コンテンツアプリのAndroidマニフェストファイルには、アクセスを許可するクライアントを指定する情報が含まれています。プレーヤーはこの情報を使用して、コンテンツアプリと1つ以上のクライアントとの対応付けを行います。Matterにおける認証は、デバイスまたは製品の認証証明書(DAC)と認定宣言(CD)を使用して行われます。詳細については、デバイス認証証明書と認定宣言を参照してください。

関連リソース

  • iOSおよびAndroid用のクライアントSDKは、MatterのGitHubリポジトリ(英語のみ)にあるコードを使用してソースからビルドできます。
  • プレーヤーで動作するサンプルコンテンツアプリのソースコードは、MatterのGitHubリポジトリのcontent-appで公開されています。

Last updated: 2025年3月4日