將媒體應用程式擴充至 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 應用程式與 Android 行動應用程式時,對於特定功能、API 或最佳做法的處理有何不同,請查看功能表

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

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

播放已下載的內容

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

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

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

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

使用 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 介面,讓使用者重新與應用程式互動。請在這些介面上展示應用程式的功能。

使用藍牙喇叭或耳機

雖然手錶喇叭可用於通話和引導活動,但無法提供最佳的媒體內容聆聽體驗。

為提供最佳使用者體驗,應用程式可以使用媒體工具包,確保在藍牙耳機或喇叭與手錶連線時播放音訊。

Media Toolkit 提供特定的 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 使用者介面中的多個途徑上顯示。輕觸「ongoing activity」通知後,應用程式會開啟播放器畫面。

有了 Media3,Wear OS 會自動為媒體應用程式建立持續性活動,並提供開啟應用程式的意圖,讓使用者更容易參與長時間執行的活動,例如媒體播放。