音频设备的 Google Cast 仅支持音频播放。本指南介绍了 如何针对纯音频设备优化 Cast 应用,以及如何充分利用 减少对内存、CPU 和网络带宽利用率的需求。
支持 Google Cast 音频版的应用必须将以下内容: 考虑因素:
- 适用于音频设备的 Google Cast 无法显示视频或图形。不过, 许多音频设备都有显示屏来显示元数据,例如 状态(正在播放或已暂停)和进度。您的应用不得显示 此类关键用户信息仅在接收者上显示;关键信息 和大部分界面内容,都必须在发件人上显示。
- 为了能够正常运行网络接收器应用,适用于音频设备的 Google Cast 即使图形并未显示,也必须渲染图形。开始时间 设备可能不支持硬件加速的图形操作, 接收器应用应避免使用图形密集型操作 例如颜色渐变、旋转、透明度混合和大尺寸重新绘制 对象(例如进度条)每秒超过 1 次。
- 适用于音频设备的 Google Cast 仅支持适用于数字版权的 Widevine 受管理 (DRM) 保护的内容。
- 对于大多数适用于音频设备的 Google Cast 设备来说,发送器应用可控制 设备(例如扬声器)的完整音量范围,而不仅仅是 音频源输入到电视的音量大小,就像使用 Chromecast 设备时一样。
- 除了通过发送设备(手机、 则应用可能必须提供使用 设备自带的控制器(例如遥控器、设备上的按钮或 外部远程应用
- 音频设备的 Google Cast 可能支持显示内容元数据 小型 LCD 屏幕、HDMI 输出(适用于条形音箱或音视频)。 接收器)或外部远程应用,具体取决于具体的 设备界面。
开发
开发 Cast 应用以支持 Google Cast 音频版应用的第一步 开发适用于音频和视频的 Cast 应用,并确保它可以在 Chromecast。本文档假定您已开发并测试了此类应用。
应用可能既支持音视频设备,也支持纯音频设备。它需要知道 并采取措施确保 用户体验。
例如,双视频和音频应用(如本地/NAS 文件播放) 应用)应启用投屏到纯音频设备,以便支持 播放音频文件,但应用不应允许用户发送视频文件 发送到纯音频设备。应用可以使用 针对发送者的设备功能 API 来确定适合该设备的内容。
要支持将 Google Cast 用于音频,您的应用必须执行以下操作:
支持纯音频:流式音乐和音频文件、电台等。媒体 流式传输到 Web Receiver 应用的视频流不得为视频流。此外,请避免 流式传输图形和图像,以缩短应用启动时间 和内存用量请参阅下面的内存使用准则。
在适用于音频设备和常规 Chromecast 的 Cast 上按预期运行。
设备功能
您的应用可以根据 设备功能 API(可从设备本身或通过发送设备获取) 即接收器 API。
设备 HTTP 标头
投射设备在运行期间提供的 CAST-DEVICE-CAPABILITIES
HTTP 标头
应用启动说明了设备功能。设备发送请求
将此标头发送到托管 Web Receiver 应用的服务器。标头
纯音频设备描述的是
CAST-DEVICE-CAPABILITIES: {"display_supported":false}
。
当您的服务器收到来自设备的请求时,您可以使用 此信息,以便将请求重定向到 Web Receiver 应用, 针对音频设备进行了优化。
Web Receiver API
您可以通过调用 CastReceiverManager.getDeviceCapabilities()
获取相同的设备功能对象
当 Web Receiver 应用加载时。
如需了解详情,请参阅设备功能 信息。
发件人 API
每个 Cast 发送器 API 还包含设备功能信息。 通过这些设置,发送方应用可确定向接收方发送哪种类型的媒体。 如果您的应用同时支持音频和视频,则可避免将视频内容发送到 纯音频设备。此外,您的应用可以使用 设计核对清单中所述,适用于设备。 请参阅以下针对发送器的设备功能 API:
- Android:CastDevice.hasCapabilities
- iOS:deviceCapabilities
- Chrome:chrome.cast.Capability
内存使用准则
在音频设备上运行的 Web 接收器应用必须按照以下要求管理内存用量:
- 避免下载或使用任何图片或图形资源,以减少内存 并缩短开始播放前的时间。
- 使用 Media Source Extensions (MSE) 时,应用必须对串流进行限制 缓冲到 2MB。如果使用媒体播放器库 (MPL),应用的 视频流缓冲区空间已由 MPL 定义。
- 使用 HTMLMediaElement 时,应用的流缓冲区大小需定义 由 Chrome 根据视频流速率计算。将音频比特率限制为 2 MB 第二,此方法支持 支持的媒体(最高 48KHz/16 位)。
音量控制
对于大多数适用于音频设备的 Google Cast 设备来说,发送设备应用会控制 设备的整体音量范围,而不仅仅是音频源输入音量。 Chromecast 设备。也就是说,必须确保 音频广告。请参阅以下文档,了解有关提供 音量控制:
设备控制器
适用于音频设备的 Google Cast 可能会自带播放控件(例如
按钮、遥控器)。这些消息使用针对
urn:x-cast:com.google.cast.media
命名空间,如
媒体播放消息,用于控制播放
接收器应用。您的接收器应用必须支持
这些媒体播放消息以支持设备的播放控件。
此外,您的发送者应用应支持接收者向发送者发送消息 这样一来,如果用户使用设备控制器更改媒体状态, 发送者应用可以从接收者接收状态消息,并更新界面 。
设备显示
Google Cast 音频设备可能配有 LCD 屏幕或 显示媒体元数据的设备专属控制应用。您的接收方 应用必须为所有音轨提供此元数据并确保其保持同步 与当前播放的内容相关联,以确保元数据在 显示适当的内容如果应用使用自定义元数据, 还必须提供标准的音频元数据(曲目名称、音乐人姓名、专辑) 标题等)。
接收方在加载媒体时从发送方获取元数据。在 您的发送器应用,以及使用在接收设备上加载媒体的命令,您必须 指定下述字段,以便在 适用于音频设备的 Google Cast。使用以下 API:
Android
MediaMetadata
使用MEDIA_TYPE_MUSIC_TRACK
和:iOS
GCKMediaMetadata
与GCKMediaMetadataType
共享GCKMediaMetadataTypeMusicTrack
和:带有
MusicTrackMediaMetadata
的 ChromeMediaInfo
和:
如果 Cast 应用管理接收器或云端的媒体队列,
Web 接收器必须使用
urn:x-cast:com.google.cast.media
命名空间,这样所有发件人都会
已同步。
注册
您必须为音频设备注册 Google Cast,才能进行测试和注册 支持适用于音频设备的 Google Cast,方法是使用 Google Cast SDK 开发者控制台。
对于未发布的应用(例如用于测试的应用),您还必须选择 选项支持纯音频设备,以便应用发现 纯音频设备。
Google Cast 音频版 2.0
Google Cast for Audio (GC4A) 2.0 是新一代的 Cast 音频平台 旨在定位低内存设备,扩展 可以流式传输您的内容。由于 GC4A 2.0 针对的是音频平台,因此 Web API 以便与无屏设备保持一致GC4A 2.0 面向新的 以及支持 Cast 的现有音响设备。
测试和调试
由于所有受支持的音箱都将转换为 GC4A 2.0,因此请务必 音频应用开发者在 GC4A 2.0 上测试其应用。您可以测试 正式版 Bose Wi-Fi 音箱上的 GC4A 2.0,JBL Charge 5 Wi-Fi、JBL Authentics、Cambridge Audio、Teuful Motiv Home、LG 2024 条形音箱。
GC4A 2.0 不支持 Chrome 远程调试程序。如果您想调试 应用,Google 建议您使用 Cast Debug Logger。
推荐的基本测试用例
建议在 GC4A 2.0 上对所有应用功能进行测试。请确保包含 测试播放所有媒体类型(播客、视频流等)、暂停、拖动、 跳过、更改播放列表、停止投射并重新连接。
支持的 API
GC4A 2.0 支持以下 API:
- HTML
- JavaScript ECMA 6
- DOMParser
- XMLSerializer
- 文档和子类
- DocumentFragment
- HTMLMediaElement 和HTMLAudioElement
- HTMLVideoElement(只能播放音频内容)
- HTMLScriptElement
- HTMLBaseElement
- HTMLTemplateElement
- 自定义元素
- 阴影 DOM
- 脚本模块 / 异步 / 延迟
- 提取 / XHR
- WebSocket
- MessagePort
- Cookie
- MSE(媒体来源扩展)
- EME(加密媒体扩展)
- 本地 / 会话存储
GC4A 2.0 不支持:
- 动态模块导入(将于 2024 年添加)
- CSS
- IFrame
- TextTracks
联系信息
请联系 gc4a-support-external@google.com(如果 您需要有关设置测试的帮助,或者无法使用 Bose 扬声器。