Pengguna yang menonton konten di perangkat TV dapat memutuskan untuk beralih ke peluncur TV kapan saja. Jika mereka beralih ke peluncur selagi menggunakan aplikasi pemutaran TV, secara default aplikasi akan dijeda. Karena pengguna tidak secara eksplisit meminta jeda pemutaran, perilaku default tersebut mungkin terasa mendadak dan tidak terduga. Tutorial ini menjelaskan cara mengaktifkan pemutaran di latar belakang pada aplikasi Anda, yang akan memberikan pengalaman pengguna yang lebih baik.
Metode requestVisibleBehind()
telah dihentikan di API level 26.
akan dihapus pada rilis mendatang. Fungsionalitas yang dideskripsikan di halaman ini tidak didukung pada Android versi 8.0 dan yang lebih baru.
Meminta pemutaran di latar belakang
Biasanya, jika pengguna mengklik Beranda untuk menampilkan peluncur TV, aktivitas akan dijeda. Namun, aplikasi dapat meminta pemutaran di latar belakang, yang memungkinkan aktivitas untuk terus diputar di belakang peluncur TV.
Untuk meminta pemutaran di latar belakang, panggil requestVisibleBehind()
.
Pastikan untuk membersihkan resource media jika aktivitas tersebut tidak terlihat lagi. Misalnya, Anda harus mengosongkan resource media jika requestVisibleBehind()
menampilkan false
untuk menunjukkan bahwa permintaan gagal, atau jika sistem memanggil penggantian onVisibleBehindCanceled()
.
Kotlin
override fun onPause() { super.onPause() if (videoView?.isPlaying == true) { // Argument equals true to notify the system that the activity // wishes to be visible behind other translucent activities if (!requestVisibleBehind(true)) { // App-specific method to stop playback and release resources // because call to requestVisibleBehind(true) failed stopPlayback() } } else { // Argument equals false because the activity is not playing requestVisibleBehind(false) } } override fun onVisibleBehindCanceled() { // App-specific method to stop playback and release resources stopPlayback() super.onVisibleBehindCanceled() }
Java
@Override public void onPause() { super.onPause(); if (videoView.isPlaying()) { // Argument equals true to notify the system that the activity // wishes to be visible behind other translucent activities if (! requestVisibleBehind(true)) { // App-specific method to stop playback and release resources // because call to requestVisibleBehind(true) failed stopPlayback(); } } else { // Argument equals false because the activity is not playing requestVisibleBehind(false); } } @Override public void onVisibleBehindCanceled() { // App-specific method to stop playback and release resources stopPlayback(); super.onVisibleBehindCanceled(); }