Menampilkan kartu Now Playing

Aplikasi TV harus menampilkan kartu Now Playing saat memutar media di belakang peluncur atau di latar belakang. Kartu ini memungkinkan pengguna kembali ke aplikasi yang saat ini sedang memutar media.

Framework Android menampilkan kartu Now Playing di layar utama saat ada MediaSession yang aktif. Kartu ini mencakup metadata media, seperti gambar album, judul, dan ikon aplikasi. Saat pengguna memilih kartu, sistem akan membuka aplikasi.

Anda dapat menggunakan class MediaSession untuk mengimplementasikan kartu Now Playing.

Gambar 1. Menampilkan kartu Now Playing saat memutar media di latar belakang.

Kartu Now Playing

Setelah Anda menerapkan sesi media, setel sesi ke aktif, dan meminta fokus audio, kartu Now Playing akan muncul.

Catatan: Kartu Now Playing hanya ditampilkan untuk sesi media dengan tanda FLAG_HANDLES_TRANSPORT_CONTROLS yang ditetapkan. Tanda ini tidak digunakan lagi pada API level 26. Namun, tanda ini masih dapat diperlukan di perangkat lama agar kompatibel dengan versi lama.

Kartu akan dihapus dari layar peluncur jika panggilan setActive(false) menonaktifkan sesi media atau ketika aplikasi lain memulai pemutaran media. Jika pemutaran sepenuhnya dihentikan dan tidak ada media yang aktif, segera nonaktifkan sesi media. Jika pemutaran dijeda, nonaktifkan sesi media setelah penundaan, biasanya 5 hingga 30 menit.

Memperbarui kartu

Setiap kali aplikasi Anda memperbarui status pemutaran di MediaSession, kartu Now Playing akan diperbarui untuk menampilkan status media saat ini. Untuk mempelajari cara melakukannya, lihat Mengupdate status playback.

Demikian pula, aplikasi Anda dapat memperbarui MediaMetadata untuk memberikan informasi ke kartu Now Playing tentang media saat ini, seperti judul, subtitel, dan berbagai ikon. Untuk mempelajari cara melakukannya, lihat Memperbarui metadata media.

Merespons tindakan pengguna

Saat pengguna memilih kartu Now Playing, sistem akan membuka aplikasi yang memiliki sesi tersebut. Jika aplikasi Anda menyediakan PendingIntent ke setSessionActivity(), sistem akan meluncurkan aktivitas yang Anda tentukan, seperti ditunjukkan dalam cuplikan kode berikut. Jika tidak, intent sistem default akan terbuka. Aktivitas yang Anda tentukan harus menyediakan kontrol pemutaran yang memungkinkan pengguna menjeda atau menghentikan pemutaran.

Kotlin

val pi: PendingIntent = Intent(context, MyActivity::class.java).let { intent ->
    PendingIntent.getActivity(
            context, 99 /*request code*/,
            intent,
            PendingIntent.FLAG_UPDATE_CURRENT
    )
}
session.setSessionActivity(pi)

Java

Intent intent = new Intent(context, MyActivity.class);
PendingIntent pi = PendingIntent.getActivity(context, 99 /*request code*/,
        intent, PendingIntent.FLAG_UPDATE_CURRENT);
session.setSessionActivity(pi);