使用媒體遙控器測試應用程式

凡是在 Android 手機、車輛、電視和耳機上透過語音與 Google 助理互動的媒體應用程式,都採用 Android 媒體工作階段 API,並使用媒體動作。媒體動作生命週期可能難以追蹤,即使是來自搜尋要求的簡單播放,也可能有許多中階步驟出現了某些問題,如經過簡化的時間軸所示:

媒體行動生命週期

圖 1. 媒體行動生命週期

Media Controller Test (MCT) 應用程式可讓您在 Android 中測試媒體播放細節,並協助驗證媒體工作階段實作情形。

MCT 會顯示應用程式 MediaController 的相關資訊 (例如 PlaybackState 和中繼資料),並可用來測試跨應用程式媒體控制項。MCT 也提供驗證測試架構,可讓您自動化品質確保測試。

如要使用 MCT,應用程式必須具備媒體瀏覽器服務,且必須允許 MCT 連線至該服務。詳情請參閱「建構媒體瀏覽器服務」一文。

啟用 MT

MCT 上線頁面
圖 2.MCT 推出頁面

啟動 MCT 時,您會看見兩份清單:

  • Active MediaSessions - 當您啟動 MCT 時,此清單一開始會是空白的,且您會看到「No media apps. 您必須具備「通知接聽器」權限,才能掃描進行中的媒體工作階段。」按一下「Settings」前往權限畫面,然後啟用 MCT 的權限。
  • MediaBrowserService 導入作業:這份清單會顯示已實作媒體瀏覽器服務的應用程式,如果您已實作媒體瀏覽器服務,您的應用程式就會顯示在這份清單中,但您必須先將應用程式設為接受所有連線,或將 MCT 加入許可清單,才能使用 MCT。詳情請參閱「使用 onGetRoot() 控制用戶端連線」一文。

手動測試「電話」應用程式

如果您允許 MCT 連線至應用程式的媒體瀏覽器服務,您的應用程式就會顯示在媒體瀏覽器服務清單實作項目清單中。找到該 API,然後按一下「Control」,即可在背景啟動應用程式。

否則,您必須先自行在背景啟動應用程式,然後在應用程式顯示在使用中的媒體工作階段清單中時,按一下「Control」

準備與測試

當 MCT 開始控制您的應用程式時,會顯示應用程式目前的工作階段中繼資料:目前選取的媒體,以及工作階段準備要處理的動作。

控制組頁面
圖 3.控制組頁面

MCT 控制項頁面頂端包含下拉式選單,您可以在其中選取「Search」、「URI」、「Media ID」或「None」,也能透過文字欄位,指定與搜尋、URI 或媒體 ID 相關聯的輸入資料 (如果您選取上述任一選項)。

文字欄位正下方的「準備」和「播放」按鈕,會根據您選取的動作執行適當的呼叫 (onPrepare()onPrepareFromSearch()onPrepareFromUri()onPrepareFromMediaId()onPlay()onPlayFromSearch()onPlayFromUri()onPlayFromMediaId())。

正在測試音訊焦點

完善的媒體應用程式應能處理音訊焦點。您可以搭配應用程式一併執行其他音訊應用程式,藉此測試音訊焦點。MCT 控制項頁麵包含一個按鈕,可要求及釋放音訊焦點。

如要測試音訊焦點,請按照下列步驟操作:

  1. 使用「Audio Focus」(音訊焦點) 下拉式選單,從三種時間長度提示中選擇 AUDIOFOCUS_GAINAUDIOFOCUS_GAIN_TRANSIENTAUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK
  2. 按下按鈕來要求焦點。
  3. 再按一次按鈕即可鬆開焦點。

測試傳輸控制項

測試傳輸控制項
圖 4.測試傳輸控制項

向左滑動以顯示 MCT 的 UI 檢視畫面。這個檢視畫面具有標準媒體控制器傳輸按鈕,會顯示工作階段的程式圖片和資料。停用的傳輸按鈕會圈出橘色。所有其他設定都有效。

