Memperluas aplikasi media ke Android TV

Android menawarkan pengalaman pengguna yang kaya dan dioptimalkan untuk aplikasi yang berjalan di perangkat layar besar, seperti televisi definisi tinggi. Anda dapat memperluas audiens aplikasi dengan mengembangkannya untuk Android TV. Dokumen ini memberikan panduan tentang cara melakukannya secara efektif.

Membuat aplikasi TV

Aplikasi TV menggunakan struktur yang sama dengan ponsel dan tablet. Pendekatan ini berarti Anda dapat membuat aplikasi TV baru berdasarkan hal yang sudah Anda ketahui tentang membangun aplikasi untuk Android, atau memperluas aplikasi yang sudah ada agar juga berjalan di perangkat TV.

Namun, model interaksi pengguna untuk TV jauh berbeda dengan perangkat ponsel dan tablet. Agar aplikasi Anda berhasil di perangkat TV, Anda harus mendesain tata letak baru yang dapat dipahami dengan jelas dari jarak 3 meter, dan menyediakan navigasi yang dapat berfungsi hanya dengan tombol arah dan tombol pilih.

Untuk informasi selengkapnya tentang pertimbangan seperti cara menangani pengontrol hardware TV, membuat tata letak TV, dan membuat navigasi TV, lihat Membangun aplikasi TV.

Menggunakan Media3 ExoPlayer

Jetpack Media3 menyediakan antarmuka Player yang menentukan fitur dasar seperti kemampuan untuk memutar, menjeda, mencari, dan menampilkan informasi jalur. ExoPlayer adalah implementasi default dari antarmuka ini di Media3.

Dibandingkan dengan MediaPlayer API Android, API ini memberikan kemudahan tambahan seperti dukungan untuk beberapa protokol streaming, perender audio dan video default, serta komponen yang menangani buffering media.

Anda dapat menyesuaikan dan memperluas ExoPlayer, dan dapat diupdate melalui update aplikasi Play Store. Untuk mengetahui informasi selengkapnya, lihat Media3 ExoPlayer.

Gunakan Media3 MediaSession

Sesi media menyediakan cara universal bagi sistem untuk berinteraksi dengan pemutar audio atau video aplikasi Anda. Salah satu karakteristik utama yang membedakan Media3 dengan API media sebelumnya adalah tidak diperlukan lagi konektor antarkomponen.

Class MediaSession baru mengambil class apa pun yang mengimplementasikan antarmuka Pemutar. ExoPlayer dan MediaController adalah class yang mengimplementasikan antarmuka tersebut. Hal ini memfasilitasi interaksi yang jauh lebih sederhana antar-komponen. Untuk informasi selengkapnya, lihat Antarmuka Pemutar.

Untuk mengetahui informasi selengkapnya tentang membuat aplikasi pemutaran media, lihat Membuat pemutar media dasar menggunakan ExoPlayer.

Untuk menciptakan pengalaman terbaik bagi pengguna akhir aplikasi media, Anda harus mengimplementasikan MediaSession. Untuk melakukannya, lakukan inisialisasi Player dan berikan ke MediaSession.Builder seperti ini:

Kotlin

val player = ExoPlayer.Builder(context).build()
val mediaSession = MediaSession.Builder(context, player).build()

Java

ExoPlayer player = new ExoPlayer.Builder(context).build();
MediaSession mediaSession = new MediaSession.Builder(context, player).build();

Penanganan status otomatis

Library Media3 otomatis memperbarui sesi media menggunakan status pemutar. Dengan demikian, Anda tidak perlu menangani pemetaan dari pemain ke sesi secara manual. Hal ini membantu memastikan pengguna selalu melihat informasi terbaru di media yang diputar, termasuk di kartu Now Playing.

Mengontrol dan memberitahukan pemutaran

Di Media3, pemutar default-nya adalah class ExoPlayer, yang mengimplementasikan antarmuka Pemain. Menghubungkan sesi media ke pemutar memungkinkan aplikasi mengiklankan pemutaran media secara eksternal dan menerima perintah pemutaran dari sumber eksternal. Sesi media mendelegasikan perintah ini ke pemutar aplikasi media.

Sesi media adalah kunci untuk mengontrol pemutaran. Hal ini memungkinkan Anda mengarahkan perintah dari sumber eksternal ke pemutar yang memutar media. Klien eksternal dapat menggunakan pengontrol media untuk mengeluarkan perintah pemutaran ke aplikasi media Anda. Perintah ini diterima oleh sesi media Anda, yang pada akhirnya mendelegasikan perintah ke pemutar media.

