开发者控制台

Matter投屏概述

Matter投屏概述

Matter投屏使客户能够将来自iOS和Android应用的内容投射到Fire TV、Echo Show和其他支持Matter投屏的电视上。客户可以在手机上浏览内容或开始观看内容,然后将其投射到兼容的Fire TV设备或Echo Show设备上。Matter投屏支持媒体和设备控件,例如播放、暂停、导航、快进、快退和音量,让客户可以直接通过手机控制电视上的观看体验。Matter投屏还适用于在Fire TV或Echo Show设备上运行的应用。如果您的Fire TV应用尚未安装,Matter投屏可以协助在Fire TV或Echo Show设备上安装您的应用。

Matter投屏是连接标准联盟 (CSA) 发布的Matter标准的一部分。它围绕着一个共同的信念构建而成,即智能家居设备应该安全、可靠且使用流畅。通过使用互联网协议 (IP),Matter支持智能家居设备、手机应用和云服务之间的通信。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规范可参见连接标准联盟页面。

投屏视频播放器、客户端和集群

就Matter而言,视频播放器终端节点(投屏视频播放器或基本视频播放器)代表一种设备,这种设备能够在物理输出端上播放媒体或在作为设备一部分的显示屏幕上播放媒体。Fire TV和Echo Show设备属于投屏视频播放器(播放器)。您的手机Android或iOS应用是投屏视频播放器的投屏客户端(客户端),可以控制播放器本身(例如更改Fire TV的输出音量)或播放器上运行的特定应用(内容应用)。就本文档而言,我们将您的手机应用称为客户端,将您的Fire TV应用称为内容应用。

本文档中常用的术语

术语汇总

期限 定义
播放器 (Player) 投屏视频播放器
客户端 (Client) Android或iOS应用
内容应用 (Content app) Fire TV应用
结构 (Fabric) 网络中共享同一安全域的设备或应用
配网 (Commissioning) 客户端加入网络结构的过程
配网者 (Commissioner) 客户用来投屏的播放器
受配网者 (Commissionee) 在网络上发现播放器的客户端
用户直接配网 (UDC) 请求 (User Directed Commissioning request) 客户端发送给播放器的消息
设备认证证书 (DAC) (Device Attestation Certificate) 通过确定客户端供应商来验证客户端的身份,并确定客户端有权向哪些内容应用投射内容。
客户供应商 (Client vendor) 为播放器提供的信息,用于验证客户端的身份并确定应向哪些内容应用授予访问权限。

有关各项术语的更详尽描述,请参见下文。

播放器和内容应用可以公开集群,这些集群提供命令以控制来自客户端的行为。这些集群定义了您希望支持哪些投屏功能和体验。例如,您的内容应用可以定义对方向键导航(键盘输入集群)、播放控件(媒体播放)或用户登录(账户登录)的支持。Fire TV支持以下视频播放器和内容应用集群。

集群名称 目标 描述
开启/关闭 视频播放器 打开或关闭Fire TV
账户登录 内容应用 使用户能够登录其账户的命令
应用启动器 内容应用 用于在视频播放器设备上启动应用或应用安装流程的界面
键盘输入 内容应用 使用向上、向下和选择等操作命令控制视频播放器或内容应用。
媒体播放 内容应用 控制视频播放器设备上的媒体播放(播放、暂停等)。
目标导航器 内容应用 用于在一组目标内进行用户体验导航的界面。

进行配网并获取密码

在客户端与播放器及其内容应用通信之前,两者都必须属于同一个网络,并且客户端必须加入播放器的Matter结构。在Matter中,结构是指网络中共享同一安全域的一组设备或应用。在Matter中,客户端加入网络结构的过程称为配网。当客户首次向播放器(配网者)投射时,将进行一次配网。

在配网过程中,客户端(受配网者)首先使用DNS-SD在网络上发现播放器,并将所获投屏目标清单呈现给用户。用户选择目标播放器后,客户端会向播放器发送消息以请求配网。此消息称为用户直接配网 (UDC) 请求。此消息可能包含有关客户端的信息、有关其希望如何接受配网的信息(是否以及如何显示密码输入对话框),以及有关其想要投射到的内容应用的信息。然后,播放器检查其是否有与UDC请求中的信息相对应的内容应用,尝试获取配网会话的密码和鉴别器,该密码和鉴别器可以由内容应用提供,也可以由用户输入。密码是播放器和客户端之间建立安全连接所需的8位数字代码。一旦播放器和客户端使用密码建立了安全连接,播放器和客户端就会交换一系列消息,将客户端添加到播放器的Matter结构上。此消息交换过程中包含产品认证,在认证过程中由客户端提供其设备认证证书 (DAC)。DAC允许播放器验证客户端的身份(确定客户端的供应商),并使用它来确定客户端有权向哪些内容应用投射内容(哪些内容应用已向给定供应商授予访问权限)。

Fire TV支持两种获取密码的方法。

方法1: 手动进入客户端(推荐)

当客户端首次连接到播放器时,如果相应的内容应用不支持账户登录集群,或者GetSetupPIN命令未返回密码,则用户需要在客户端中手动输入密码。在这种情况下,播放器 (Fire TV) 将生成并显示一个4-6位数的密码并将其显示出来,指示用户在客户端中输入密码。用户在客户端中输入密码后,客户端将向播放器发送一条UDC消息,表明它已准备好进行配网。然后,播放器将使客户端加入到其结构中。无论内容应用是否安装在播放器上,这种手动进入客户端的方法都有效。

方法2: 通过内容应用

当客户端首次连接到播放器时,播放器使用UDC消息中提供的信息识别与客户端对应的内容应用。然后,播放器将通过读取static_matter_cluster文件来检查已识别的内容应用是否实现了账户登录集群,并尝试使用它来获取密码。账户登录集群用于播放器和内容应用之间的通信以进行配网。播放器在内容应用上调用GetSetupPIN命令来请求配网密码,并调用登录和注销命令以指示何时在内容应用中添加或删除客户端中的访问权限。GetSetupPIN命令包含一个TempAccountIdentifier参数,该参数是UDC消息中从客户端传递的令牌(轮换ID)。内容应用通常使用自己的云服务通过匹配客户端通过UDC命令传递的TempAccountIdentifier值来获取密码。在这种情况下,客户端直接将其密码和相同的TempAccountIdentifier值上传到云服务,以便云服务可以将密码传递到内容应用。如果使用内容应用方法获取密码,则可允许播放器配网客户端,而无需用户手动输入任何代码。

应用认证

Matter投屏要求客户端向播放器提供认证信息。该认证信息使播放器可以验证客户端身份并确定应向哪些内容应用授予访问权限。每个内容应用都在其Android清单文件中包含信息,该清单文件指定了将被授予访问权限的客户端。播放器使用此信息将内容应用与一个或多个客户端匹配。Matter中的认证使用设备或产品认证证书 (DAC) 和认证声明 (CD) 来完成。有关更多详细信息,请参阅设备认证证书和认证声明

其他资源

  • 适用于iOS和Android的客户端SDK可以使用Matter的Github存储库中的代码从源代码进行构建。
  • 在播放器上运行的示例内容应用的源代码可以参见Matter的Github存储库的content-app

Last updated: 2025年3月4日