Jetpack Media3 是媒體庫的新園地,可讓 Android 應用程式顯示豐富的音訊和視覺體驗。Media3 提供簡單明瞭的架構,具備強大的自訂功能、可靠性和最佳化功能,可根據裝置功能抽象化處理片段化帶來的複雜性。
本文將介紹使用 Media3 實作播放和編輯用途的重要 API。
播放元件
Media3 提供多個重要元件,可用於播放用途。如果您曾使用過先前的 Android 媒體程式庫,應該會熟悉構成這些元件的類別。
下圖說明這些元件如何在一般應用程式中結合。
媒體播放器
媒體播放器是應用程式的元件,可播放媒體檔案。Media3 包含:
| Class | 說明 | 導入注意事項 |
|---|---|---|
Player |
Player 介面定義了媒體播放器的傳統高階功能,例如播放、暫停和跳轉。 |
在 Media3 中,Player 介面是由多個元件 (例如 MediaSession 和 MediaController) 實作或使用的通用 API。 |
ExoPlayer |
ExoPlayer 是 Media3 中 Player 介面的預設實作。 |
媒體工作階段
媒體工作階段提供與媒體播放器互動的通用方式。這可讓應用程式向外部來源宣傳媒體播放,並接收來自外部來源的播放控制項要求。Media3 包含:
| Class | 說明 | 導入注意事項 |
|---|---|---|
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 元件,可用於觀看影片及控制播放。
| Class | 說明 | 導入注意事項 |
|---|---|---|
PlayerView |
預設的 View,用於顯示影片和播放控制項。 |
連線至 ExoPlayer、MediaController 或任何其他自訂 Player。 |
PlayerSurface |
代表專用繪圖 Surface 的可組合項,用於顯示影片。 |
可連線至任何 Player,但不含播放控制項。
僅用於算繪影格,且可根據各種
ContentScale 類型調整大小。您可以在 Compose UI 公用程式中找到這個可組合項和許多其他可組合項。 |
編輯元件
Media3 包含適用於媒體編輯用途的 Transformer API,包括:
- 音訊和影片處理,例如新增濾鏡和特效
- 處理特殊格式,例如 HDR 影片和慢動作影片
- 組合,例如合併多個輸入檔案
- 將最終輸出內容匯出至檔案
| Class | 說明 | 導入注意事項 |
|---|---|---|
Transformer |
使用 Transformer 類別啟動和停止轉換,以及檢查執行中轉換的進度更新。 |
|
Effects |
Effects 物件是音訊和影片效果的集合,可套用至媒體項目。 |
您可以使用 ExoPlayer 預覽媒體項目新增的效果,再開始匯出程序。 |
EditedMediaItem |
EditedMediaItem 代表要處理的媒體項目,以及要套用的編輯內容。 |
簡介影片
觀看這部影片,瞭解 Media3 開發工程師對 Media3 的介紹: