Kerangka Masukan TV

Ikon HAL TV Android

Android TV Input Framework (TIF) menyederhanakan pengiriman konten langsung ke Android TV. Android TIF menyediakan API standar bagi produsen untuk membuat modul input guna mengontrol Android TV, dan memungkinkan penelusuran dan rekomendasi TV langsung melalui metadata yang diterbitkan oleh Input TV.

Kerangka kerja ini tidak bertujuan untuk menerapkan standar TV atau persyaratan regional, namun memudahkan produsen perangkat untuk memenuhi standar siaran TV digital regional tanpa penerapan ulang. Dokumentasi di bagian ini mungkin juga berguna bagi pengembang aplikasi pihak ketiga yang ingin membuat Input TV khusus.

Komponen

Implementasi Kerangka Input TV Android mencakup Manajer Input TV. TIF berfungsi dengan Aplikasi TV, aplikasi sistem yang tidak dapat digantikan oleh aplikasi pihak ketiga, untuk mengakses saluran bawaan dan penyetel IP. Aplikasi TV berkomunikasi dengan modul Input TV yang disediakan oleh produsen perangkat atau pihak lain melalui Manajer Input TV.

Kerangka Input TV terdiri dari:

  • Penyedia TV ( com.android.providers.tv.TvProvider ): database saluran, program, dan izin terkait
  • Aplikasi TV ( com.android.tv.TvActivity ): aplikasi yang menangani interaksi pengguna
  • Manajer Input TV ( android.media.tv.TvInputManager ): memungkinkan Input TV berkomunikasi dengan Aplikasi TV
  • Input TV: aplikasi yang mewakili tuner fisik atau virtual dan port input
  • Input TV HAL ( modul tv_input ): definisi perangkat keras yang memungkinkan Input TV sistem mengakses perangkat keras khusus TV saat diimplementasikan
  • Kontrol Orang Tua: teknologi yang memungkinkan pemblokiran saluran dan program
  • HDMI-CEC: teknologi yang memungkinkan kendali jarak jauh berbagai perangkat melalui HDMI
  • Kerangka Tuner: kerangka kerja untuk masukan TV Tuner Bawaan
  • MediaCas: kerangka kerja untuk akses bersyarat
  • Tuner Resource Manager: layanan untuk mengelola sumber daya perangkat keras untuk input TV, MediaCas, dan input Tuner Bawaan

Komponen-komponen ini dibahas secara rinci di bawah ini. Lihat diagram berikut untuk tampilan detail arsitektur Kerangka Input TV Android.

Ikhtisar arsitektur Android TIF
Gambar 1. Arsitektur Kerangka Input TV Android (TIF).

Mengalir

Berikut adalah cara arsitektur diterapkan:

  1. Pengguna melihat dan berinteraksi dengan Aplikasi TV, aplikasi sistem yang tidak dapat digantikan oleh aplikasi pihak ketiga.
  2. Aplikasi TV menampilkan konten AV dari Input TV.
  3. Aplikasi TV tidak dapat berbicara langsung dengan Input TV. Manajer Input TV mengidentifikasi status Input TV untuk Aplikasi TV. Lihat Manajer Input TV di bawah untuk rincian lebih lanjut tentang batasan ini.

Izin

  • Hanya Input TV signatureOrSystem dan Aplikasi TV yang memiliki akses penuh ke database Penyedia TV dan dapat menerima KeyEvents.
  • Hanya Input TV sistem yang dapat mengakses HAL Input TV melalui layanan Manajer Input TV. Input TV diakses satu-ke-satu melalui sesi TV Input Manager.
  • Input TV pihak ketiga memiliki akses paket terkunci ke database Penyedia TV dan hanya dapat BACA/TULIS untuk baris paket yang cocok.
  • Input TV pihak ketiga dapat menampilkan kontennya sendiri atau konten dari input TV passthrough produsen perangkat, seperti HDMI1. Mereka tidak dapat menampilkan konten dari input TV non-passthrough, seperti tuner internal atau IPTV.
  • Izin TV_INPUT_HARDWARE untuk aplikasi Input TV perangkat keras, memberi sinyal kepada Layanan Manajer Input TV untuk memberi tahu layanan Input TV saat boot untuk memanggil Layanan Manajer Input TV dan menambahkan Input TV-nya. Izin ini memungkinkan aplikasi Input TV perangkat keras untuk mendukung beberapa Input TV per layanan Input TV, serta dapat secara dinamis menambah dan menghapus Input TV yang didukungnya.

Penyedia TV

Basis data Penyedia TV menyimpan saluran dan program dari Input TV. Penyedia TV juga menerbitkan dan mengelola izin terkait sehingga Input TV hanya dapat melihat rekamannya sendiri. Misalnya, Input TV tertentu hanya dapat melihat saluran dan program yang disediakannya dan dilarang mengakses saluran dan program Input TV lainnya.

Penyedia TV memetakan "genre siaran" ke "genre kanonik" secara internal. Input TV bertanggung jawab untuk mengisi "genre siaran" dengan nilai dalam standar siaran yang mendasarinya, dan bidang "genre kanonik" akan secara otomatis diisi dengan genre terkait yang benar dari android.provider.TvContract.Genres . Misalnya, dengan standar siaran ATSC A/65 dan program dengan genre 0x25 (artinya “Olahraga”), Input TV akan mengisi “genre siaran” dengan String “Olahraga” dan Penyedia TV akan mengisi bidang “genre kanonik” dengan nilai yang dipetakan android.provider.TvContract.Genres.SPORTS .

Lihat diagram di bawah untuk tampilan detail Penyedia TV.

Penyedia TV Android
Gambar 2. Penyedia Android TV

Hanya aplikasi di partisi sistem yang memiliki hak istimewa yang dapat membaca seluruh database Penyedia TV.

Input TV passthrough tidak menyimpan saluran dan program.

Selain kolom standar untuk saluran dan program, database Penyedia TV juga menawarkan kolom tipe BLOB, COLUMN_INTERNAL_PROVIDER_DATA , di setiap tabel yang dapat digunakan oleh Input TV untuk menyimpan data arbitrer. Data BLOB tersebut dapat mencakup informasi khusus, seperti frekuensi tuner terkait, dan dapat disediakan dalam buffer protokol atau bentuk lainnya. Bidang yang Dapat Dicari tersedia untuk membuat saluran tertentu tidak tersedia dalam pencarian (misalnya untuk memenuhi persyaratan spesifik negara untuk perlindungan konten).

Contoh bidang database

Penyedia TV mendukung data terstruktur dalam tabel saluran ( android.provider.TvContract.Channels ) dan program ( android.provider.TvContract.Programs ). Tabel ini diisi dan diakses oleh Input TV dan aplikasi sistem seperti Aplikasi TV. Tabel ini memiliki empat jenis bidang:

  • Tampilan: Bidang tampilan berisi informasi yang mungkin ingin ditampilkan oleh aplikasi kepada pengguna, seperti nama saluran ( COLUMN_DISPLAY_NAME ) atau nomor ( COLUMN_DISPLAY_NUMBER ), atau judul program yang sedang ditonton.
  • Metadata: Ada tiga bidang untuk mengidentifikasi konten, sesuai dengan standar yang relevan, seperti ID aliran transportasi saluran ( COLUMN_TRANSPORT_STREAM_ID ), ID jaringan asli ( COLUMN_ORIGINAL_NETWORK_ID ) dan id layanan ( COLUMN_SERVICE_ID ).
  • Data internal : Bidang yang digunakan untuk penggunaan Input TV secara khusus.
    Beberapa bidang, seperti COLUMN_INTERNAL_PROVIDER_DATA , merupakan bidang BLOB yang dapat disesuaikan tempat Masukan TV dapat menyimpan metadata sewenang-wenang tentang saluran atau programnya.
  • Bendera: Bidang bendera menunjukkan apakah suatu saluran harus dibatasi dari pencarian, penjelajahan, atau penayangan. Ini hanya dapat diatur pada tingkat saluran. Semua program tunduk pada pengaturan saluran.
    • COLUMN_SEARCHABLE : Membatasi penelusuran dari beberapa saluran mungkin menjadi persyaratan di wilayah tertentu. COLUMN_SEARCHABLE = 0 berarti saluran tidak boleh terekspos di hasil pencarian.
    • COLUMN_BROWSABLE : Hanya terlihat oleh aplikasi sistem. Membatasi saluran agar tidak dijelajahi oleh aplikasi. COLUMN_BROWSABLE = 0 berarti saluran tersebut tidak boleh dimasukkan dalam daftar saluran.
    • COLUMN_LOCKED : Hanya terlihat oleh aplikasi sistem. Membatasi saluran agar tidak dilihat oleh akun yang tidak valid tanpa memasukkan kode PIN. COLUMN_LOCKED = 1 berarti saluran harus dilindungi oleh kontrol orang tua.

