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

迷你控制器

通知控件

锁定屏幕控件

iOS
投射对话框控件

迷你控制器

Chrome
投射对话框控件

迷你控制器

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

正在加载接收者内容

发送者内容正在播放

网络接收器正在播放内容

iOS
正在加载发送者内容

网络接收器内容加载

发送者内容正在播放

网络接收器正在播放内容

Chrome
正在加载发送者内容

网络接收器内容加载

发送者内容正在播放

网络接收器正在播放内容

发件人迷你控制器
投射期间,当用户从当前内容页面或展开的控制器导航到发送者应用中的另一个视图时,系统会显示一个小型的持久控件。迷你控制器是对当前投射的可见提醒,可让用户即时访问它。
必需参数
A 在发送器应用的底部附近显示投射内容的条栏或方框。当用户浏览应用中的其他内容或部分时,这些控件会持续显示。
B 这些控件使用简单且传达所投射的内容时效果最佳。
C 适用于所有应用屏幕(展开的控制器页面除外)。
D 点按内容区域即可打开展开的控制器。
E 提供与立即采取措施相关的任何其他控制措施。
最佳做法
为了提供最佳用户体验,除了迷你控制器之外,您还需要在“投射”对话框中提供相应控件。
Android
发送者迷你控制器

网络接收器内容已暂停

iOS
发送者迷你控制器

网络接收器内容已暂停

Chrome
发送者迷你控制器

网络接收器内容已暂停

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

网络接收器正在播放内容

发件人通知控件

网络接收器正在播放内容

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

网络接收器正在播放内容

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

网络接收器正在播放内容

已恢复投射连接

网络接收器正在播放内容

iOS
选择应用

网络接收器正在播放内容

已恢复投射连接

网络接收器正在播放内容

发送者停止投射
投射到电视上的内容会继续播放,直到用户选择“停止投射”或发送者投射新内容。当多个发送者连接到同一网络接收器时,各发送器应用的“投射”对话框中应有“断开连接”按钮(而非“停止投射”按钮)。
必需参数
A 将多个发送器连接到网络接收器后,从一个发送器应用中按“停止投射”对网络接收器不会执行任何操作,并会从该发送方设备中移除投射控件和通知。其余已连接的发送者设备会与可用的投射控件保持连接。
B 当发送者应用隐式断开连接(例如,发送者设备电池终止,或者发送者设备与网络接收器的连接断开)时,它不会响应网络接收器,并且会移除发送者设备的投射控件和通知。发送者应用应跟踪隐式断开连接,并会在再次打开发送者应用时尝试重新连接到网络接收器。
Android
投射对话框,断开连接按钮

网络接收器正在播放内容

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

网络接收器正在播放内容

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

网络接收器正在播放内容

本设计指南中使用的图片由 Blender Foundation 提供,根据版权或知识共享许可分享。
- 大象的梦想:(c) 版权所有 2006,Blender Foundation / Netherlands Media Art Institute / 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