凡是在 Android 手機、車輛、電視和耳機上透過語音與 Google 助理互動的媒體應用程式,都採用 Android 媒體工作階段 API,並使用媒體動作。媒體動作生命週期可能難以追蹤,即使是來自搜尋要求的簡單播放,也可能有許多中階步驟出現了某些問題,如經過簡化的時間軸所示:
Media Controller Test (MCT) 應用程式可讓您在 Android 中測試媒體播放細節,並協助驗證媒體工作階段實作情形。
MCT 會顯示應用程式 MediaController
的相關資訊 (例如 PlaybackState
和中繼資料),並可用來測試跨應用程式媒體控制項。MCT 也提供驗證測試架構,可讓您自動化品質確保測試。
如要使用 MCT,應用程式必須具備媒體瀏覽器服務,且必須允許 MCT 連線至該服務。詳情請參閱「建構媒體瀏覽器服務」一文。
啟用 MT
![MCT 上線頁面](https://developer.android.google.cn/static/media/images/MCT/MCT-Launch-Screen.png?authuser=3&hl=zh-tw)
啟動 MCT 時,您會看見兩份清單:
- Active MediaSessions - 當您啟動 MCT 時,此清單一開始會是空白的,且您會看到「No media apps. 您必須具備「通知接聽器」權限,才能掃描進行中的媒體工作階段。」按一下「Settings」前往權限畫面,然後啟用 MCT 的權限。
- MediaBrowserService 導入作業:這份清單會顯示已實作媒體瀏覽器服務的應用程式,如果您已實作媒體瀏覽器服務,您的應用程式就會顯示在這份清單中,但您必須先將應用程式設為接受所有連線,或將 MCT 加入許可清單,才能使用 MCT。詳情請參閱「使用 onGetRoot() 控制用戶端連線」一文。
手動測試「電話」應用程式
如果您允許 MCT 連線至應用程式的媒體瀏覽器服務,您的應用程式就會顯示在媒體瀏覽器服務清單實作項目清單中。找到該 API,然後按一下「Control」,即可在背景啟動應用程式。
否則,您必須先自行在背景啟動應用程式,然後在應用程式顯示在使用中的媒體工作階段清單中時,按一下「Control」。
準備與測試
當 MCT 開始控制您的應用程式時,會顯示應用程式目前的工作階段中繼資料:目前選取的媒體,以及工作階段準備要處理的動作。
![控制組頁面](https://developer.android.google.cn/static/media/images/MCT/audio-focus.png?authuser=3&hl=zh-tw)
MCT 控制項頁面頂端包含下拉式選單,您可以在其中選取「Search」、「URI」、「Media ID」或「None」,也能透過文字欄位,指定與搜尋、URI 或媒體 ID 相關聯的輸入資料 (如果您選取上述任一選項)。
文字欄位正下方的「準備」和「播放」按鈕,會根據您選取的動作執行適當的呼叫 (onPrepare()
、onPrepareFromSearch()
、onPrepareFromUri()
、onPrepareFromMediaId()
、onPlay()
、onPlayFromSearch()
、onPlayFromUri()
、onPlayFromMediaId()
)。
正在測試音訊焦點
完善的媒體應用程式應能處理音訊焦點。您可以搭配應用程式一併執行其他音訊應用程式,藉此測試音訊焦點。MCT 控制項頁麵包含一個按鈕,可要求及釋放音訊焦點。
如要測試音訊焦點,請按照下列步驟操作:
- 使用「Audio Focus」(音訊焦點) 下拉式選單,從三種時間長度提示中選擇
AUDIOFOCUS_GAIN
、AUDIOFOCUS_GAIN_TRANSIENT
或AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK
。 - 按下按鈕來要求焦點。
- 再按一次按鈕即可鬆開焦點。
測試傳輸控制項
![測試傳輸控制項](https://developer.android.google.cn/static/media/images/MCT/MCT-Controller-Screen.png?authuser=3&hl=zh-tw)
向左滑動以顯示 MCT 的 UI 檢視畫面。這個檢視畫面具有標準媒體控制器傳輸按鈕,會顯示工作階段的程式圖片和資料。停用的傳輸按鈕會圈出橘色。所有其他設定都有效。
使用傳輸按鈕測試播放器。傳輸按鈕的狀態應如預期變更。舉例來說,當您按下「播放」按鈕時,系統會停用該按鈕,同時啟用「暫停」和「停止」按鈕。
再次向左滑動,即可查看顯示選用動作的檢視畫面。每個動作都有一個控制項,顯示其是否有效。如已啟用,只要按一下動作就能執行。
如果您已從提供媒體瀏覽器服務的應用程式清單連結,可以再向左滑動兩次,藉此切換檢視畫面,以便上下移動應用程式的內容階層,或搜尋內容樹狀結構。
手動測試影片應用程式
請使用分割畫面模式測試影片應用程式控制器。首先,在一個視窗中開啟影片應用程式,然後在分割畫面模式下開啟 MCT。
執行驗證測試
驗證測試架構提供一鍵測試,您可以執行,確保媒體應用程式能正確回應播放要求。
測試手機應用程式
![「測試」按鈕](https://developer.android.google.cn/static/media/images/MCT/MCT-Test-Button.png?authuser=3&hl=zh-tw)
如要存取驗證測試,請按一下媒體應用程式旁邊的「Test」按鈕。
MCT 狀態
![媒體控制狀態](https://developer.android.google.cn/static/media/images/MCT/MCT-Testing-Info-Screen.png?authuser=3&hl=zh-tw)
下一個檢視畫面會顯示 MCT MediaController
的詳細資訊,例如 PlaybackState
、中繼資料和佇列。工具列右上角有兩個按鈕。左側的按鈕可用來切換可剖析和格式化的記錄。右側的按鈕可重新整理檢視畫面,顯示最新的資訊。
選取測試
![測試選擇頁面](https://developer.android.google.cn/static/media/images/MCT/MCT-Testing-Verification-Screen.png?authuser=3&hl=zh-tw)
向左滑動即可進入驗證測試檢視畫面,您可以在其中查看可用測試的捲動式清單。如果測試使用查詢 (如圖 7 所示的搜尋測試遊戲過程),則會提供可輸入查詢字串的文字欄位。
MCT 包含下列媒體動作的測試,並會持續在專案中加入更多測試:
- 播放
- 播放 Google 搜尋結果
- 透過媒體 ID 播放
- 從 URI 播放
- 暫停
- 停止
- 跳到下一個
- 跳到上一個
- 跳至待播清單項目
- 跳轉至
測試結果
![成功的測試結果](https://developer.android.google.cn/static/media/images/MCT/MCT-Testing-Success-Screen.png?authuser=3&hl=zh-tw)
檢視底部的結果區域一開始為空白。並在執行測試時顯示結果。舉例來說,如要透過搜尋測試執行遊戲,請在文字欄位中輸入搜尋查詢,然後按一下「Run Test」。下列螢幕截圖顯示成功的測試結果。
測試 Android TV 應用程式
在 Android TV 上啟動 MCT 時,畫面上會列出已安裝的媒體應用程式。請注意,只有實作媒體瀏覽器服務的應用程式才會顯示在這份清單中。
選取應用程式即可前往測試畫面,右側會顯示驗證測試清單。
執行測試時,畫面左側會顯示所選 MediaController 的相關資訊。詳情請參閱 Logcat 中的 MCT 記錄。
需要查詢的測試會標上鍵盤圖示。點選其中一個測試即可開啟查詢的輸入欄位。按一下「進入」即可執行測試。
您也可以使用 adb
指令,更輕鬆地輸入文字:
adb shell input text your-query
您可以使用「%s」在字詞之間加入空格。舉例來說,下列指令會在輸入欄位中加入「hello world」文字。
adb shell input text hello%sworld
建立測試
提交提取要求時,您可以附上更多您認為實用的測試。如要瞭解如何建構新測試,請前往 MCT GitHub Wiki 並查看驗證測試操作說明。
請參閱捐款操作說明。
其他資源
MCT 應與實作媒體 API 的應用程式搭配使用。如需這類應用程式的範例,請參閱通用 Android 音樂播放器。
我們隨時歡迎您修正錯誤和改善功能。請參閱捐款操作說明。