Untuk daftar kolom yang lebih lengkap, lihat android/frameworks/base/media/java/android/media/tv/TvContract.java

Izin dan kontrol akses

Semua bidang dapat dilihat oleh siapa saja yang memiliki akses ke baris terkait. Tidak ada bidang yang dapat diakses langsung oleh pengguna; mereka hanya melihat tampilan Aplikasi TV, aplikasi Sistem, atau Input TV.

  • Setiap baris memiliki PACKAGE_NAME , paket (aplikasi) yang memiliki baris tersebut, dicentang pada Query, Insert, Update via TvProvider.java. Input TV hanya dapat mengakses informasi yang ditulisnya dan dibatasi dari informasi yang disediakan oleh Input TV lainnya.
  • Izin BACA, TULIS melalui AndroidManifest.xml (memerlukan persetujuan pengguna) untuk menentukan saluran yang tersedia.
  • Hanya aplikasi signatureOrSystem yang dapat memperoleh izin ACCESS_ALL_EPG_DATA untuk mengakses seluruh database.

Manajer Masukan TV

TV Input Manager menyediakan API sistem pusat untuk keseluruhan Kerangka Input TV Android. Ini mengatur interaksi antara aplikasi dan Input TV dan menyediakan fungsionalitas kontrol orang tua. Sesi Manajer Input TV harus dibuat satu lawan satu dengan Input TV. Manajer Input TV mengizinkan akses ke Input TV yang diinstal sehingga aplikasi dapat:

  • Daftar input TV dan periksa statusnya
  • Buat sesi dan kelola pendengar

Untuk sesi, Input TV dapat disetel oleh Aplikasi TV hanya ke URI yang telah ditambahkan ke database Penyedia TV, kecuali untuk Input TV passthrough yang dapat disetel menggunakan TvContract.buildChannelUriForPassthroughInput() . Input TV mungkin juga telah diatur volumenya. Input TV yang disediakan dan ditandatangani oleh produsen perangkat (aplikasi tanda tangan) atau aplikasi lain yang diinstal di partisi sistem akan memiliki akses ke seluruh database Penyedia TV. Akses ini dapat digunakan untuk membuat aplikasi untuk menelusuri dan mencari di semua saluran dan program TV yang tersedia.

Sebuah aplikasi dapat membuat dan mendaftarkan TvInputCallback dengan android.media.tv.TvInputManager untuk dipanggil kembali saat status Input TV berubah atau saat penambahan atau penghapusan Input TV. Misalnya, Aplikasi TV dapat bereaksi ketika Input TV terputus dengan menampilkannya sebagai terputus dan mencegah pemilihannya.

Manajer Input TV mengabstraksi komunikasi antara Aplikasi TV dan Input TV. Antarmuka standar Manajer Input TV dan Input TV memungkinkan beberapa produsen perangkat membuat Aplikasi TV mereka sendiri sambil membantu semua Input TV pihak ketiga berfungsi di semua Aplikasi TV.

Masukan TV

Input TV adalah aplikasi Android dalam artian mereka memiliki AndroidManifest.xml dan diinstal (melalui Play, pra-instal, atau sideload). Android TV mendukung aplikasi sistem prainstal, aplikasi yang ditandatangani oleh produsen perangkat, dan Input TV pihak ketiga.

Beberapa input, seperti input HDMI atau input tuner internal, hanya dapat disediakan oleh pabrikan karena input tersebut berhubungan langsung dengan perangkat keras yang mendasarinya. Lainnya, seperti IPTV, perpindahan tempat, dan STB eksternal, dapat disediakan oleh pihak ketiga sebagai APK di Google Play Store. Setelah diunduh dan dipasang, masukan baru dapat dipilih dalam Aplikasi TV.

Contoh masukan passthrough

Masukan Sistem TV Android
Gambar 3. Input Sistem Android TV

Dalam contoh ini, Input TV yang disediakan oleh produsen perangkat tepercaya dan memiliki akses penuh ke Penyedia TV. Sebagai Input TV passthrough, ia tidak mendaftarkan saluran atau program apa pun ke Penyedia TV. Untuk mendapatkan URI yang digunakan sebagai referensi input passthrough, gunakan metode utilitas android.media.tv.TvContract buildChannelUriForPassthroughInput(String inputId) . Aplikasi TV berkomunikasi dengan Manajer Input TV untuk mencapai Input TV HDMI.

Contoh tuner bawaan

Masukan Tuner Bawaan Android TV
Gambar 4. Input Tuner Bawaan Android TV

