Pengantar Jetpack Media3

Jetpack Media3 adalah tempat baru untuk galeri media yang memungkinkan aplikasi Android menampilkan pengalaman audio dan visual yang kaya. Media3 menawarkan arsitektur yang sederhana dengan penyesuaian, keandalan, dan pengoptimalan yang canggih berdasarkan kemampuan perangkat untuk mengabstraksi kompleksitas yang muncul akibat 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 akan Anda kenal jika Anda pernah menggunakan library media Android sebelumnya.

Diagram berikut menunjukkan cara komponen ini digabungkan dalam aplikasi standar.

Berbagai komponen aplikasi media yang menggunakan Media3 terhubung
  bersama dalam beberapa cara sederhana karena berbagi antarmuka
   dan class.
Gambar 1: Komponen aplikasi media

Pemutar media

Pemutar media adalah komponen aplikasi Anda yang memungkinkan pemutaran file media. Di Media3, Anda akan menemukan:

Class Deskripsi Catatan penerapan
Player Player adalah antarmuka yang menentukan kemampuan tingkat tinggi tradisional untuk pemutar media, seperti kemampuan untuk memutar, menjeda, dan mencari. Di Media3, antarmuka Player adalah API umum yang diimplementasikan atau digunakan oleh beberapa komponen, termasuk MediaSession dan MediaController, misalnya.
ExoPlayer ExoPlayer adalah implementasi default antarmuka Player di Media3.

Pelajari lebih lanjut Media3 ExoPlayer

Sesi media

Sesi media menyediakan 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:

Class Deskripsi Catatan penerapan
MediaSession Sesi media memungkinkan aplikasi Anda berinteraksi dengan pemutar audio atau video. Sesi ini memberitahukan 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 menyimpan 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 mengirim perintah dari luar aplikasi Anda, misalnya, dari aplikasi lain atau sistem itu sendiri. Perintah dikirim ke Player yang mendasari MediaSession terkait. Class MediaController mengimplementasikan antarmuka Player, tetapi saat memanggil metode, MediaController akan mengirim perintah yang 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 menyertakan 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 MediaSession Media3 lebih lanjut

Komponen UI

Media3 menyediakan komponen UI default untuk melihat video dan mengontrol pemutaran.

Class Deskripsi Catatan penerapan
PlayerView View default untuk menampilkan video dan kontrol pemutaran. Terhubung ke ExoPlayer, MediaController, atau Player kustom lainnya.
PlayerSurface Composable yang mewakili gambar khusus Surface untuk menampilkan video. Terhubung ke Player mana 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 Compose UI.

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 slow-motion
  • Komposisi, seperti menggabungkan beberapa file input
  • Mengekspor output akhir ke file
Class Deskripsi Catatan penerapan
Transformer Gunakan class Transformer untuk memulai dan menghentikan transformasi serta memeriksa update progres pada transformasi yang sedang berjalan.
Effects Objek Effects adalah kumpulan efek audio dan video yang akan diterapkan ke item media. Anda dapat menggunakan ExoPlayer untuk melihat pratinjau efek yang ditambahkan ke item media sebelum memulai proses ekspor.
EditedMediaItem EditedMediaItem mewakili item media yang akan diproses dan editan yang akan diterapkan ke item tersebut.

Pelajari lebih lanjut Transformator Media3

Video pengantar

Tonton video ini untuk pengantar Media3 dari engineer yang membuatnya: