Jetpack Media3 是媒體程式庫的新園地,可讓 Android 應用程式呈現豐富的音訊和視覺體驗。Media3 提供簡單的架構,可根據裝置功能進行強大的自訂、確保可靠性及最佳化,藉此簡化碎片化帶來的複雜性。
本文將簡介主要 API,說明如何使用 Media3 實作播放和編輯用途。
播放元件
Media3 提供多種主要元件,可用於播放用途。如果您使用過先前的 Android 媒體程式庫,應該會對構成這些元件的類別很熟悉。
下圖說明這些元件在一般應用程式中的整合方式。
 
  媒體播放器
媒體播放器是應用程式的元件,可播放媒體檔案。Media3 包含下列內容:
| 課程 | 說明 | 導入注意事項 | 
|---|---|---|
| Player | Player介面定義了媒體播放器的高階傳統功能,例如播放、暫停和搜尋功能。 | 在 Media3 中, Player介面是多個元件 (包括MediaSession和MediaController) 實作或使用的常見 API。 | 
| ExoPlayer | ExoPlayer是 Media3 中Player介面的預設實作方式。 | 
媒體工作階段
媒體工作階段提供與媒體播放器互動的通用方式。這項功能可讓應用程式向外部來源宣傳媒體播放功能,並接收外部來源的播放控制要求。Media3 包含下列內容:
| 課程 | 說明 | 導入注意事項 | 
|---|---|---|
| MediaSession | 媒體工作階段可讓應用程式與音訊或影片播放器互動。向外部宣傳媒體播放功能,並接收外部來源的播放指令。 | 在 Media3 中, MediaSession需要Player才能執行指令及取得目前狀態。 | 
| MediaSessionService | MediaSessionService會在與應用程式主要Activity不同的服務中,保留媒體工作階段和相關聯的播放器,以利背景播放。 | |
| MediaController | MediaController類別通常用於從應用程式外部傳送指令,例如從其他應用程式或系統本身。這些指令會傳送至相關聯MediaSession的基礎Player。 | MediaController類別會實作Player介面,但呼叫方法時,MediaController會將指令傳送至已連線的MediaSession。Google 助理等用戶端應用程式可以使用MediaController控制已連線工作階段的播放作業。 | 
| MediaLibraryService | MediaLibraryService與MediaSessionService類似,但包含額外的 API,因此您可以將內容庫提供給用戶端應用程式。 | |
| MediaBrowser | 使用者可以透過 MediaBrowser類別瀏覽媒體應用程式的內容媒體庫,並選取要播放的項目。 | MediaBrowser類別會實作MediaController和Player介面。與MediaController類似,Android Auto 等用戶端應用程式通常會實作MediaBrowser。 | 
UI 元件
Media3 提供預設 UI 元件,可供觀看影片及控制播放。
| 課程 | 說明 | 導入注意事項 | 
|---|---|---|
| PlayerView | 預設 View,用於顯示影片和播放控制項。 | 連線至 ExoPlayer、MediaController或任何其他自訂Player。 | 
| PlayerSurface | 代表專用繪圖的 Composable, Surface用於顯示影片。 | 可連線至任何 Player,但不含播放控制項。
      僅用於算繪影格,可根據各種
      
      ContentScale類型調整大小。您可以在 Compose UI 公用程式中找到這個和其他許多可組合項。 | 
編輯元件
Media3 包含適用於媒體編輯用途的 Transformer API,包括:
- 處理音訊和影片,例如新增濾鏡和特效
- 處理特殊格式,例如 HDR 影片和慢動作影片
- 合成,例如合併多個輸入檔案
- 將最終輸出內容匯出至檔案
| 課程 | 說明 | 導入注意事項 | 
|---|---|---|
| Transformer | 使用 Transformer類別啟動及停止轉換,並檢查執行中轉換的進度更新。 | |
| Effects | Effects物件是音訊和視訊效果的集合,可套用至媒體項目。 | 在開始匯出程序前,你可以使用 ExoPlayer預覽新增至媒體項目的效果。 | 
| EditedMediaItem | EditedMediaItem代表要處理的媒體項目,以及要套用的編輯內容。 | 
簡介影片
如要瞭解 Media3 的簡介,請觀看下方影片,聽聽開發這項技術的工程師怎麼說。