Dalam contoh ini, Input TV Tuner Internal yang disediakan oleh produsen perangkat tepercaya dan memiliki akses penuh ke Penyedia TV.

Contoh masukan pihak ketiga

Masukan pihak ketiga Android TV
Gambar 5. Masukan pihak ketiga Android TV

Dalam contoh ini, Input TV STB eksternal disediakan oleh pihak ketiga. Karena Input TV tersebut tidak dapat langsung mengakses umpan video HDMI yang masuk, maka harus melalui TV Input Manager dan menggunakan Input TV HDMI yang disediakan oleh produsen perangkat.

Melalui Manajer Input TV, Input TV STB eksternal dapat berbicara dengan Input TV HDMI dan memintanya untuk menampilkan video di HDMI1. Jadi Input TV STB dapat mengontrol TV sementara Input TV HDMI yang disediakan pabrikan merender video.

Contoh gambar dalam gambar (PIP).

Acara Utama Android TV
Gambar 6. Peristiwa Utama Android TV

Diagram di atas menunjukkan bagaimana tombol-tombol pada remote control diteruskan ke Input TV tertentu untuk tampilan gambar dalam gambar (PIP). Penekanan tombol tersebut diinterpretasikan oleh driver perangkat keras yang disediakan oleh produsen perangkat, mengonversi kode pindaian perangkat keras menjadi kode kunci Android dan meneruskannya ke saluran masukan Android standar, InputReader dan InputDispatcher berfungsi sebagai KeyEvents . Hal ini pada gilirannya akan memicu peristiwa di Aplikasi TV jika berada dalam fokus.

Hanya Input TV sistem yang memenuhi syarat untuk menerima InputEvents , dan hanya jika mereka memiliki izin sistem RECEIVE_INPUT_EVENT . Input TV bertanggung jawab untuk menentukan InputEvents mana yang akan digunakan dan harus mengizinkan Aplikasi TV menangani kunci yang tidak perlu digunakan.

Aplikasi TV bertanggung jawab untuk mengetahui sistem Input TV mana yang aktif, artinya dipilih oleh pengguna, dan untuk memperjelas KeyEvents yang masuk dan merutekannya ke sesi Manajer Input TV yang benar, memanggil dispatchInputEvent() untuk meneruskan acara ke Input TV terkait .

Contoh masukan MHEG-5

Diagram berikut menunjukkan tampilan lebih detail tentang bagaimana KeyEvents dirutekan melalui Android TIF.

Contoh Tombol Merah Android TV
Gambar 7. Contoh tombol Merah Android TV

Ini menggambarkan alur aplikasi tombol Merah, yang umum di Eropa karena memungkinkan pengguna mengakses aplikasi interaktif di televisi mereka. Sebuah aplikasi dapat dikirimkan melalui aliran transportasi ini. Saat tombol diklik, pengguna dapat berinteraksi dengan aplikasi siaran ini. Misalnya, Anda mungkin menggunakan aplikasi siaran ini untuk mengakses halaman web atau skor olahraga terkait.

Lihat bagian Aplikasi siaran untuk mempelajari cara aplikasi siaran berinteraksi dengan Aplikasi TV.

Dalam contoh ini:

  1. Aplikasi TV berada dalam fokus dan menerima semua tombol.
  2. KeyEvents (misalnya tombol Merah) diteruskan ke Input TV aktif sebagai InputEvents.
  3. Input TV sistem terintegrasi dengan tumpukan MHEG-5 dan memiliki izin sistem RECEIVE_INPUT_EVENT .
  4. Saat menerima kode kunci aktivasi (misalnya tombol Merah), Input TV mengaktifkan aplikasi siaran.
  5. Input TV menggunakan KeyEvents sebagai InputEvents dan aplikasi siaran menjadi fokus dan menangani InputEvents hingga ditutup.

Catatan : Input TV pihak ketiga tidak pernah menerima kunci.

Masukan TV HAL

TV Input HAL membantu pengembangan Input TV untuk mengakses perangkat keras khusus TV. Seperti Android HAL lainnya, TV Input HAL ( tv_input ) tersedia di pohon sumber AOSP dan vendor mengembangkan implementasinya.

Catatan : Mulai Android 14, antarmuka HAL input TV ditentukan menggunakan AIDL .

Aplikasi TV

