Memperluas aplikasi media ke Android TV

Android menawarkan pengalaman pengguna yang kaya dan dioptimalkan untuk aplikasi yang berjalan di perangkat berlayar besar, seperti televisi beresolusi 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. Dengan demikian, Anda bisa membuat aplikasi TV baru berdasarkan pengalaman Anda tentang membuat aplikasi untuk Android, atau mengembangkan aplikasi yang sudah ada agar bisa berjalan di perangkat TV juga.

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

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

Menggunakan Media3 ExoPlayer

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

Dibandingkan dengan MediaPlayer API Android, API ini menambahkan 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 ExoPlayer dapat diupdate melalui update aplikasi Play Store. Untuk mengetahui informasi selengkapnya, lihat Media3 ExoPlayer.

Menggunakan 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 dari API media sebelumnya adalah tidak ada lagi kebutuhan akan konektor antar-komponen.

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

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

Untuk membuat pengalaman terbaik bagi pengguna akhir aplikasi media, Anda harus mengimplementasikan MediaSession. Untuk melakukannya, 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 mengupdate sesi media menggunakan status pemutar. Dengan demikian, Anda tidak perlu menangani pemetaan dari pemutar ke sesi secara manual. Hal ini membantu memastikan bahwa pengguna selalu melihat informasi terbaru tentang media yang diputar, termasuk di kartu Sedang Diputar.

Mengontrol dan memberitahukan pemutaran

Di Media3, pemutar default adalah class ExoPlayer, yang mengimplementasikan antarmuka Player. Menghubungkan sesi media ke pemutar memungkinkan aplikasi memberitahukan 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. Sesi ini memungkinkan Anda merutekan perintah dari sumber eksternal ke pemutar yang melakukan tugas 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 berkelanjutan saat mematikan TV atau mengganti input TV. Hal ini juga menyebabkan konsumsi energi yang tinggi untuk hardware TV. Dengan MediaSession, aplikasi Anda dapat memberi tahu platform bahwa aplikasi tersebut sedang memutar media, dan platform dapat memberi tahu aplikasi bahwa pemutaran dapat dihentikan.

  • Pemutaran musik berhenti secara tiba-tiba saat beralih dari aplikasi, atau mematikan layar TV. Menggunakan MediaSession API memungkinkan pemutaran berkelanjutan dalam layanan latar belakang.

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

Pertimbangan Lebih Lanjut

Saat memperluas aplikasi media ke Android untuk TV, Anda harus 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 membantu pengguna dengan penglihatan rendah, penting untuk mendukung aksesibilitas dalam perjalanan penemuan konten untuk aplikasi TV.

Misalnya, berikan perhatian ekstra untuk memberikan panduan navigasi dan memberi label yang tepat pada elemen, serta bantu memastikan aplikasi TV berfungsi dengan baik dengan fitur aksesibilitas seperti TalkBack. Langkah-langkah ini dapat meningkatkan pengalaman pengguna dengan gangguan penglihatan secara signifikan.

Langkah pertama untuk meningkatkan aksesibilitas adalah kesadaran. Untuk mengetahui informasi selengkapnya tentang penskalaan teks, tata letak keyboard, dan deskripsi audio, lihat referensi 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 harus menggunakan MediaSession, untuk menyediakan cara universal dalam berinteraksi dengan pemutar audio atau video. Untuk mengetahui informasi selengkapnya tentang cara mengimplementasikannya, lihat Menggunakan Media3 MediaSession.

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

Anda juga dapat membantu pengguna:

  • Menemukan konten di berbagai platform dengan menawarkan feed tindakan media, atau mengintegrasikan Tonton Berikutnya.

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

  • Membayar lebih mudah dengan mengintegrasikan penagihan Google Play, dan menyediakan langganan tanpa gangguan.

Membuat framework input TV

Menonton acara TV live dan konten kontinu berbasis saluran lainnya adalah bagian penting dari pengalaman TV. Pengguna terbiasa memilih dan menonton acara di TV dengan menjelajahi saluran. Framework Input TV membuat saluran untuk menayangkan konten video 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, tuner bawaan, dan sumber software, seperti streaming video melalui internet. Untuk mengetahui informasi selengkapnya, lihat Membuat layanan input TV.