将您的媒体应用扩展到 Wear OS

Wear OS 是一个很棒的平台,让 Android 用户可以在旅途中参与各种音频内容,例如有声读物、音乐、播客和广播。Google 的 Wear OS 允许您为各种类别(包括音频内容)编写应用程序,帮助用户保持联系、保持健康并表达自我。

如果您有 Android 开发经验,那么应用程序和通知等功能可能对您来说很熟悉。开发 Wear OS 应用时,您可以运用您对现代 Android 开发的知识。

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。在用户可能将移动设备留在家里(例如锻炼和通勤)的情况下,请针对不稳定的连接和离线用例进行设计。有关更多信息,请参阅使用下载内容

通过任何可用网络进行流式传输

用户可以通过从手表流式传输来收听音乐、播客或广播电台,但流式传输会耗尽手表电池电量。当用户选择在手表上收听时,请优先显示最近使用的下载内容,并在浏览列表中显示这些内容。考虑添加一个按钮,引导用户查看完整的下载列表,如下面的图片所示。

A list of audio libraries includes A list of audio libraries, including a playlist and an audio book

使用 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 构建时,务必设计允许用户方便快捷地在手表上访问媒体的应用。手表是一个独特的界面,用户与手表的交互时间比与手机和平板电脑的交互时间少得多,因此易用性和交互速度至关重要。

有关声明式 UI 框架的总体优势的更多信息,请参阅为什么选择 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实现的 UI 到使用Media3实现的播放功能。如果您的应用有特定要求,您可以采用工具包中的 UI 实现,同时仍然依赖您现有的播放器。

媒体工具包可以帮助您解决一些难题,例如避免在手表的内置扬声器上播放媒体、启用音频卸载以及避免不必要地 ping 网络。

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

Wear OS 特有挑战的最佳实践

在 Wear OS 上创建媒体应用时,请考虑手表上的用户体验与移动设备上的用户体验有何不同,尤其要注意以下几点:

  • 内置扬声器并非设计用于播放音乐。因此,请使用蓝牙扬声器或耳机。
  • 网络连接有限或变化多端,因此您应针对各种网络状况优化您的应用,并最大限度地减少网络使用。
  • 较小的电池电量有限。当设备在主 CPU 上执行音频处理以及设备的 LTE 信号较弱时,电池电量消耗得更快。添加对音频卸载的支持以帮助节省电量。
  • 该设备提供多个 UI 界面,让用户可以重新参与您的应用。在这些界面上展示您的应用的功能。

使用蓝牙扬声器或耳机

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

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

媒体工具包提供了一个特定的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 用户界面中的多个界面上。点击正在进行的活动通知时,应用会打开播放器屏幕。

使用 Media3,Wear OS 会自动处理为具有打开应用意图的媒体应用创建正在进行的活动。这使用户可以更专注于长期运行的活动,例如媒体播放。