Aplikasi TV sistem menyajikan konten TV langsung kepada pengguna. Aplikasi TV referensi (TV Langsung) disediakan bersama platform Android, yang dapat digunakan apa adanya, disesuaikan, diperluas, atau diganti oleh produsen perangkat. Kode sumber tersedia di Proyek Sumber Terbuka Android, dan Anda dapat memulainya di artikel aplikasi Referensi TV .

Produsen perangkat dapat memperluas Aplikasi TV mereka untuk menerapkan fitur khusus pabrikan perangkat atau negara, namun hal ini tidak termasuk dalam cakupan TIF atau Aplikasi TV referensi.

Minimal, Aplikasi TV sistem perlu menangani tugas-tugas berikut:

Pengaturan dan konfigurasi

  • Deteksi otomatis Input TV
  • Biarkan Input TV memulai pengaturan saluran
  • Kontrol pengaturan orang tua
  • Sunting saluran

Melihat

  • Akses dan navigasikan semua saluran TV
  • Akses bilah informasi program TV
  • Menampilkan data Panduan Pemrograman Elektronik (EPG).
  • Mendukung banyak trek audio dan subtitle
  • Berikan tantangan PIN kontrol orang tua
  • Izinkan overlay UI Input TV untuk standar TV (HbbTV, dll.)
  • Isi hasil pencarian untuk saluran dan program TV
  • Tampilkan kartu penautan aplikasi
  • Mendukung API peralihan waktu
  • Menangani fungsionalitas DVR dan mendukung API perekaman TV

Rangkaian fitur ini akan meningkat seiring dengan versi Android baru yang memperluas platform TIF API. CTS Verifier menyediakan cakupan uji kompatibilitas.

Dukungan untuk Input TV pihak ketiga

Android TV menyediakan API pengembang untuk masukan TV pihak ketiga, memungkinkan aplikasi terinstal untuk menghadirkan saluran perangkat lunak ke dalam pengalaman siaran langsung TV. Untuk memastikan penerapan perangkat Android yang kompatibel, Aplikasi TV sistem memiliki beberapa tanggung jawab terkait menampilkan masukan dan saluran TV pihak ketiga kepada pengguna. Aplikasi referensi TV Langsung menyediakan implementasi yang kompatibel; jika mengganti Aplikasi TV sistem, produsen perangkat harus memastikan aplikasi mereka menyediakan kompatibilitas serupa, untuk memenuhi harapan pengembang di semua perangkat Android TV.

Aplikasi TV sistem harus menampilkan masukan pihak ketiga bersama dengan layanan TV langsung default perangkat. Janji dari API pengembang adalah bahwa pengguna akan dapat menemukan saluran (setelah diinstal) dalam pengalaman TV standar mereka.

Pembedaan visual antara saluran bawaan dan saluran pihak ketiga diperbolehkan, sebagaimana ditentukan di bagian Aplikasi TV pada CDD Android.

Bagian berikut menunjukkan bagaimana aplikasi TV Langsung memenuhi persyaratan CDD.

Pengaturan saluran baru

Penambahan input/saluran pihak ketiga baru dimulai dengan pengguna mencari dan menginstal Input TV dari toko aplikasi, seperti Google Play.

Beberapa input TV pihak ketiga secara otomatis menambahkan saluran ke database TvProvider. Namun sebagian besar akan menyediakan aktivitas Pengaturan untuk memungkinkan pengguna mengatur saluran mereka, memberikan detail login, dan tindakan lainnya. Aplikasi TV sistem perlu memastikan pengguna dapat mengaktifkan aktivitas Pengaturan ini, itulah sebabnya CDD memerlukan input pihak ketiga berupa tindakan navigasi minimal dari Aplikasi TV utama.

Aplikasi TV Langsung referensi menyediakan menu Sumber Saluran untuk mengakses input.

Pergi ke pengaturan
Gambar 8. Buka Pengaturan .

Buka Sumber saluran di Pengaturan
Gambar 9. Buka Sumber saluran di Pengaturan.

Pilih sumber Anda dari daftar.
Gambar 10. Pilih sumber Anda dari daftar.

Tambahkan saluran dari sumber Anda
Gambar 11. Tambahkan saluran dari sumber Anda.

Selain itu, kartu notifikasi ditampilkan di bagian atas menu Aplikasi TV setelah TvInput baru diinstal, untuk mengarahkan pengguna langsung ke Pengaturan:

Pemberitahuan yang menunjukkan sumber saluran baru tersedia.
Gambar 12. Notifikasi yang menunjukkan sumber saluran baru tersedia.

Jika pengguna mengambil tindakan melalui notifikasi, mereka dapat memilih untuk mengatur sumbernya seperti yang terlihat pada Gambar 10.

