在 Android 手机上通过语音与 Google 助理互动的媒体应用; 汽车、电视和头戴式耳机由 Android 媒体会话 API 提供支持,并使用媒体操作。 媒体操作生命周期可能难以跟踪。即使是简单的搜索结果 请求中包含许多可能会出现问题的中间步骤, 简化的时间轴:
媒体控制器测试 (MCT) 可让您测试在 Android 上播放媒体的复杂性,并帮助 验证您的媒体会话实现。
MCT 会显示与应用的 MediaController
相关的信息,例如应用的 MediaController
PlaybackState
和元数据,可用于测试应用间媒体控件。
MCT 还包含验证测试
框架
可让您自动执行质量检查测试
为了使用 MCT,您的应用必须提供媒体浏览器服务 并且您必须允许 MCT 连接至该平台。请参阅 构建媒体浏览器服务 。
启动 MCT
启动 MCT 后,您会看到两个列表:
- Active MediaSessions - 当您启动 MCT 时,此列表最初为空 系统会显示“未找到任何媒体应用。通知 需要监听器权限才能扫描活跃的媒体会话。”点击设置 请转到权限屏幕,然后为 MCT 启用该权限。
- MediaBrowserService 实现 - 此列表显示了已实现媒体浏览器服务的应用。 如果您实现了媒体浏览器服务,您的应用将出现在此列表中。 但只有在将应用配置为接受所有 或将 MCT 列入许可名单。请参阅使用 调用 onGetRoot() 。
手动测试手机应用
如果您允许 MCT 连接到您应用的媒体浏览器服务,您的应用 出现在媒体浏览器服务列表实现列表中。查找 然后点击 Control 以在后台启动应用。
否则,您必须先在后台自行启动应用,然后点击 控制:在活跃媒体会话列表中显示时。
测试准备和播放
当 MCT 开始控制您的应用时,它会显示应用的当前会话 元数据:当前选择的媒体以及会话涉及的操作 准备处理
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
。 - 按下按钮即可请求聚焦。
- 再次按下按钮即可释放焦点。
测试传输控件
向左滑动以显示 MCT 的界面视图。此视图 包含标准媒体控制器传输按钮,并显示会话的 程序图片和数据已停用的传输按钮用圆圈圈出 橙色。所有其他项都有效。
使用传输按钮测试您的播放器。传输按钮的状态 应该会按预期更改例如,当您按下“播放”按钮时, “暂停”和“停止”按钮会变为启用状态。
再次向左滑动可查看显示可选操作的视图。每项操作 有一个控件,显示其是否处于有效状态。如果已启用,您可以 即可执行相应操作
如果您是从具有媒体浏览器服务的应用列表中进行连接,则可以 再向左滑动两次可查看可让您上下浏览应用内容的视图 层次结构,或搜索内容树。
手动测试视频应用
使用分屏模式测试视频应用控制器。首先,打开你的视频应用 然后在一个窗口中打开 MCT,然后在分屏模式下打开 MCT。
运行验证测试
验证测试框架提供了一键式测试,供您运行 确保您的媒体应用能够正确响应播放请求。
测试手机应用
如需访问验证测试,请点击媒体旁边的测试按钮 应用。
MCT 状态
下一个视图会显示有关 MCT 的 MediaController
的详细信息,
例如 PlaybackState
、元数据和队列。屏幕上有两个按钮
找到该工具栏左侧的按钮可在可解析模式之间切换
和格式化的日志点击右侧的按钮可刷新视图,以显示
最新信息。
选择测试
向左滑动即可进入验证测试视图 查看可用测试的可滚动列表。如果测试使用查询(如 从搜索测试中播放(如图 7 所示), 用于输入查询字符串的文本字段。
MCT 包括针对以下媒体操作的测试,更多测试包括 :
- 播放
- 从搜索结果中播放
- 播放媒体 ID
- 从 URI 播放
- 暂停
- 停止
- 跳至下一个
- 跳到上一个
- 跳至队列项
- 跳转至
测试结果
视图底部的结果区域最初是空的。系统会显示 测试结果例如,如需运行“从搜索结果中播放”测试, 在文本字段中输入搜索查询,然后点击 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 音乐播放器 获取此类应用的示例。
我们随时欢迎问题修复和改进。请参阅 投稿说明。