Memperluas aplikasi media ke Android TV

Android menawarkan pengalaman pengguna yang kaya dan dioptimalkan untuk aplikasi yang berjalan di perangkat layar 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 pendekatan ini, Anda dapat membuat aplikasi TV baru berdasarkan pengalaman Anda dalam mem-build aplikasi untuk Android, atau memperluas aplikasi yang sudah ada agar juga dapat berjalan di perangkat TV.

Namun, model interaksi pengguna untuk TV secara substansial berbeda dengan perangkat ponsel dan tablet. Agar aplikasi Anda berhasil digunakan di perangkat TV, Anda harus mendesain tata letak baru yang dapat dipahami dengan jelas dari jarak tiga meter (10 kaki), dan menyediakan navigasi yang dapat berfungsi hanya dengan menggunakan tombol arah dan tombol pilih.

Untuk informasi selengkapnya tentang pertimbangan seperti cara menangani pengontrol hardware TV, mem-build tata letak TV, dan membuat navigasi TV, lihat Mem-build 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, dan komponen yang menangani buffering media.

Anda dapat menyesuaikan dan memperluas ExoPlayer, dan dapat diupdate melalui update aplikasi Play Store. Untuk 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 diperlukannya lagi konektor antarkomponen.

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

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

Untuk menciptakan pengalaman terbaik bagi pengguna akhir aplikasi media, Anda perlu menerapkan 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. Tindakan ini membantu memastikan bahwa pengguna Anda selalu melihat informasi terbaru pada media yang diputar, termasuk di kartu Now Playing.

Mengontrol dan memberitahukan pemutaran

Di Media3, pemutar default adalah class ExoPlayer, yang mengimplementasikan antarmuka Player. Menghubungkan sesi media ke pemutar memungkinkan aplikasi mengumumkan 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. Dengan cara ini, Anda dapat 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 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 aplikasi sedang memutar media, dan platform dapat memberi tahu aplikasi bahwa pemutaran dapat dihentikan.

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

  • Interaksi yang dibatasi dengan konten yang menghambat pengguna mengontrol pemutaran. Misalnya, kembali ke aplikasi jika aplikasi memutar musik 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 engagement, cara memungkinkan pengguna menemukan konten, serta cara mem-build game dan layanan input TV.

Aksesibilitas TV

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

Misalnya, perhatikan dengan cermat untuk memberikan panduan navigasi dan memberi label pada elemen dengan benar, serta membantu 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 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 memberikan cara universal dalam berinteraksi dengan pemutar audio atau video. Untuk mengetahui informasi selengkapnya tentang cara menerapkannya, lihat Menggunakan MediaSession Media3.

Sebagai dasar pengukuran, aplikasi Anda harus mendukung Google Cast. Dengan API ini, Anda dapat 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 berbagai 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 dengan lebih mudah dengan mengintegrasikan penagihan Google Play, dan menyediakan langganan tanpa hambatan.

Mem-build 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 memublikasikan konten video atau musik di panduan pemrograman TV.

TV Input Framework 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 informasi lebih lanjut, lihat Mem-build layanan input TV.