メディア コントローラ テストアプリを使用する

Android スマートフォンの Google アシスタントと音声でやり取りするメディアアプリ 自動車、テレビ、ヘッドフォンは、Android メディア セッション API を利用し、メディア アクションを使用します。 メディア アクションのライフサイクルに従うのは難しい場合があります。検索から簡単に再生 中間ステップが多数あり、そこでなんらかの問題が発生する可能性があります。 タイムラインを

メディア アクションのライフサイクル

図 1. メディア アクションのライフサイクル

メディア コントローラ テスト(MCT) アプリを使用すると、Android でメディア再生の詳細をテストしたり、 メディア セッションの実装を検証します。

MCT は、アプリの MediaController に関する情報を表示します。 PlaybackState とメタデータ。アプリ間のメディア コントロールのテストに使用できます。 MCT には検証テストも含まれます。 そのフレームワークを使用して、 QA テストを自動化できます

MCT を使用するには、アプリにメディア ブラウザ サービスが必要です MCT による接続を許可する必要があります詳しくは、 メディア ブラウザ サービスの構築 をご覧ください。

MCT の開始

MCT 開始ページ
図 2. MCT の開始ページ

MCT を起動すると、次の 2 つのリストが表示されます。

  • Active MediaSessions - MCT 起動時の初期状態では、このリストは空になっています。 「No media apps found.通知 アクティブなメディア セッションをスキャンするには、リスナーの権限が必要です。」[設定] をクリックして、 権限画面に移動し、MCT の権限を有効にします。
  • MediaBrowserService の実装 - メディア ブラウザ サービスを実装したアプリの一覧です。 メディア ブラウザ サービスを実装している場合は、アプリがこのリストに表示されます。 ただし、MCT を使用できるのは、すべてを受け入れるようアプリを設定した場合のみです 接続するか、MCT を許可リストに登録する必要があります。クライアント接続の制御については、 onGetRoot() をご覧ください。

スマートフォン アプリの手動テスト

MCT にアプリのメディア ブラウザ サービスへの接続を許可している場合、アプリは メディア ブラウザ サービスリスト実装のリストに記載されています。探す [Control] をクリックすると、アプリがバックグラウンドで起動します。

それ以外の場合は、まずバックグラウンドでアプリを手動で起動してから、 アクティブなメディア セッションのリストにこのセッションを表示するタイミングを管理します。

準備と再生のテスト

MCT がアプリの制御を開始すると、アプリの現在のセッションが表示されます。 metadata: 現在選択されているメディアとセッションのアクション 準備する必要があります

コントロール ページ
図 3. コントロール ページ

MCT コントロール ページの上部にプルダウン メニューがあり、 検索URIメディア IDなし、およびテキスト フィールド 検索、URI、メディア ID に関連付けられた入力データを指定できます。 いずれかを選択します

テキスト フィールドのすぐ下にある [Prepare] ボタンと [Play] ボタンを使用すると、 適切な呼び出し(onPrepare()onPrepareFromSearch()onPrepareFromUri()onPrepareFromMediaId()onPlay()onPlayFromSearch()onPlayFromUri()、 選択したアクションonPlayFromMediaId()によって異なります。

音声フォーカスのテスト

優れたメディアアプリは、音声を処理できる必要があります。 あります。音声フォーカスをテストするには、 アプリと一緒に別のオーディオアプリを実行できますMCT コントロールページには 音声フォーカスをリクエストして解放するボタンです。

音声フォーカスをテストする手順は次のとおりです。

  1. [音声フォーカス] プルダウン メニューを使用して、3 つの時間ヒントのいずれかを選択します。 AUDIOFOCUS_GAINAUDIOFOCUS_GAIN_TRANSIENT、または AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK
  2. ボタンを押してフォーカスをリクエストします。
  3. ボタンをもう一度押すとフォーカスが解除されます。

トランスポート コントロールのテスト

トランスポート コントロールのテスト
図 4. トランスポート コントロールのテスト

左にスワイプして、MCT の UI ビューを表示します。このビュー 標準的なメディア コントローラのトランスポート ボタンがあり、 データです。無効になっているトランスポート ボタンは、 オレンジです。他はすべてアクティブです。

トランスポート ボタンを使用してプレーヤーをテストします。トランスポート ボタンの状態 変更されるはずですたとえば再生ボタンを押すと 無効になり、[一時停止] ボタンと [停止] ボタンが有効になります。

もう一度左にスワイプすると、オプションの操作が表示されます。各アクション アクティブかどうかを示すコントロールが あります有効であれば、 クリックしてアクションを実行します。

メディア ブラウザ サービスが含まれるアプリのリストから接続した場合は、 さらに 2 回左にスワイプすると、アプリのコンテンツを上下に移動できるビューが表示されます。 コンテンツ ツリーを検索することもできます。

動画アプリの手動テスト

分割画面モードを使用して動画アプリ コントローラをテストします。まず動画アプリを開きます 分割画面モードで MCT を開きます

検証テストの実行

検証テスト フレームワークには、ワンクリック テストが用意されています。 メディアアプリが再生リクエストに正しく応答することを確認します。

スマートフォン アプリのテスト

[テスト] ボタン
図 5. [テスト] ボタン

検証テストにアクセスするには、メディアの横にある [テスト] ボタンをクリックします。 。

MCT の状態

メディア コントロールの状態
図 6. メディア コントロールの状態

次のビューには、MCT の MediaController に関する詳細情報が表示されます。 たとえば、PlaybackState、メタデータ、キューなどです。このボタンには 2 つのボタンがあります [Rules] をクリックすると、左側のボタンでは、解析可能な状態と フォーマットされたログなどです右側のボタンをクリックするとビューが更新され、 提供します。

テストの選択

テスト選択ページ
図 7.テスト選択ページ

左にスワイプすると、検証テストのビューが表示され、 利用可能なテストのスクロール可能なリストが表示されます。テストで 図 7 に示した検索から再生する場合、 クエリ文字列を入力するテキスト フィールド。

MCT には、次のメディア アクションのテストが含まれています。また、その他のテストも 継続的にプロジェクトに追加されます。

  • 再生
  • 検索から再生
  • メディア ID から再生
  • URI から再生
  • 一時停止
  • 停止
  • 次にスキップ
  • 前にスキップ
  • キューアイテムにスキップ
  • シーク位置

テスト結果

成功したテスト結果
図 8.正常なテスト結果

ビューの下部にある結果領域は、最初は空になっています。表示される 結果が表示されます。たとえば「検索から再生」のテストを実行するには テキスト フィールドに検索クエリを入力し、[テストを実行] をクリックします。次の 成功したテスト結果を示すスクリーンショット。

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

テストのビルド

有用と思われるテストを追加して pull リクエストを送信できます。 新しいテストの作成方法については、 MCT GitHub Wiki ご覧の 検証テスト 手順をご覧ください。

寄付の手順をご確認ください。

参考情報

MCT は、メディア API を実装するアプリと組み合わせて使用することを目的としています。 詳しくは、 ユニバーサル Android Music Player をご覧ください。

バグの修正と機能の改善はいつでも歓迎します。詳しくは、 寄付の手順をご覧ください。