使用傳輸按鈕測試播放器。傳輸按鈕的狀態應如預期變更。舉例來說,當您按下「播放」按鈕時,系統會停用該按鈕,同時啟用「暫停」和「停止」按鈕。

再次向左滑動,即可查看顯示選用動作的檢視畫面。每個動作都有一個控制項,顯示其是否有效。如已啟用,只要按一下動作就能執行。

如果您已從提供媒體瀏覽器服務的應用程式清單連結,可以再向左滑動兩次,藉此切換檢視畫面,以便上下移動應用程式的內容階層,或搜尋內容樹狀結構。

手動測試影片應用程式

請使用分割畫面模式測試影片應用程式控制器。首先,在一個視窗中開啟影片應用程式,然後在分割畫面模式下開啟 MCT。

執行驗證測試

驗證測試架構提供一鍵測試,您可以執行,確保媒體應用程式能正確回應播放要求。

測試手機應用程式

「測試」按鈕
圖 5.「測試」按鈕

如要存取驗證測試,請按一下媒體應用程式旁邊的「Test」按鈕。

MCT 狀態

媒體控制狀態
圖 6.媒體控制狀態

下一個檢視畫面會顯示 MCT MediaController 的詳細資訊,例如 PlaybackState、中繼資料和佇列。工具列右上角有兩個按鈕。左側的按鈕可用來切換可剖析和格式化的記錄。右側的按鈕可重新整理檢視畫面,顯示最新的資訊。

選取測試

測試選擇頁面
圖 7.「測試選擇」頁面

向左滑動即可進入驗證測試檢視畫面,您可以在其中查看可用測試的捲動式清單。如果測試使用查詢 (如圖 7 所示的搜尋測試遊戲過程),則會提供可輸入查詢字串的文字欄位。

MCT 包含下列媒體動作的測試,並會持續在專案中加入更多測試:

  • 播放
  • 播放 Google 搜尋結果
  • 透過媒體 ID 播放
  • 從 URI 播放
  • 暫停
  • 停止
  • 跳到下一個
  • 跳到上一個
  • 跳至待播清單項目
  • 跳轉至

測試結果

成功的測試結果
圖 8.測試結果的成功

檢視底部的結果區域一開始為空白。並在執行測試時顯示結果。舉例來說,如要透過搜尋測試執行遊戲,請在文字欄位中輸入搜尋查詢,然後按一下「Run Test」。下列螢幕截圖顯示成功的測試結果。

測試 Android TV 應用程式

在 Android TV 上啟動 MCT 時,畫面上會列出已安裝的媒體應用程式。請注意,只有實作媒體瀏覽器服務的應用程式才會顯示在這份清單中。

MCT 在電視上的推出頁面

圖 9.MCT 在電視上的推出頁面

選取應用程式即可前往測試畫面,右側會顯示驗證測試清單。

電視上的驗證測試頁面

圖 10.電視上的驗證測試頁面

執行測試時,畫面左側會顯示所選 MediaController 的相關資訊。詳情請參閱 Logcat 中的 MCT 記錄。

電視上的測試資訊頁面

圖 11.電視上的測試資訊頁面

需要查詢的測試會標上鍵盤圖示。點選其中一個測試即可開啟查詢的輸入欄位。按一下「進入」即可執行測試。

您也可以使用 adb 指令,更輕鬆地輸入文字:

adb shell input text your-query

您可以使用「%s」在字詞之間加入空格。舉例來說,下列指令會在輸入欄位中加入「hello world」文字。

adb shell input text hello%sworld

建立測試

提交提取要求時,您可以附上更多您認為實用的測試。如要瞭解如何建構新測試,請前往 MCT GitHub Wiki 並查看驗證測試操作說明

請參閱捐款操作說明

其他資源

MCT 應與實作媒體 API 的應用程式搭配使用。如需這類應用程式的範例,請參閱通用 Android 音樂播放器

我們隨時歡迎您修正錯誤和改善功能。請參閱捐款操作說明