當內容將內容投放到網路接收端時,使用者一律必須能從傳送者應用程式控制內容。
注意:根據《Google Cast SDK 附加開發人員服務條款》規定,投放媒體應用程式必須使用專為 SDK 定義的 Play 控制 API (媒體播放訊息),控制 Web Receiver 上的媒體播放。
寄件者應用程式應在以下位置提供投放控制項:
傳送端應用程式的投放播放狀態和控制項,必須與網路接收器上發生的播放變更保持同步,即使傳送者應用程式不是來自傳送者的應用程式也一樣。這樣做可以妥善處理多重傳送者指令和來自裝置的遙控器、按鈕等播放控制項。
Android
投放對話方塊控制項
![](https://developers.google.cn/static/cast/images/a/sender-cast-menu-active1.png?authuser=3&hl=zh-tw)
Mini 控制器
![](https://developers.google.cn/static/cast/images/a/sender-persistent-control1.png?authuser=3&hl=zh-tw)
通知控制項
![](https://developers.google.cn/static/cast/images/a/sender-control-notification1.png?authuser=3&hl=zh-tw)
鎖定畫面控制項
![](https://developers.google.cn/static/cast/images/a/sender-control-lockscreen1.png?authuser=3&hl=zh-tw)
iOS
投放對話方塊控制項
![](https://developers.google.cn/static/cast/images/i/sender-cast-menu-active1.png?authuser=3&hl=zh-tw)
Mini 控制器
![](https://developers.google.cn/static/cast/images/i/sender-persistent-control1.png?authuser=3&hl=zh-tw)
Chrome
投放對話方塊控制項
![](https://developers.google.cn/static/cast/images/w/sender-cast-menu-active1.jpg?authuser=3&hl=zh-tw)
Mini 控制器
![](https://developers.google.cn/static/cast/images/w/sender-persistent-control1.jpg?authuser=3&hl=zh-tw)
寄件者音量控制
傳送者應用程式必須允許使用者使用傳送裝置上的硬體音量按鈕和/或軟體音量滑桿,控制電視或揚聲器播放的音量。可選擇的控制項如下:
- 針對 Chromecast 等 Google Cast 裝置傳送到電視上的音量。
- Google Cast TV、內建 Android TV 的電視和智慧音箱的實際原生電視/揚聲器音量。
必要
A 傳送者應用程式必須允許使用者使用傳送裝置上的硬體音量按鈕和/或軟體音量滑桿,控制電視或揚聲器播放的音量。
- Android:必須同時支援硬體按鈕和軟體音量滑桿。
- iOS:必須啟用軟體音量滑桿。
- 網頁/Chrome:必須支援軟體音量滑桿。
B 在行動裝置上,「投放」對話方塊中必須顯示軟體音量滑桿。
C 連線至網路接收器後,傳送者應用程式中的音量滑桿必須與目前的網路接收器音量保持同步並保持同步。
D 傳送端應用程式中的音量滑桿必須反映其他傳送者或 Chromecast 應用程式聲控器所做的音量變更。
E 寄件者應用程式不得將音量設為預先定義的等級,只應傳遞使用者啟動的音量變更。
F 僅限 Android:使用硬體按鈕變更 Web Receiver 的音量時,按下硬體音量按鈕時,必須顯示視覺化音量滑桿 (而且左側有「投放」圖示)。注意:如果是 Android Gingerbread (2.3 版),「投放」圖示不會顯示。
最佳做法
- 調高音量:
- Android:架構會自動增加音量。
- iOS 和 Chrome:Google Chrome 和 Chrome:針對硬體音量按鈕,使用的網路接收端裝置音訊/視訊裝置完整音量範圍的增幅小於或等於 5%;如果是純音訊裝置,則使用該裝置的完整音量範圍遞增為 2%。
寄件者擴充控制器
傳送者應用程式必須為要投放的內容提供展開的控制器。
必要
A 顯示內容標題或圖片,辨識正在投放的內容。
B 開始播放前,顯示載入指標、內容標題或圖片。
C 內容開始後,確認網路接收端狀態。
D 提供相關的控制項。
E 在跳轉列的左端顯示目前的播放時間。
在右側顯示直播的總時間長度 (如果已知或不是直播)。
F 隱藏與投放無關的控制項。
G 當使用者離開展開的控制器時,請勿中斷連線或停止投放。
H 讓使用者輕鬆返回展開的控制器。
最佳做法
- 為媒體串流提供播放位置滑桿。
- 顯示其他有意義的內容相關圖片和中繼資料。
- 找出媒體串流的經過時間和內容時間長度。
Android
正在載入寄件者內容
![正在載入寄件者內容](https://developers.google.cn/static/cast/images/a/sender-control-elements1_a.png?authuser=3&hl=zh-tw)
正在載入接收器內容
![](https://developers.google.cn/static/cast/images/r/receiver-content-loading1.gif?authuser=3&hl=zh-tw)
傳送者內容正在播放
![](https://developers.google.cn/static/cast/images/a/sender-control-elements2_a.png?authuser=3&hl=zh-tw)
Web Receiver 正在播放內容
![](https://developers.google.cn/static/cast/images/r/receiver-content-playing1.png?authuser=3&hl=zh-tw)
iOS
正在載入寄件者內容
![](https://developers.google.cn/static/cast/images/i/sender-control-elements1_a.gif?authuser=3&hl=zh-tw)
正在載入網路接收器內容
![](https://developers.google.cn/static/cast/images/r/receiver-content-loading1.gif?authuser=3&hl=zh-tw)
傳送者內容正在播放
![](https://developers.google.cn/static/cast/images/i/sender-control-elements2_a.png?authuser=3&hl=zh-tw)
Web Receiver 正在播放內容
![](https://developers.google.cn/static/cast/images/r/receiver-content-playing1.png?authuser=3&hl=zh-tw)
Chrome
正在載入寄件者內容
![](https://developers.google.cn/static/cast/images/w/sender-control-elements1_a.gif?authuser=3&hl=zh-tw)
正在載入網路接收器內容
![](https://developers.google.cn/static/cast/images/r/receiver-content-loading1.gif?authuser=3&hl=zh-tw)
傳送者內容正在播放
![](https://developers.google.cn/static/cast/images/w/sender-control-elements2_a.jpg?authuser=3&hl=zh-tw)
Web Receiver 正在播放內容
![](https://developers.google.cn/static/cast/images/r/receiver-content-playing1.png?authuser=3&hl=zh-tw)
傳送者迷你控制器
當使用者從目前的內容頁面或展開控制器前往傳送端應用程式中的其他檢視畫面時,畫面上應該會顯示一個小型的持續性控制項 (稱為迷你控制器)。迷你控制器會顯示目前投放的提醒,並提供目前投放的提醒。
必要
A 系統會在傳送者應用程式底部附近顯示目前投放內容的長條或方塊。當使用者瀏覽應用程式的其他內容或部分時,這些控制項仍會保持不變。
B 控制項很簡單,可清楚呈現正在投放的內容。
C 適用於所有應用程式畫面 (展開的控制器頁面除外)。
D 輕觸內容區域可開啟展開的控制器。
E 提供與立即採取行動相關的任何其他控制項。
最佳做法
為獲得最佳使用者體驗,除了迷你控制器之外,請在「投放」對話方塊中提供控制選項。
Android
傳送者迷你控制器
![](https://developers.google.cn/static/cast/images/a/sender-persistent-control1_a.png?authuser=3&hl=zh-tw)
網路接收器內容已暫停
![](https://developers.google.cn/static/cast/images/r/receiver-content-playing1.png?authuser=3&hl=zh-tw)
iOS
傳送者迷你控制器
![](https://developers.google.cn/static/cast/images/i/sender-persistent-control1_a.png?authuser=3&hl=zh-tw)
網路接收器內容已暫停
![](https://developers.google.cn/static/cast/images/r/receiver-content-playing1.png?authuser=3&hl=zh-tw)
Chrome
傳送者迷你控制器
![](https://developers.google.cn/static/cast/images/w/sender-persistent-control1_a.jpg?authuser=3&hl=zh-tw)
網路接收器內容已暫停
![](https://developers.google.cn/static/cast/images/r/receiver-content-playing1.png?authuser=3&hl=zh-tw)
寄件者通知
必要 (僅限 Android)
A 使用狀態列中的應用程式圖示 (而非「投放」圖示) 查看通知。
B 找出正在投放的內容。例如顯示內容標題或圖片。
C 找出正在投放的網路接收器。
D 提供基本內容控制選項。
E 在動作列中提供「X」,表示停止投放,以及中斷與 Web Receiver 的連線。
F 輕觸應用程式標誌、內容標題或圖片應開啟傳送者應用程式的展開控制器。
備忘錄
- 僅限 Android:您無法在 iOS 或 Chrome 中導入通知。
- 在 Android Gingerbread (2.3 版) 中,通知只會顯示應用程式圖示和文字,而非播放/暫停或停止。
- 詳情請參閱「將媒體控制項新增至通知」一文。
Android
寄件者通知圖示
![](https://developers.google.cn/static/cast/images/a/sender-control-notification1_a.png?authuser=3&hl=zh-tw)
Web Receiver 正在播放內容
![](https://developers.google.cn/static/cast/images/r/receiver-content-playing1.png?authuser=3&hl=zh-tw)
寄件者通知控制項
![](https://developers.google.cn/static/cast/images/a/sender-control-notification2_a.png?authuser=3&hl=zh-tw)
Web Receiver 正在播放內容
![](https://developers.google.cn/static/cast/images/r/receiver-content-playing1.png?authuser=3&hl=zh-tw)
寄件者鎖定畫面
必要 (僅限 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
寄件者螢幕鎖定控制項
![](https://developers.google.cn/static/cast/images/a/sender-control-lockscreen1_a.png?authuser=3&hl=zh-tw)
Web Receiver 正在播放內容
![](https://developers.google.cn/static/cast/images/r/receiver-content-playing1.png?authuser=3&hl=zh-tw)
傳送者繼續投放
已連線的傳送者應用程式應在隱含中斷連線後還原其已連線狀態 (例如網路掉落、裝置進入休眠狀態或電池電力耗盡)。
必要
A 如果傳送方應用程式突然中斷連線 (使用者未明確停止投放或中斷連線),投放內容應繼續在網路接收器上播放。應用程式或連線重新啟動後,只要網路接收端工作階段仍為最新版本,傳送者應用程式應恢復與網路接收器的連線。
B 「投放」按鈕應還原為已連線狀態。
C 如果使用者在傳送者重新連線前輕觸「投放」按鈕,則系統會顯示網路接收器裝置清單。當使用者選取目前正在投放的網路接收器時,傳送者應用程式中應會顯示迷你或展開的控制器。
注意
Web Receiver 應用程式可能會因為電力問題或一些其他不環境的中斷情形,而中斷連線並停止執行。這視為一般工作階段結束,詳情請參閱「傳送者停止投放」一節。
Android
選取應用程式
![](https://developers.google.cn/static/cast/images/a/sender-control-resume1_a.png?authuser=3&hl=zh-tw)
Web Receiver 正在播放內容
![](https://developers.google.cn/static/cast/images/r/receiver-content-playing1.png?authuser=3&hl=zh-tw)
已還原投放連線
![](https://developers.google.cn/static/cast/images/a/sender-control-resume2_a.png?authuser=3&hl=zh-tw)
Web Receiver 正在播放內容
![](https://developers.google.cn/static/cast/images/r/receiver-content-playing1.png?authuser=3&hl=zh-tw)
iOS
選取應用程式
![](https://developers.google.cn/static/cast/images/i/sender-control-resume1_a.png?authuser=3&hl=zh-tw)
Web Receiver 正在播放內容
![](https://developers.google.cn/static/cast/images/r/receiver-content-playing1.png?authuser=3&hl=zh-tw)
已還原投放連線
![](https://developers.google.cn/static/cast/images/i/sender-control-resume2_a.png?authuser=3&hl=zh-tw)
Web Receiver 正在播放內容
![](https://developers.google.cn/static/cast/images/r/receiver-content-playing1.png?authuser=3&hl=zh-tw)
傳送者停止投放
投放至電視的內容會繼續播放,直到使用者選擇「停止投放」或傳送者投放新內容為止。當多位寄件者連線到同一個網路接收器時,每個傳送者應用程式的「投放」對話方塊中都應該有一個中斷連線按鈕 (而不是「停止投放」按鈕)。
必要
A 當多位寄件者連線到網路接收器時,如果對其中一個傳送者應用程式按下「停止投放」,網路接收器並不會有任何動作,而且會移除該傳送端裝置的投放控制項和通知。其餘已連線的傳送者裝置與可用的投放控制項保持連線。
B 如果傳送方應用程式以隱含方式中斷連線 (例如傳送者的裝置電量耗盡,或傳送端裝置的網路連線中斷,網路接收端) 就不會有任何動作,網路接收器也會移除投放控制項和通知。傳送者應用程式應追蹤隱含中斷連線的情況,並在傳送者應用程式再次開啟時,嘗試重新連線至網路接收器。
Android
投放對話方塊、中斷連線按鈕
![](https://developers.google.cn/static/cast/images/a/sender-control-end1.png?authuser=3&hl=zh-tw)
Web Receiver 正在播放內容
![](https://developers.google.cn/static/cast/images/r/receiver-content-playing1.png?authuser=3&hl=zh-tw)
iOS
投放對話方塊、中斷連線按鈕
![](https://developers.google.cn/static/cast/images/i/sender-control-end1.png?authuser=3&hl=zh-tw)
Web Receiver 正在播放內容
![](https://developers.google.cn/static/cast/images/r/receiver-content-playing1.png?authuser=3&hl=zh-tw)
Chrome
投放對話方塊、中斷連線按鈕
![](https://developers.google.cn/static/cast/images/w/sender-control-end1.jpg?authuser=3&hl=zh-tw)
Web Receiver 正在播放內容
![](https://developers.google.cn/static/cast/images/r/receiver-content-playing1.png?authuser=3&hl=zh-tw)
這份設計指南中使用的圖片是由 Blender Foundation 提供,並依版權或創用 CC 授權分享。
- 大象的夢幻:(c) Copyright 2006, Blender Foundation / Netherlands Media Art Institute/ www.elephantsdream.org
- Sintel:(c) Copyright Blender Foundation | www.sintel.org
- 鋼鐵人:(CC) Blender Foundation | mango.blender.org
- Big Buck Bunny:(c) Copyright 2008, Blender Foundation / www.bigbuckbunny.org