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

媒體應用程式可透過語音與 Android 手機、車輛、電視和耳機上的 Google 助理互動,並採用 Android 媒體工作階段 API,並使用媒體動作。媒體動作生命週期可能難以遵循。即使只是從搜尋要求進行簡單的播放,也有許多中階步驟都有可能出錯,如簡化的時間軸所示:

媒體動作生命週期

圖 1. 媒體動作生命週期

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

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

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

啟動 MCT

MCT 啟用頁面
圖 2.MCT 推出頁面

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

  • Active MediaSessions - 啟動 MCT 時,這份清單一開始沒有任何內容,而您會看到「No media apps. 您必須授予通知接聽程式權限,才能掃描執行中的媒體工作階段。」按一下「Settings」前往權限畫面,為 MCT 啟用權限。
  • MediaBrowserService 實作 - 此清單會顯示實作媒體瀏覽器服務的應用程式。 如果您已實作媒體瀏覽器服務,應用程式會顯示在這份清單中。不過,只有在將應用程式設為接受所有連線或將 MCT 加入許可清單時,才能使用 MCT。詳情請參閱「使用 onGetRoot() 控管用戶端連線」。

手動測試手機應用程式

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

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

測試準備與遊玩

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

控制組網頁
圖 3.「對照組」頁面

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

視您選取的動作而定,文字欄位正下方的「Prepare」和「Play」按鈕會執行適當的呼叫 (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.電視上的「測試資訊」頁面

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

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

adb shell input text your-query

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

adb shell input text hello%sworld

建立測試

您可以提交提取要求,並加入您認為實用的測試。如要瞭解如何建構新測試,請造訪 MCT GitHub Wiki,並查看驗證測試操作說明

請參閱捐款操作說明

其他資源

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

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