Lihat Menentukan Layanan Input TV Anda untuk mengetahui ekspektasi pengembang di bidang ini.

Sesuaikan daftar saluran

Produsen perangkat mungkin menyediakan UI untuk menyembunyikan saluran tertentu dan memungkinkan pengguna mengelola EPG mereka sendiri. TV Langsung menyertakan fasilitas ini.

Buka daftar saluran di Pengaturan.
Gambar 13. Buka daftar saluran di Pengaturan .

Sesuaikan daftar saluran Anda.
Gambar 14. Sesuaikan daftar saluran Anda.

EPG

Pengembang masukan pihak ketiga harus yakin bahwa pengguna dapat dengan mudah menavigasi saluran mereka selama penggunaan umum, di semua perangkat Android TV yang kompatibel.

Saluran dari masukan pihak ketiga harus disajikan sebagai bagian dari pengalaman TV langsung EPG standar perangkat. Pemisahan visual atau kategori terpisah untuk saluran pihak ketiga dapat digunakan (lihat bagian Aplikasi TV di CDD Android) —yang penting adalah pengguna dapat menemukan saluran yang telah mereka instal.

Produsen harus menerapkan Aplikasi TV untuk menyertakan hasil pencarian untuk permintaan pencarian global guna memastikan pengalaman pengguna terbaik. TV Langsung menyediakan implementasi (lihat mana yang memberikan hasil dari masukan pihak ketiga (diperlukan untuk kompatibilitas platform) serta masukan bawaan.

Pergeseran waktu

Untuk perangkat yang menjalankan Android 6.0 dan yang lebih baru, Aplikasi TV harus mendukung API peralihan waktu framework Android. Selain itu, produsen harus menerapkan kontrol pemutaran di Aplikasi TV, yang memungkinkan pengguna menjeda, melanjutkan, memundurkan, dan mempercepat pemutaran.

Untuk Input TV yang mendukung peralihan waktu, Aplikasi TV perlu menampilkan kontrol pemutaran.

Kontrol pemutaran
Gambar 15. Kontrol pemutaran

DVR

Untuk perangkat dengan Android 7.0 dan yang lebih baru, Aplikasi TV harus mendukung API perekaman TV framework Android, untuk mendukung, membuat daftar, dan memutar rekaman program.

Hal ini memungkinkan produsen perangkat untuk menyambungkan subsistem DVR mereka ke TIF dan secara signifikan mengurangi upaya integrasi yang diperlukan untuk mengaktifkan atau mengintegrasikan fungsionalitas DVR pada perangkat TV. Hal ini juga memungkinkan pihak ketiga menyediakan sistem DVR purnajual yang dapat dicolokkan ke perangkat Android TV.

Selain merekam konten langsung, Aplikasi TV juga menangani konflik sumber daya. Misalnya, jika perangkat memiliki dua tuner, perangkat dapat merekam dua program secara bersamaan. Jika pengguna meminta untuk merekam tiga, Aplikasi TV harus menangani konflik tersebut dan harus memunculkan pemberitahuan atau meminta pengguna menjadwalkan prioritas untuk permintaan ini.

Aplikasi TV juga dapat menerapkan logika yang lebih canggih seperti menanyakan pengguna apakah mereka ingin merekam semua episode mendatang dalam sebuah serial ketika mereka meminta untuk merekam satu episode.

Lihat diagram berikut untuk mengetahui kemungkinan penerapan DVR di Android TV.

Perekaman video digital di Android TV
Gambar 16. Perekaman video digital di Android TV

  1. Layanan Input TV memberi tahu Aplikasi TV berapa banyak tuner yang tersedia sehingga Aplikasi TV dapat menangani kemungkinan konflik sumber daya.
  2. Aplikasi TV menerima permintaan yang dimulai oleh pengguna untuk merekam program TV.
  3. Aplikasi TV menyimpan jadwal perekaman di database internalnya.
  4. Saat tiba waktunya untuk merekam, Aplikasi TV meneruskan permintaan untuk menyetel saluran yang terkait dengan rekaman tersebut.
  5. Layanan Input TV menerima permintaan ini, merespons apakah ada sumber daya yang sesuai atau tidak, dan menyetel saluran tersebut.
  6. Kemudian Aplikasi TV meneruskan permintaan untuk mulai merekam ke Manajer Input TV.
  7. Layanan Input TV menerima permintaan ini dan mulai merekam.
  8. Layanan Input TV menyimpan data video aktual dalam penyimpanannya, yang dapat berupa penyimpanan eksternal atau penyimpanan cloud.
  9. Ketika tiba waktunya untuk menyelesaikan perekaman, Aplikasi TV meneruskan permintaan berhenti merekam ke Manajer Input TV.
  10. Setelah Layanan Input TV menerima permintaan, Layanan tersebut menghentikan perekaman dan menambahkan metadata terkait ke Penyedia TV sehingga Aplikasi TV dapat menampilkan rekaman tersebut kepada pengguna saat diminta.

Untuk informasi selengkapnya tentang penerapan fitur Perekaman di layanan Input TV Anda, lihat artikel Perekaman TV ini.

Sumber daya yang berguna

  • CDD Android dan API pengembang yang terdokumentasi adalah referensi pastinya.
  • CTS Verifier menggunakan API sebagai bagian dari program pengujian kompatibilitas. Menjalankan ini pada TV Langsung mungkin merupakan cara yang berguna untuk melihat EPG, Pencarian, Kontrol Orang Tua, dan persyaratan lainnya dalam konteks masukan pihak ketiga.
  • Lihat Menentukan Layanan Input TV Anda untuk mengetahui ekspektasi pengembang di bidang ini.

Bimbingan orang tua

Kontrol orang tua memungkinkan pengguna memblokir saluran dan program yang tidak diinginkan, tetapi melewati pemblokiran tersebut dengan memasukkan kode PIN.

Tanggung jawab atas fungsi kontrol orang tua dibagi antara Aplikasi TV, layanan Manajer Input TV, Penyedia TV, dan Input TV.

Kontrol orang tua bersifat wajib, dan dilindungi oleh CTS Verifier.

Sejumlah negara telah menetapkan sistem rating yang dapat digunakan oleh Input TV melalui TVContentRating API . Selain itu, Input TV dapat mendaftarkan sistem rating khusus mereka sendiri seperti yang ditunjukkan oleh tes CTS Verifier, yang memperkenalkan rating 'palsu'. Untuk negara-negara yang memiliki sistem rating standar, produsen perangkat dianjurkan untuk menggabungkan Kerangka Input TV Kontrol Orang Tua dengan mekanisme lain yang mungkin mereka sertakan.

Penyedia TV

Setiap baris saluran memiliki kolom COLUMN_LOCKED yang digunakan untuk mengunci saluran tertentu agar tidak dapat ditonton tanpa memasukkan kode PIN. Bidang program COLUMN_CONTENT_RATING ditujukan untuk tampilan dan tidak digunakan untuk menerapkan kontrol orang tua.

Manajer Masukan TV

Manajer Input TV menyimpan setiap TvContentRating yang diblokir dan merespons isRatingBlocked() untuk memberi saran apakah konten dengan rating tertentu harus diblokir.

Masukan TV

Input TV memeriksa apakah konten saat ini harus diblokir dengan memanggil isRatingBlocked() pada Manajer Input TV ketika peringkat konten yang ditampilkan telah berubah (pada perubahan program atau saluran), atau pengaturan kontrol orang tua telah berubah (pada ACTION_BLOCKED_RATINGS_CHANGED dan ACTION_PARENTAL_CONTROLS_ENABLED_CHANGED ) . Jika konten harus diblokir, Input TV menonaktifkan audio dan video dan memberi tahu aplikasi TV bahwa konten saat ini diblokir dengan memanggil notifyContentBlocked(TvContentRating) . Jika konten tidak boleh diblokir, Input TV mengaktifkan audio dan video dan memberi tahu Aplikasi TV bahwa konten saat ini diizinkan dengan memanggil notifyContentAllowed() .

Aplikasi TV

Untuk menghormati API kontrol orang tua, dan dengan demikian menciptakan platform yang kompatibel, Aplikasi TV sistem perlu menyediakan cara bagi pengguna untuk mengelola kontrol orang tua, termasuk untuk setiap rating khusus yang didaftarkan oleh aplikasi tertentu.

Aplikasi TV menampilkan UI kode PIN ketika diberitahukan oleh Input TV bahwa konten saat ini diblokir atau ketika pengguna mencoba melihat saluran yang diblokir.

Aplikasi TV tidak secara langsung menyimpan pengaturan kontrol orang tua. Saat pengguna mengubah pengaturan kontrol orang tua, setiap TvContentRating yang diblokir disimpan oleh Manajer Input TV, dan saluran yang diblokir disimpan oleh Penyedia TV.

Aplikasi TV perlu mendeklarasikan izin android.permission.MODIFY_PARENTAL_CONTROLS untuk mengubah pengaturan kontrol orang tua.

Produsen perangkat didorong untuk:

  • Lakukan pengujian kontrol orang tua Verifikator CTS terhadap aplikasi TV Langsung referensi untuk mendemonstrasikan persyaratan kompatibilitas.
  • Gunakan aplikasi TV Langsung sebagai referensi untuk Aplikasi TV mereka sendiri: khususnya lihat sumber ContentRatingsManager dan RatingSystemsFragment , dan cara mereka menangani rating khusus.

HDMI-CEC

HDMI-CEC memungkinkan satu perangkat untuk mengontrol perangkat lainnya, sehingga memungkinkan satu remote untuk mengontrol beberapa peralatan di home theater. Ini digunakan oleh Android TV untuk mempercepat pengaturan dan memungkinkan kontrol jarak jauh atas berbagai Input TV melalui Aplikasi TV pusat. Misalnya, ia dapat mengganti input, menyalakan atau mematikan perangkat, dan banyak lagi.

Android TIF mengimplementasikan HDMI-CEC sebagai Layanan Kontrol HDMI sehingga produsen perangkat hanya perlu mengembangkan driver tingkat rendah yang berinteraksi dengan Android TV HAL yang ringan, tanpa menggunakan logika bisnis yang lebih kompleks. Dalam menyediakan implementasi standar, Android berupaya memitigasi masalah kompatibilitas dengan mengurangi implementasi yang terfragmentasi dan dukungan fitur selektif. Layanan Kontrol HDMI menggunakan layanan Android yang ada, termasuk input dan daya.

Artinya, implementasi HDMI-CEC yang ada perlu didesain ulang agar dapat berinteroperasi dengan Android TIF. Kami merekomendasikan platform perangkat keras berisi mikroprosesor untuk menerima daya CEC dan perintah lainnya.

Integrasi CEC di Android TV
Gambar 17. Integrasi CEC di Android TV

  1. Bus CEC menerima perintah dari sumber yang sedang aktif untuk beralih ke sumber lain.
  2. Pengemudi meneruskan perintah ke HDMI-CEC HAL.
  3. HAL memberitahukan semua ActiveSourceChangeListeners .
  4. Layanan Kontrol HDMI diberitahu tentang perubahan sumber melalui ActiveSourceChangeListener .
  5. Layanan Manajer Input TV menghasilkan maksud bagi Aplikasi TV untuk mengalihkan sumber.
  6. Aplikasi TV kemudian membuat Sesi Manajer Input TV untuk Input TV yang dialihkan dan memanggil setMain pada sesi itu.
  7. Sesi Manajer Input TV meneruskan informasi ini ke Input TV HDMI.
  8. Input TV HDMI meminta untuk mengatur permukaan pita samping.
  9. Layanan Manajer Input TV menghasilkan perintah kontrol perutean yang sesuai kembali ke Layanan Kontrol HDMI ketika permukaan sudah diatur.

Pedoman integrasi TV

Aplikasi siaran

Karena setiap negara memiliki persyaratan khusus siaran (MHEG, Teleteks, HbbTV, dan lainnya), produsen diharapkan menyediakan solusi mereka sendiri untuk aplikasi siaran, misalnya:

  • MHEG: tumpukan asli
  • Teleteks: tumpukan asli
  • HbbTV: Solusi HbbTV dari Vewd Software

Dalam rilis Android L, Android TV mengharapkan produsen perangkat menggunakan integrator sistem atau solusi Android untuk tumpukan TV regional, meneruskan permukaan ke tumpukan perangkat lunak TV, atau meneruskan kode kunci yang diperlukan untuk berinteraksi dengan tumpukan lama.

Berikut cara aplikasi siaran dan Aplikasi TV berinteraksi:

  1. Aplikasi TV sedang fokus, menerima semua tombol.
  2. Aplikasi TV meneruskan kunci (misalnya tombol Merah) ke perangkat Input TV.
  3. Perangkat Input TV terintegrasi secara internal dengan tumpukan TV lama.
  4. Saat menerima kode kunci aktivasi (misalnya tombol Merah), perangkat Input TV mengaktifkan aplikasi siaran.
  5. Aplikasi siaran mengambil fokus di Aplikasi TV dan menangani tindakan pengguna.

Untuk pencarian/rekomendasi suara, aplikasi siaran mungkin mendukung pencarian dalam aplikasi untuk pencarian suara.