Jetpack Media3 adalah tempat baru untuk library media yang memungkinkan aplikasi Android menampilkan pengalaman audio dan visual yang kaya. Media3 menawarkan arsitektur sederhana dengan penyesuaian, keandalan, dan pengoptimalan yang canggih berdasarkan kemampuan perangkat untuk mengabstraksi kompleksitas yang muncul akibat fragmentasi.
Dokumen ini memberikan pengantar tentang API utama untuk menerapkan kasus penggunaan pemutaran dan pengeditan dengan Media3.
Komponen Pemutaran
Media3 menawarkan beberapa komponen utama untuk kasus penggunaan pemutaran. Class yang membentuk komponen ini akan terasa familiar bagi Anda jika Anda pernah menggunakan library media Android sebelumnya.
Diagram berikut menunjukkan cara komponen ini digabungkan dalam aplikasi standar.
 
  Pemutar media
Pemutar media adalah komponen aplikasi Anda yang memungkinkan pemutaran file media. Di Media3, Anda akan menemukan:
| Class | Deskripsi | Catatan penerapan | 
|---|---|---|
| Player | Playeradalah antarmuka yang menentukan kemampuan tingkat tinggi tradisional
      untuk pemutar media, seperti kemampuan untuk memutar, menjeda,
      dan mencari. | Di Media3, antarmuka Playeradalah API umum yang diterapkan
      atau digunakan oleh beberapa komponen, termasukMediaSessiondanMediaController, misalnya. | 
| ExoPlayer | ExoPlayeradalah implementasi default
      antarmukaPlayerdi Media3. | 
Pelajari lebih lanjut Media3 ExoPlayer
Sesi media
Sesi media menyediakan cara universal untuk berinteraksi dengan pemutar media. Hal ini memungkinkan aplikasi mengiklankan pemutaran media ke sumber eksternal dan menerima permintaan kontrol pemutaran dari sumber eksternal. Di Media3, Anda akan menemukan:
| Class | Deskripsi | Catatan penerapan | 
|---|---|---|
| MediaSession | Sesi media memungkinkan aplikasi Anda berinteraksi dengan pemutar audio atau video. Mereka mengiklankan pemutaran media secara eksternal dan menerima perintah pemutaran dari sumber eksternal. | Di Media3, MediaSessionmemerlukanPlayeruntuk
      menjalankan perintah dan mendapatkan status saat ini. | 
| MediaSessionService | MediaSessionServicemenyimpan sesi media dan pemutar terkaitnya dalam layanan yang terpisah dariActivityutama aplikasi Anda untuk memfasilitasi pemutaran di latar belakang. | |
| MediaController | Class MediaControllerumumnya digunakan untuk mengirim perintah
      dari luar aplikasi Anda, misalnya, dari aplikasi lain atau sistem itu sendiri.
      Perintah dikirim kePlayeryang mendasariMediaSessionterkait. | Class MediaControllermengimplementasikan antarmukaPlayer, tetapi saat memanggil metode,MediaControllermengirim perintah yang dikirim keMediaSessionyang terhubung. Aplikasi klien seperti Asisten Google
      dapat menggunakanMediaControlleruntuk mengontrol pemutaran di sesi
      yang terhubung. | 
| MediaLibraryService | MediaLibraryServicemirip denganMediaSessionService, kecuali bahwaMediaLibraryServicemenyertakan API
      tambahan sehingga Anda dapat menayangkan koleksi konten ke aplikasi klien. | |
| MediaBrowser | Class MediaBrowsermemungkinkan pengguna menjelajahi
      koleksi konten aplikasi media dan memilih item yang akan diputar. | Class MediaBrowsermengimplementasikan antarmukaMediaControllerdanPlayer. Mirip denganMediaController, aplikasi klien seperti Android Auto umumnya
      menerapkanMediaBrowser. | 
Pelajari lebih lanjut MediaSession Media3
Komponen UI
Media3 menyediakan komponen UI default untuk melihat video dan mengontrol pemutaran.
| Class | Deskripsi | Catatan penerapan | 
|---|---|---|
| PlayerView | Viewdefault untuk menampilkan kontrol video dan pemutaran. | Menghubungkan ke ExoPlayer,MediaController, atauPlayerkustom lainnya. | 
| PlayerSurface | Composable yang merepresentasikan gambar khusus Surfaceuntuk menampilkan video. | Terhubung ke Playerapa pun, tetapi tidak berisi kontrol pemutaran.
      Hanya digunakan untuk merender frame dan dapat diubah ukurannya sesuai dengan berbagai jenis
      
      ContentScale. Composable ini dan banyak composable lainnya dapat
      ditemukan di utilitas UI Compose. | 
Pelajari lebih lanjut UI Media3
Mengedit komponen
Media3 menyertakan Transformer API untuk kasus penggunaan pengeditan media, termasuk:
- Pemrosesan audio dan video, seperti menambahkan filter dan efek
- Menangani format khusus, seperti video HDR dan video gerak lambat
- Komposisi, seperti menggabungkan beberapa file input
- Mengekspor output akhir ke file
| Class | Deskripsi | Catatan penerapan | 
|---|---|---|
| Transformer | Gunakan class Transformeruntuk memulai dan menghentikan transformasi
      serta untuk memeriksa update progres pada transformasi yang sedang berjalan. | |
| Effects | Objek Effectsadalah kumpulan efek audio dan video
      untuk diterapkan ke item media. | Anda dapat menggunakan ExoPlayeruntuk melihat pratinjau efek yang ditambahkan ke item media
      sebelum memulai proses ekspor. | 
| EditedMediaItem | EditedMediaItemmerepresentasikan item media yang akan diproses dan
      pengeditan yang akan diterapkan padanya. | 
Pelajari lebih lanjut Transformator Media3
Video pengantar
Tonton video di bawah ini untuk melihat pengantar Media3 dari engineer yang membuatnya.
Link penting
- Pusat Developer Media
- Dokumen ExoPlayer
- Panduan migrasi
- AndroidX Media3 di GitHub
- Aplikasi contoh sesi media Media3
- Aplikasi contoh Universal Android Music Player
