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 andal berdasarkan kemampuan perangkat untuk menghilangkan kompleksitas yang muncul dengan fragmentasi.
Dokumen ini memberikan pengantar API utama untuk mengimplementasikan kasus penggunaan pemutaran dan pengeditan dengan Media3.
Komponen Pemutaran
Media3 menawarkan beberapa komponen utama untuk kasus penggunaan pemutaran. Class yang membentuk komponen ini tidak akan asing bagi Anda jika pernah menggunakan library media Android sebelumnya.
Diagram berikut menunjukkan cara komponen-komponen ini digabungkan dalam aplikasi standar.
Pemutar media
Pemutar media adalah komponen aplikasi yang memungkinkan pemutaran file media. Di Media3, Anda akan menemukan:
Kelas | Deskripsi | Catatan penerapan |
---|---|---|
Player |
Player adalah antarmuka yang menetapkan kemampuan tradisional tingkat tinggi untuk pemutar media, seperti kemampuan untuk memutar, menjeda, dan mencari.
|
Di Media3, antarmuka Player adalah API umum yang diimplementasikan
atau digunakan oleh beberapa komponen, misalnya MediaSession dan
MediaController .
|
ExoPlayer |
ExoPlayer adalah implementasi default
antarmuka Player di Media3.
|
Pelajari Media3 ExoPlayer lebih lanjut
Sesi media
Sesi media memberikan cara universal untuk berinteraksi dengan pemutar media. Hal ini memungkinkan aplikasi memberitahukan pemutaran media ke sumber eksternal dan menerima permintaan kontrol pemutaran dari sumber eksternal. Di Media3, Anda akan menemukan:
Kelas | Deskripsi | Catatan penerapan |
---|---|---|
MediaSession |
Sesi media memungkinkan aplikasi Anda berinteraksi dengan pemutar audio atau video. Iklan ini mengiklankan pemutaran media secara eksternal dan menerima perintah pemutaran dari sumber eksternal. |
Di Media3, MediaSession memerlukan Player untuk
menjalankan perintah dan mendapatkan status saat ini.
|
MediaSessionService |
MediaSessionService mengadakan sesi media dan
pemutar terkaitnya dalam layanan yang terpisah dari Activity
utama aplikasi Anda untuk memfasilitasi pemutaran di latar belakang.
|
|
MediaController |
Class MediaController umumnya digunakan untuk mengirimkan perintah
dari luar aplikasi Anda, misalnya dari aplikasi lain atau sistem itu sendiri.
Perintah dikirim ke Player yang mendasarinya dari MediaSession terkait.
|
Class MediaController mengimplementasikan antarmuka Player , tetapi saat memanggil suatu metode, perintah tersebut akan dikirim ke MediaSession yang terhubung. Aplikasi klien seperti Asisten Google dapat menggunakan MediaController untuk mengontrol pemutaran dalam sesi yang terhubung.
|
MediaLibraryService |
MediaLibraryService mirip dengan MediaSessionService , tetapi mencakup API tambahan sehingga Anda dapat menyajikan library konten ke aplikasi klien.
|
|
MediaBrowser |
Class MediaBrowser memungkinkan pengguna menjelajahi
koleksi konten aplikasi media dan memilih item yang akan diputar.
|
Class MediaBrowser mengimplementasikan antarmuka MediaController dan Player . Serupa dengan
MediaController , aplikasi klien seperti Android Auto umumnya
mengimplementasikan MediaBrowser .
|
Pelajari Media3 MediaSession lebih lanjut
Komponen UI
Media3 menyediakan komponen UI default untuk melihat video dan mengontrol pemutaran.
Kelas | Deskripsi | Catatan penerapan |
---|---|---|
PlayerView |
View default untuk menampilkan kontrol video dan pemutaran.
|
Terhubung ke ExoPlayer , MediaController , atau Player kustom lainnya.
|
Pelajari UI Media3 lebih lanjut
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
Kelas | Deskripsi | Catatan penerapan |
---|---|---|
Transformer |
Gunakan class Transformer untuk memulai dan menghentikan transformasi serta memeriksa pembaruan progres pada transformasi yang sedang berjalan.
|
|
Effects |
Objek Effects adalah kumpulan efek audio dan video untuk diterapkan ke item media.
|
|
EditedMediaItem |
EditedMediaItem mewakili item media yang akan diproses dan
pengeditan yang akan diterapkan pada item tersebut.
|
Anda dapat menggunakan ExoPlayer untuk melihat pratinjau efek yang ditambahkan ke item media sebelum memulai proses ekspor.
|
Pelajari Transformator Media3 lebih lanjut
Video pengantar
Lihat video di bawah untuk pengenalan 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