Untuk mengetahui informasi selengkapnya tentang pemutaran, seperti cara menyesuaikan perilaku perintah pemutaran, lihat Mengontrol dan memberitahukan pemutaran menggunakan MediaSession.

Menghindari gangguan di aplikasi

Dengan menggunakan MediaSession, Anda dapat menghindari gangguan yang tidak perlu seperti:

  • Pemutaran yang tidak terduga dan berlanjut saat mematikan TV atau beralih input TV. Hal ini juga menyebabkan konsumsi energi yang tinggi untuk hardware TV. Dengan MediaSession, aplikasi Anda dapat memberi tahu platform bahwa media sedang diputar, dan platform dapat memberi tahu aplikasi bahwa pemutaran dapat berhenti.

  • Pemutaran musik berhenti tiba-tiba saat keluar dari aplikasi, atau menonaktifkan layar TV. Penggunaan MediaSession API memungkinkan pemutaran berkelanjutan di layanan latar belakang.

  • Interaksi yang dibatasi dengan konten yang menghambat pengguna mengontrol pemutaran. Misalnya, kembali ke aplikasi Anda jika musik diputar di latar belakang, atau mendukung perintah suara. Dengan MediaSession di aplikasi Anda, pengguna dapat menggunakan perintah suara untuk mencari dan melewati lagu atau episode.

Pertimbangan Lebih Lanjut

Saat memperluas aplikasi media ke Android untuk TV, Anda perlu mempertimbangkan masalah aksesibilitas, cara mendorong interaksi, cara memungkinkan pengguna menemukan konten, serta cara membuat game dan layanan input TV.

Aksesibilitas TV

Meskipun teknologi pendukung dapat dan sangat membantu pengguna dengan gangguan penglihatan, penting untuk mendukung aksesibilitas dalam proses penemuan konten untuk aplikasi TV.

Misalnya, berikan perhatian lebih untuk menyediakan panduan navigasi dan melabeli elemen dengan benar, serta membantu memastikan aplikasi TV berfungsi baik dengan fitur aksesibilitas seperti TalkBack. Langkah-langkah ini dapat meningkatkan pengalaman secara signifikan bagi pengguna yang memiliki gangguan penglihatan.

Langkah pertama menuju peningkatan aksesibilitas adalah awareness. Untuk mengetahui informasi selengkapnya tentang penskalaan teks, tata letak keyboard, dan deskripsi audio, lihat resource aksesibilitas.

Praktik terbaik untuk mendorong interaksi di Google TV

Semua aplikasi yang dibuat untuk Android TV berfungsi di perangkat yang menjalankan Google TV. Untuk memberikan pengalaman pengguna terbaik di Google TV, sebaiknya terapkan praktik terbaik berikut.

Anda perlu menggunakan MediaSession, untuk menyediakan cara universal untuk berinteraksi dengan pemutar audio atau video. Untuk informasi selengkapnya tentang cara menerapkannya, lihat Menggunakan Media3 MediaSession.

Sebagai dasar pengukuran, aplikasi Anda harus mendukung Google Cast. API ini memungkinkan Anda memperluas aplikasi Android, iOS, dan Chrome untuk mengaktifkan streaming audio dan video ke Android TV serta perangkat Chromecast dan perangkat Asisten. Untuk informasi selengkapnya, lihat dokumentasi Google Cast.

Anda juga dapat membantu pengguna:

  • Temukan konten di seluruh platform dengan menawarkan feed tindakan media, atau mengintegrasikan Tonton Berikutnya.

  • Manfaatkan suara dan interaksi dengan mendukung penautan akun dan sinkronisasi hak, menawarkan transmisi suara, dan mengaktifkan Cast Connect.

  • Bayar lebih mudah dengan mengintegrasikan layanan penagihan Google Play, dan menyediakan langganan tanpa kendala.

Membuat framework input TV

Menonton acara TV live dan konten berkelanjutan berbasis channel lainnya adalah bagian penting dari pengalaman TV. Pengguna terbiasa memilih dan menonton acara di TV dengan menjelajahi saluran. Framework Input TV membuat saluran untuk memublikasikan konten ideo atau musik di panduan pemrograman TV.

Framework Input TV menyediakan metode terpadu untuk menerima dan memutar konten video live dari sumber hardware, seperti port HDMI dan tuner bawaan, serta sumber software, seperti video yang di-streaming melalui internet. Untuk mengetahui informasi selengkapnya, lihat Membuat layanan input TV.