将媒体应用扩展到 Wear OS

Wear OS 是一个绝佳的平台,可让 Android 用户在外出时与各种音频内容(例如有声读物、音乐、播客和电台)互动。借助 Wear OS by Google,您可以编写涵盖各种类别(包括音频内容)的应用,帮助用户与他人保持联系、保持健康并表达自我。

如果您已有 Android 开发经验,那么您可能会对应用和通知等功能十分熟悉。您可以运用 Modern Android Development,适用于 Wear OS。

Wear OS 应用开发原则

Wear OS 以 Android 为基础,因此 Android 的许多最佳实践也适用于 Wear OS。为了缩短开发时间,请在开始构建 Wear OS 应用之前,查看以下原则

创建并运行 Wear OS 应用

若要开始学习,最好的方式就是亲自查看 Wear OS 应用!您可以构建 使用 Android Studio 中的模板构建您的首个 Wear OS 应用。应用 展示了在 Wear OS 设备上一目了然地查看信息的不同方式, 并介绍一些在该平台上开发应用的最佳做法。

如需分步指南,请参阅 在 Wear OS 上创建并运行应用

Wear OS 应用开发与移动应用开发

设计移动应用的方式与设计 Wear OS 应用的方式有所不同。如需了解与 Android 移动应用开发相比,Wear OS 应用开发中的特定功能、API 或最佳实践有何不同,请参阅功能表

Wear OS 上媒体应用的常见用例

在 Wear OS 上构建媒体应用,让用户能够在手表上流式传输和播放已下载的内容。为了提供最佳用户体验,不妨考虑实现以下媒体用例,这些用例在 Wear OS 设备上尤为适用。

播放已下载的内容

用户在锻炼时无需连接到网络即可收听内容。虽然 Wear OS 设备通常支持蓝牙和 Wi-Fi, 它可能不支持 LTE。针对不稳定的连接和离线用例进行设计, 例如在锻炼和通勤时,用户可能会将移动设备 首页。如需了解详情,请参阅使用已下载的内容

通过任意可用网络在线播放

用户可以从 Google Play 音乐中 观看,但在线播放会消耗手表的电量。优先考虑已下载的内容 当用户选择通过在 YouTube 设备上显示最近使用过的下载内容并在手表上听音乐时 。考虑添加一个按钮 如下图所示。

音频库列表包括 音频库列表,包括播放列表和有声读物

使用 Compose for Wear OS 进行构建

Compose for Wear OS 是 Android Jetpack 的一部分,就像您使用的其他 Wear Jetpack 库一样,它也可以帮助您更快地编写出更好的代码。这是 Google 为构建 Wear OS 应用界面推荐的方法。

Jetpack Compose 在移动设备上的许多开发原则都适用于 Compose for Wear OS不过,二者间也有一些重要的区别。使用 Compose for Wear OS 进行构建时,请务必设计让用户能在手表上方便快速地访问媒体内容的应用。手表作为一个独特的平台,实现轻松快速的交互是其要务,因为用户与手表互动的时间比手机或平板电脑要少很多。

如需详细了解声明式界面框架的一般优势, 请参阅为什么采用 Compose。如果您不熟悉如何使用 Jetpack Compose 工具包,请参阅 Compose 开发者在线课程。 如需详细了解 Compose for Wear OS,请参阅 Compose for Wear OS 开发者在线课程和 GitHub 上的 Wear OS 示例仓库

Wear OS 媒体工具包

Wear OS 媒体 工具包是一个 一组库,可加快优质媒体应用的开发速度 Wear OS 版该工具包是 Horologist 项目。 Horologist 是一个额外的库,可帮助您加快应用开发速度。

该工具包使用一流的库来实现媒体用例,从使用 Compose for Wear OS 实现的界面,到使用 Media3 实现的播放功能。如果您的应用有特定要求,您可以采用该工具包中的界面实现,同时仍依赖现有的播放器。

媒体工具包可帮助您解决各种问题,例如避免在手表的内置扬声器上播放媒体、启用音频分流,以及避免不必要地对网络进行 ping。

设计媒体应用提供了有关使用 Horologist 实现应用的指南,以及有关 Wear OS 架构和用例的信息。

针对 Wear OS 特有挑战的最佳实践

在 Wear OS 上构建媒体应用时,请考虑用户体验 手表和移动设备的区别在于, 以下:

  • 内置扬声器不适合播放音乐。因此,请使用蓝牙音箱或蓝牙耳机。
  • 网络连接有限或不稳定,因此您应针对不同的网络状况优化应用,并尽可能减少网络使用。
  • 电池体积越小,功率越小。耗电速度较快 当设备在主 CPU 上执行音频处理时,以及当 LTE 信号不佳。添加了对音频分流的支持,以帮助节省电量。
  • 该设备提供了多个界面,以便用户重新与您的应用互动。请在这些界面上展示应用的功能。

使用蓝牙音箱或蓝牙耳机

虽然手表扬声器可用于通话和引导式活动,但无法提供最佳媒体内容收听体验。

为了提供最佳用户体验,您的应用可以使用媒体工具包,确保在有蓝牙耳机或音箱连接到手表时播放音频。

媒体工具包提供了特定的 Media3 扩展程序 用于装饰 ExoPlayer 实例,以及 在发出声音前主动停止意外播放。

针对网络条件进行优化

为了让媒体应用在手表上正常运行,您需要针对以下在线播放注意事项和网络状况做出选择:

  • 通过选择较低的流式传输比特率来优化内容,例如 48 kbps 和编解码器,例如 AAC 和 MP3
  • 优化预提取策略 为图片和曲目 以便在网络连接暂时中断时继续播放。
  • 在所有网络配置下测试您的应用:连接到 Wi-Fi、LTE 和手表连接 通过蓝牙将手机发送到您的手机。此外,还要测试手表切换时会发生什么情况 网络之间的连接。

Wear OS 媒体工具包有助于为打造高性能应用奠定基础, 例如提供 认知度 模块来为特定操作选择更好的连接。

启用音频分流

为了让 Wear OS 应用提升性能并降低功耗,请使用 音频 分流。 它允许将音频处理从 CPU 分流到 专用信号处理器媒体工具包支持 AudioOffloadManager

如果您不确定给定音频格式是否支持音频分流,请使用 AudioManager.isOffloadedPlaybackSupported() 方法。如需了解详情,请参阅 Exoplayer 文档

除非绝对必要,否则请避免进行网络连接

在为 Wear OS 开发应用时,您可以预料到用户的网络连接会受到限制。通过使用 MediaDownloadService,您可以让用户获得可靠且高性能的下载内容,以便他们随时随地播放媒体。

借助该工具包,您可以 Media3 的 DownloadManager 和 AndroidX WorkManager - 调度 下载。

Media3 会启动所有必要的通知和前台服务。通过 示例应用代码配置 WorkManager 以便在 Wi-Fi 连接可用时运行下载 性能借助网络感知模块,开发者可以将网络操作与网络类型进行映射。

让用户了解正在进行的媒体播放

在 Wear OS 3 及更高版本中,持续性通知可显示在 Wear OS 界面内的多个 surface 中。持续性活动 通知时,应用会打开播放器屏幕。

借助 Media3,Wear OS 会自动为媒体应用创建包含用于打开应用的 intent 的持续性活动。这样,用户就可以与长时间进行的活动(例如媒体播放)保持更高的互动度。