Jetpack Media3 簡介

Jetpack Media3 是媒體程式庫的新園地,可讓 Android 應用程式呈現豐富的音訊和視覺體驗。Media3 提供簡單的架構,可根據裝置功能進行強大的自訂、確保可靠性及最佳化,藉此簡化碎片化帶來的複雜性。

本文將簡介主要 API,說明如何使用 Media3 實作播放和編輯用途。

播放元件

Media3 提供多種主要元件,可用於播放用途。如果您使用過先前的 Android 媒體程式庫,應該會對構成這些元件的類別很熟悉。

下圖說明這些元件在一般應用程式中的整合方式。

使用 Media3 的媒體應用程式,其不同元件會共用介面和類別,因此能以幾種簡單方式連結在一起。
圖 1:媒體應用程式元件

媒體播放器

媒體播放器是應用程式的元件,可播放媒體檔案。Media3 包含下列內容:

課程 說明 導入注意事項
Player Player 介面定義了媒體播放器的高階傳統功能,例如播放、暫停和搜尋功能。 在 Media3 中,Player 介面是多個元件 (包括 MediaSessionMediaController) 實作或使用的常見 API。
ExoPlayer ExoPlayer 是 Media3 中 Player 介面的預設實作方式。

進一步瞭解 Media3 ExoPlayer

媒體工作階段

媒體工作階段提供與媒體播放器互動的通用方式。這項功能可讓應用程式向外部來源宣傳媒體播放功能,並接收外部來源的播放控制要求。Media3 包含下列內容:

課程 說明 導入注意事項
MediaSession 媒體工作階段可讓應用程式與音訊或影片播放器互動。向外部宣傳媒體播放功能,並接收外部來源的播放指令。 在 Media3 中,MediaSession 需要 Player 才能執行指令及取得目前狀態。
MediaSessionService MediaSessionService 會在與應用程式主要 Activity 不同的服務中,保留媒體工作階段和相關聯的播放器,以利背景播放。
MediaController MediaController 類別通常用於從應用程式外部傳送指令,例如從其他應用程式或系統本身。這些指令會傳送至相關聯 MediaSession 的基礎 Player MediaController 類別會實作 Player 介面,但呼叫方法時,MediaController 會將指令傳送至已連線的 MediaSession。Google 助理等用戶端應用程式可以使用 MediaController 控制已連線工作階段的播放作業。
MediaLibraryService MediaLibraryServiceMediaSessionService 類似,但包含額外的 API,因此您可以將內容庫提供給用戶端應用程式。
MediaBrowser 使用者可以透過 MediaBrowser 類別瀏覽媒體應用程式的內容媒體庫,並選取要播放的項目。 MediaBrowser 類別會實作 MediaControllerPlayer 介面。與 MediaController 類似,Android Auto 等用戶端應用程式通常會實作 MediaBrowser

進一步瞭解 Media3 MediaSession

UI 元件

Media3 提供預設 UI 元件,可供觀看影片及控制播放。

課程 說明 導入注意事項
PlayerView 預設 View,用於顯示影片和播放控制項。 連線至 ExoPlayerMediaController 或任何其他自訂 Player
PlayerSurface 代表專用繪圖的 Composable, Surface 用於顯示影片。 可連線至任何 Player,但不含播放控制項。 僅用於算繪影格,可根據各種 ContentScale類型調整大小。您可以在 Compose UI 公用程式中找到這個和其他許多可組合項。

進一步瞭解 Media3 UI

編輯元件

Media3 包含適用於媒體編輯用途的 Transformer API,包括:

  • 處理音訊和影片,例如新增濾鏡和特效
  • 處理特殊格式,例如 HDR 影片和慢動作影片
  • 合成,例如合併多個輸入檔案
  • 將最終輸出內容匯出至檔案
課程 說明 導入注意事項
Transformer 使用 Transformer 類別啟動及停止轉換,並檢查執行中轉換的進度更新。
Effects Effects 物件是音訊和視訊效果的集合,可套用至媒體項目。 在開始匯出程序前,你可以使用 ExoPlayer 預覽新增至媒體項目的效果。
EditedMediaItem EditedMediaItem 代表要處理的媒體項目,以及要套用的編輯內容。

進一步瞭解 Media3 Transformer

簡介影片

如要瞭解 Media3 的簡介,請觀看下方影片,聽聽開發這項技術的工程師怎麼說。