在 Android 手机上通过语音与 Google 助理互动的媒体应用; 汽车、电视和头戴式耳机由 Android 媒体会话 API 提供支持,并使用媒体操作。 媒体操作生命周期可能难以跟踪。即使是简单的搜索结果 请求中包含许多可能会出现问题的中间步骤, 简化的时间轴:
媒体控制器测试 (MCT) 可让您测试在 Android 上播放媒体的复杂性,并帮助 验证您的媒体会话实现。
MCT 会显示与应用的 MediaController
相关的信息,例如应用的 MediaController
PlaybackState
和元数据,可用于测试应用间媒体控件。
MCT 还包含验证测试
框架
可让您自动执行质量检查测试
为了使用 MCT,您的应用必须提供媒体浏览器服务 并且您必须允许 MCT 连接至该平台。请参阅 构建媒体浏览器服务 。
启动 MCT
![MCT 启动页面](https://developer.android.google.cn/static/media/images/MCT/MCT-Launch-Screen.png?authuser=0000&hl=sr)
启动 MCT 后,您会看到两个列表:
- Active MediaSessions - 当您启动 MCT 时,此列表最初为空 系统会显示“未找到任何媒体应用。通知 需要监听器权限才能扫描活跃的媒体会话。”点击设置 请转到权限屏幕,然后为 MCT 启用该权限。
- MediaBrowserService 实现 - 此列表显示了已实现媒体浏览器服务的应用。 如果您实现了媒体浏览器服务,您的应用将出现在此列表中。 但只有在将应用配置为接受所有 或将 MCT 列入许可名单。请参阅使用 调用 onGetRoot() 。
手动测试手机应用
如果您允许 MCT 连接到您应用的媒体浏览器服务,您的应用 出现在媒体浏览器服务列表实现列表中。查找 然后点击 Control 以在后台启动应用。
否则,您必须先在后台自行启动应用,然后点击 控制:在活跃媒体会话列表中显示时。
测试准备和播放
当 MCT 开始控制您的应用时,它会显示应用的当前会话 元数据:当前选择的媒体以及会话涉及的操作 准备处理
![控制页](https://developer.android.google.cn/static/media/images/MCT/audio-focus.png?authuser=0000&hl=sr)
MCT 控件页面的顶部包含一个下拉菜单,您可以从中选择 Search、URI、Media ID 或 None,以及文本字段 指定与搜索、URI 或媒体 ID 相关联的输入数据, 请选择其中一项
文本字段正下方的 Prepare(准备)和 Play(播放)按钮用于执行
适当的调用(onPrepare()
、onPrepareFromSearch()
、onPrepareFromUri()
、
onPrepareFromMediaId()
、onPlay()
、onPlayFromSearch()
、onPlayFromUri()
、
onPlayFromMediaId()
)。
测试音频焦点
行为良好的媒体应用应该能够处理音频 焦点。您可以通过以下方式测试音频焦点 将另一个音频应用与您的应用一起运行。MCT 控件页面包含一个 用于请求和释放音频焦点的按钮。
如需测试音频焦点,请按以下步骤操作:
- 使用音频焦点下拉菜单选择三个时长提示中的一个
AUDIOFOCUS_GAIN
、AUDIOFOCUS_GAIN_TRANSIENT
或AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK
。 - 按下按钮即可请求聚焦。
- 再次按下按钮即可释放焦点。
测试传输控件
![测试传输控件](https://developer.android.google.cn/static/media/images/MCT/MCT-Controller-Screen.png?authuser=0000&hl=sr)
向左滑动以显示 MCT 的界面视图。此视图 包含标准媒体控制器传输按钮,并显示会话的 程序图片和数据已停用的传输按钮用圆圈圈出 橙色。所有其他项都有效。
使用传输按钮测试您的播放器。传输按钮的状态 应该会按预期更改例如,当您按下“播放”按钮时, “暂停”和“停止”按钮会变为启用状态。
再次向左滑动可查看显示可选操作的视图。每项操作 有一个控件,显示其是否处于有效状态。如果已启用,您可以 即可执行相应操作
如果您是从具有媒体浏览器服务的应用列表中进行连接,则可以 再向左滑动两次可查看可让您上下浏览应用内容的视图 层次结构,或搜索内容树。
手动测试视频应用
使用分屏模式测试视频应用控制器。首先,打开你的视频应用 然后在一个窗口中打开 MCT,然后在分屏模式下打开 MCT。
运行验证测试
验证测试框架提供了一键式测试,供您运行 确保您的媒体应用能够正确响应播放请求。
测试手机应用
![测试按钮](https://developer.android.google.cn/static/media/images/MCT/MCT-Test-Button.png?authuser=0000&hl=sr)
如需访问验证测试,请点击媒体旁边的测试按钮 应用。
MCT 状态
![媒体控件状态](https://developer.android.google.cn/static/media/images/MCT/MCT-Testing-Info-Screen.png?authuser=0000&hl=sr)
下一个视图会显示有关 MCT 的 MediaController
的详细信息,
例如 PlaybackState
、元数据和队列。屏幕上有两个按钮
找到该工具栏左侧的按钮可在可解析模式之间切换
和格式化的日志点击右侧的按钮可刷新视图,以显示
最新信息。
选择测试
![测试选择页面](https://developer.android.google.cn/static/media/images/MCT/MCT-Testing-Verification-Screen.png?authuser=0000&hl=sr)
向左滑动即可进入验证测试视图 查看可用测试的可滚动列表。如果测试使用查询(如 从搜索测试中播放(如图 7 所示), 用于输入查询字符串的文本字段。
MCT 包括针对以下媒体操作的测试,更多测试包括 :
- 播放
- 从搜索结果中播放
- 播放媒体 ID
- 从 URI 播放
- 暂停
- 停止
- 跳至下一个
- 跳到上一个
- 跳至队列项
- 跳转至
测试结果
![成功的测试结果](https://developer.android.google.cn/static/media/images/MCT/MCT-Testing-Success-Screen.png?authuser=0000&hl=sr)
视图底部的结果区域最初是空的。系统会显示 测试结果例如,如需运行“从搜索结果中播放”测试, 在文本字段中输入搜索查询,然后点击 Run Test。以下 显示成功测试结果的屏幕截图。
测试 Android TV 应用
在 Android TV 上启动 MCT 时,您会看到已安装媒体应用的列表。 请注意,仅当实现了媒体浏览器的应用才会显示在此列表中 服务。
选择一款应用后,您会进入测试屏幕,该屏幕右侧会显示验证测试列表。
运行测试时,屏幕左侧会显示 已选定 MediaController。如需了解详情,请查看 Logcat 中的 MCT 日志。
需要查询的测试标有键盘图标。点击 这些测试会打开查询的输入字段。点击 Enter 以运行测试。
您还可以使用 adb
命令更轻松地输入文本:
adb shell input text your-query
您可以使用“%s”在字词之间添加空格。例如,以下 命令会将文本“hello world”输入文字
adb shell input text hello%sworld
构建测试
您可以提交包含更多您认为有用的测试的拉取请求。 如需了解如何构建新测试,请访问 MCT GitHub Wiki 并查看 验证测试 操作说明。
请查看资助说明。
其他资源
MCT 旨在与实现媒体 API 的应用结合使用。 请参阅 通用 Android 音乐播放器 获取此类应用的示例。
我们随时欢迎问题修复和改进。请参阅 投稿说明。