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. Dengan pendekatan ini, Anda dapat membuat aplikasi TV baru berdasarkan pengetahuan yang sudah Anda miliki tentang cara mem-build aplikasi untuk Android, atau memperluas aplikasi yang sudah ada agar juga dapat berjalan di perangkat TV.

Namun, model interaksi pengguna untuk TV sangat 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 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 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, ExoPlayer 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 Google Play Store. Untuk mengetahui informasi selengkapnya, lihat Media3 ExoPlayer.

Menggunakan MediaSession Media3

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 lagi diperlukan 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 Pemutar.

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 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 mengupdate sesi media menggunakan status pemutar. Oleh karena itu, Anda tidak perlu menangani pemetaan dari pemain ke sesi secara manual. Hal ini membantu memastikan bahwa pengguna Anda selalu melihat informasi terbaru tentang 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 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. Dengan begitu, Anda dapat mengarahkan perintah dari sumber eksternal ke pemutar yang berfungsi memutar media Anda. Klien eksternal dapat menggunakan pengontrol media untuk memberikan 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 Anda

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

  • Pemutaran yang tidak terduga dan berkelanjutan 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 tiba-tiba saat beralih dari aplikasi, atau mematikan layar TV. Penggunaan API MediaSession memungkinkan pemutaran berkelanjutan di layanan latar belakang.

  • Interaksi terbatas dengan konten yang menghambat pengguna mengontrol pemutaran. Misalnya, kembali ke aplikasi Anda jika aplikasi tersebut 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 membuat 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, berikan perhatian ekstra untuk memberikan panduan navigasi dan memberi label elemen dengan benar, serta membantu memastikan bahwa aplikasi TV berfungsi dengan baik dengan fitur aksesibilitas seperti TalkBack. Langkah-langkah ini dapat meningkatkan pengalaman secara signifikan bagi pengguna dengan gangguan penglihatan.

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 Anda menerapkan praktik terbaik berikut.

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

Sebagai dasar pengukuran, aplikasi Anda harus mendukung Google Cast. Dengan Google Cast, Anda dapat memperluas aplikasi Android, iOS, dan Chrome untuk mengaktifkan streaming audio dan video ke Android TV, perangkat Chromecast, dan perangkat Asisten. Untuk mengetahui 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 layanan penagihan Google Play, dan menyediakan langganan yang lancar.

Membangun framework input TV

Menonton acara TV live dan konten berbasis saluran berkelanjutan lainnya adalah bagian besar 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 program TV.

Framework Input TV menyediakan metode terpadu untuk penerimaan dan pemutaran 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.