將媒體應用程式擴充至 Wear OS

Wear OS 是絕佳的平台,可讓 Android 使用者隨時隨地與各種音訊內容互動,例如有聲書、音樂、Podcast 和電台。Wear OS by Google 可讓您編寫各種類別的應用程式,包括音訊內容,協助使用者保持連線、保持健康及表達自我。

如果您曾經開發過 Android 應用程式,可能會對應用程式和通知等功能非常熟悉。開發 Wear OS 應用程式時,您可以運用 Modern Android Development 的相關知識。

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 應用程式的方式有些許差異。如要瞭解在開發 Wear OS 應用程式時,特定功能、API 或最佳做法與 Android 行動應用程式開發有何差異,請參閱功能表

Wear OS 媒體應用程式的常見用途

在 Wear OS 上建構媒體應用程式,讓使用者從手錶串流及播放已下載的內容。為了提供最佳使用者體驗,建議您實作下列媒體用途,這些用途特別適合在 Wear OS 裝置上運作。

播放已下載的內容

使用者健身時無需網路連線即可聆聽內容。雖然 Wear OS 裝置通常支援藍牙和 Wi-Fi,但可能不支援 LTE。針對使用者可能將行動裝置留在家中時,因應各種連線不穩或離線用途 (例如運動和通勤時)。詳情請參閱使用下載內容

透過任何可用的網路串流播放

使用者可以透過手錶串流播放音樂、Podcast 或廣播電台,但串流功能可能會耗盡手錶電力。使用者選擇透過手錶聆聽音樂時,可在瀏覽清單中顯示最近使用的下載內容,優先播放已下載的內容。建議您新增一個按��,用於將使用者帶往完整的下載內容清單,如下圖所示。

音樂庫清單包括 音樂庫清單,包括播放清單和有聲書

使用 Compose for Wear OS 建構

Compose for Wear OS 屬於 Android Jetpack,正如您使用的其他 Wear Jetpack 程式庫,這個項目的用意是協助加快編寫程式碼的過程。建議您以此方法為 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 實作的使用者介面,到使用 Media3 實作的播放功能,應有盡有。如果應用程式有特定需求,您可以採用工具包中的 UI 實作項目,同時繼續使用現有的播放器。

媒體工具包可協助您解決各種挑戰,例如避免在手錶的內建喇叭上播放媒體、啟用音訊卸載,以及避免對網路進行不必要的連線偵測 (ping)。

設計媒體應用程式提供您與 Horologist 一起實作的指南,以及 Wear OS 架構和用途的相關資訊。

Wear OS 專屬挑戰的最佳做法

在 Wear OS 上建立媒體應用程式時,請考量手錶和行動裝置的使用者體驗有何不同,尤其是下列層面:

  • 內建喇叭並非專為播放音樂而設計。因此,請使用藍牙喇叭或耳機。
  • 網路連線情況有限或有變化,您應針對不同的網路狀況將應用程式最佳化,並盡可能減少網路用量。
  • 較小的電池電力有限。當裝置在主要 CPU 上執行音訊處理時,且裝置訊號不佳時,電池耗電量會更快。新增音訊卸載支援功能,協助節省電力。
  • 裝置提供多個 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 連線時執行下載作業,以提供更佳的效能。開發人員可使用 Network Awareness 模組,根據網路類型對應網路作業。

讓使用者知道正在播放媒體

在 Wear OS 3 以上版本中,持續性通知會顯示在 Wear OS 使用者介面中的多個介面上。使用者輕觸持續性活動通知時,應用程式會開啟播放器畫面。

透過 Media3,Wear OS 會自動為媒體應用程式建立持續性活動,意圖開啟應用程式。如此一來,使用者就能更有效地參與長時間執行的活動 (例如播放媒體)。