将内容投放到网络接收器时,用户必须始终能够通过发送者应用控制内容。
注意:根据 Google Cast SDK 附加开发者服务条款,Cast 媒体应用必须使用为 SDK 定义的 Play 控制 API(媒体播放消息)来控制网络接收器上的媒体播放。
发送器应用应在以下几个方面提供 Cast 控件:
发送者应用的这些区域内的 Cast 播放状态和控件必须与网络接收器上发生的播放更改同步,即使并非由发送者应用发出也是如此。这样,就可以正确处理来自多个发送者的命令以及来自设备的遥控器、按钮等的播放控件。
Android
投放对话框控件

迷你控制器

通知控件

锁定屏幕控件

iOS
投放对话框控件

迷你控制器

Chrome
投放对话框控件

迷你控制器

发件人音量控制
发送方应用必须允许用户使用发送设备上的硬件音量按钮和/或软件音量滑块来控制电视或音响设备播放的内容音量。这些控件可以控制以下任一项:
- 发送到 Google Cast 设备(如 Chromecast)的音频音量。
- 适用于 Google Cast TV、内置 Android TV 的电视和智能音箱的实际原生电视/音响设备音量。
必需
A 发送器应用必须允许用户使用发送设备上的硬件音量按钮和/或软件音量滑块来控制电视或音响设备上播放的内容音量。
- Android:必须同时支持硬件按钮和软件音量滑块。
- iOS:必须提供软件音量滑块。
- Web/Chrome:必须支持软件音量滑块。
B 在移动设备上,在投放期间,软件对话框中必须有软件音量滑块。
C 发送器应用中的音量滑块必须在连接到 Web 接收器后与当前的 Web 接收器音量同步,并保持同步。
D 发送者应用中的音量滑块必须反映其他发送者或 Chromecast 应用遥控器的音量变化。
E 发送者应用绝不应将音量设置为预定义的级别,而只应传递用户发起的音量更改。
F 仅限 Android:使用硬件按钮更改网络接收器上的音量时,按下硬件音量按钮时,必须显示一个视觉音量滑块(左侧有“投放”图标)。注意:对于 Android Gingerbread(版本 2.3),“投射”图标不会显示。
最佳做法
- 音量增量:
- Android:框架会自动调高音量。
- iOS 和 Chrome:对于硬件音量按钮,对于音频/视频设备,请使用小于或等于网络接收器设备完整音量范围的 5% 的增量;对于纯音频设备,请使用不超过网络接收器设备完整音量范围的 2% 的增量。
展开的控制器
发送器应用必须为所投放的内容提供展开的控制器。
必需参数
A 通过显示内容标题或海报图片来标识正在投放的内容。
B 在开始播放之前,显示加载指示器以及内容标题或图片。
C 当内容开始时,确定 Web 接收器的状态。
D 提供相关控件。
E 在拖动条的左端,显示当前播放时间。
在右侧显示视频流的总时长(如果已知并且不是直播视频)。
F 隐藏与投射无关的控件。
G 当用户离开展开后的控制器时,请勿断开连接或停止投射。
H 让用户在离开导航页面时轻松返回展开的控制器。
最佳做法
- 为媒体流提供播放位置滑块。
- 显示其他与内容相关的有意义艺术作品和元数据。
- 识别媒体流所用的时间和内容时长。
Android
正在加载发送者内容

接收器内容加载

正在播放发送者内容

网络接收器正在播放内容

iOS
正在加载发送者内容

网络接收器内容加载

正在播放发送者内容

网络接收器正在播放内容

Chrome
正在加载发送者内容

网络接收器内容加载

正在播放发送者内容

网络接收器正在播放内容

发送者迷你控制器
投射期间,当用户离开当前内容页面或展开的控制器并进入发送者应用中的另一个视图时,应会看到一个小小的常驻控件。迷你控制器是一个对当前投射的可见提醒,可让用户即时访问该控件。
必需参数
A 在发送者应用底部附近显示显示投放内容的栏或框。当用户浏览应用中的其他内容或部分时,这些控件会持续存在。
B 这些控件简单易用,可以传达正在投放的内容。
C 适用于应用的所有屏幕(展开的控制器页面除外)。
D 点按内容区域即可打开展开的控制器。
E 提供与立即采取措施相关的任何其他控制措施。
最佳做法
为提供最佳用户体验,除迷你控制器外,还应在“投射”对话框中提供控件。
Android
发送者迷你控制器

网络接收器内容已暂停

iOS
发送者迷你控制器

网络接收器内容已暂停

Chrome
发送者迷你控制器

网络接收器内容已暂停

发件人通知
必需(仅限 Android)
A 在状态栏中针对通知使用应用图标(而非“投放”图标)。
B 确定正在投放的内容。例如,显示内容标题或图片。
C 确定正在投放哪个 Web 接收器。
D 提供基本的内容控件。
E 在操作行中提供“X”以停止投放并断开与网络接收器的连接。
F 点按应用徽标、内容标题或海报图片应会打开发送者应用的展开控制器。
Notes
- 仅限 Android 系统:无法在 iOS 或 Chrome 中实现通知。
- 在 Android Gingerbread(2.3 版)中,通知仅显示应用图标和文本,而不显示播放/暂停或停止消息。
- 如需了解详情,请参阅为通知添加媒体控件。
Android
发件人通知图标

网络接收器正在播放内容

发件人通知控件

网络接收器正在播放内容

发件人锁定屏幕
必需(仅限 Android)
A 标识使用内容标题或海报图片投射的内容。
B 确定正在投放哪个网络接收器。请注意,音乐应用不需要执行此操作。
C 提供播放控件。
D 提供通过硬件按钮控制音量的功能。
对于 Android 4.4 KitKat 及更高版本而言是必需的:
- 应用图标
- 艺术作品(例如专辑封面)
- 通过文字识别正在投放的内容(例如《钢之泪》)
- 确定正在投放哪个网络接收器(例如“客厅”)
对于 Android 4.3 Jelly Bean 是必需的:
- 艺术作品(例如专辑封面)
- 通过文字识别正在投放的内容(例如《钢之泪》)
- 确定正在投放哪个网络接收器(例如“客厅”)
Notes
- 仅限 Android 系统:无法在 iOS 或 Chrome 中实现通知。
- Android 4.1 及更高版本的设备需要使用锁定屏幕控件。
- 不同的版本适用于 Android 操作系统的不同控件,并且锁定屏幕只能容纳文本字段。通常,图形和图标会比内容更加直接地描述内容。
- 当手机处于锁定状态时,音量控制硬件按钮应调整发送者应用的音量。
- 该控件必须使用框架组件:
MediaSession
、MediaSessionCompat
(对于版本 4.4 和 4.3)或Notification
(对于版本 5.0 及更高版本)。
Android
发件人锁定屏幕控件

网络接收器正在播放内容

发送者恢复投放
已连接的发送者应用应在隐式断开连接(例如网络中断、设备进入休眠状态或电池电量耗尽)后恢复其连接状态。
必需
A 如果发送者应用隐式断开连接(用户未明确停止投射或断开连接),则投射内容应继续在网络接收器上播放。当应用或连接重启时,只要网络接收器会话保持为当前状态,发送者应用就应该恢复与网络接收器的连接。
B “投放”按钮应恢复为连接状态。
C 如果用户在发送者重新连接之前点按“投放”按钮,系统会显示网络接收器设备列表。当用户选择当前正在投放的网络接收器时,发送者应用中应显示迷你控制器或展开控制器。
注意
由于发生电力故障或其他上下文中断,Web 接收器应用也可能会断开连接并停止运行。这被视为普通会话结束,如发送者停止投射中所述。
Android
选择应用

网络接收器正在播放内容

投放连接已恢复

网络接收器正在播放内容

iOS
选择应用

网络接收器正在播放内容

投放连接已恢复

网络接收器正在播放内容

发送者停止投射
投射到电视上的内容会继续播放,直到用户选择“停止投放”或发送者投射新内容。当多个发送者连接到同一个 Web 接收器时,每个发送者应用都应在“投射”对话框中具有“断开连接”按钮(而非“停止投射”按钮)。
必需
A 当多个发送者连接到网络接收器时,按一个发送者应用中的“停止投放”按钮不会向网络接收器执行任何操作,同时也会移除该发送者设备中的投放控件和通知。剩余的已连接发送者设备可通过可用的投射控件保持连接。
B 当发送者应用隐式断开连接(例如,发送者设备电池电量耗尽,或发送者设备与网络接收器之间的网络连接中断)时,不会对网络接收器执行任何操作,并从发送设备中移除投射控件和通知。发送者应用应跟踪隐式断开连接,并在发送者应用重新打开时,尝试重新连接网络接收器。
Android
投放对话框,断开连接按钮

网络接收器正在播放内容

iOS
投放对话框,断开连接按钮

网络接收器正在播放内容

Chrome
投放对话框,断开连接按钮

网络接收器正在播放内容

本设计指南中使用的图片由 Blender Foundation 提供,并依据版权或知识共享许可分享。
- 大象的梦想:(c) 2006 年版权所有,Blender Foundation / 荷兰媒体艺术学院/www.elephantsdream.org
- Sintel:(c) Blender Foundation | www.sintel.org
- 钢之泪 (CC) Blender Foundation | mango.blender.org
- Big Buck Bunny:(c) 2008 版权所有,Blender Foundation / www.bigbuckbunny.org