Google, Siyah topluluklar için ırksal eşitliği ilerletmeye kararlıdır. Nasıl olduğunu gör.
Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

TV Giriş Çerçevesi

Android TV HAL simgesi

Android TV Giriş Çerçevesi (TIF), canlı içeriğin Android TV'ye dağıtımını kolaylaştırır. Android TIF, üreticilere Android TV'yi kontrol etmek için giriş modülleri oluşturmaları için standart bir API sağlar ve TV Girişi tarafından yayınlanan meta veriler aracılığıyla canlı TV araması ve öneriler sağlar.

Çerçeve, TV standartlarını veya bölgesel gereksinimleri uygulamayı amaçlamamaktadır, ancak cihaz üreticilerinin yeniden uygulamadan bölgesel dijital TV yayın standartlarını karşılamasını kolaylaştırmaktadır. Bu bölümdeki belgeler, özel TV Girişleri oluşturmak isteyen üçüncü taraf uygulama geliştiricileri için de yararlı olabilir.

Bileşenler

Android TV Giriş Çerçevesi uygulaması bir TV Giriş Yöneticisi içerir. TIF, yerleşik ve IP alıcı kanallarına erişmek için üçüncü taraf bir uygulama ile değiştirilemeyen bir sistem uygulaması olan TV Uygulaması ile çalışır. TV Uygulaması, cihaz üreticisi veya diğer taraflarca TV Giriş Yöneticisi aracılığıyla sağlanan TV Giriş modülleri ile iletişim kurar.

TV Giriş Çerçevesi şunlardan oluşur:

  • TV Sağlayıcısı ( com.android.providers.tv.TvProvider ): kanalların, programların ve ilgili izinlerin bir veritabanı
  • TV Uygulaması ( com.android.tv.TvActivity ): kullanıcı etkileşimini işleyen uygulama
  • TV Giriş Yöneticisi ( android.media.tv.TvInputManager ): TV Girişlerinin TV Uygulaması ile iletişim kurmasını sağlar
  • TV Girişi: fiziksel veya sanal alıcıları ve giriş bağlantı noktalarını temsil eden bir uygulama
  • TV Girişi HAL ( tv_input modülü): sistem TV Girişlerinin uygulandığında TV'ye özgü donanıma erişmesini sağlayan bir donanım tanımı
  • Ebeveyn Kontrolü: kanalların ve programların engellenmesine izin veren teknoloji
  • HDMI-CEC: HDMI üzerinden çeşitli cihazların uzaktan kontrolüne izin veren teknoloji

Bu bileşenler aşağıda ayrıntılı olarak ele alınmaktadır. Android TV Giriş Çerçevesi mimarisinin ayrıntılı bir görünümü için aşağıdaki şemaya bakın.

Android TIF mimarisine genel bakış
Şekil 1. Android TV Giriş Çerçevesi (TIF) mimarisi

Akış

Mimarinin işleyişi şöyle:

  1. Kullanıcı, bir üçüncü taraf uygulamasıyla değiştirilemeyen bir sistem uygulaması olan TV Uygulaması'nı görür ve onunla etkileşime girer.
  2. TV Uygulaması, TV Girişindeki AV içeriğini görüntüler.
  3. TV Uygulaması doğrudan TV Girişleriyle konuşamaz. TV Giriş Yöneticisi, TV Uygulaması için TV Girişlerinin durumunu tanımlar. Bu sınırlamalar hakkında daha fazla bilgi için aşağıdaki TV Giriş Yöneticisi'ne bakın.

İzinler

  • Yalnızca signatureOrSystem TV Girişleri ve TV Uygulaması, TV Sağlayıcısı veritabanına tam erişime sahiptir ve KeyEventleri alabilir.
  • TV Input HAL'ye TV Input HAL hizmeti aracılığıyla yalnızca sistem TV Girişleri erişebilir. TV Girişlerine TV Giriş Yöneticisi oturumları aracılığıyla bire bir erişilir.
  • Üçüncü taraf TV Girişleri, TV Sağlayıcısı veritabanına paket kilitli erişime sahiptir ve yalnızca eşleşen paket satırlarına READ / WRITE yazabilir.
  • Üçüncü taraf TV girişleri, kendi içeriklerini veya cihaz üreticisinin HDMI1 gibi düz geçişli TV girişlerinden gelen içerikleri görüntüleyebilir. Yerleşik veya IPTV alıcısı gibi geçmeli olmayan TV girişlerinden içerik görüntüleyemezler.
  • Bir donanım TV Girişi uygulaması için TV_INPUT_HARDWARE izni, TV Giriş Yöneticisi Hizmeti'ni, TV Giriş Yöneticisi Hizmetini aramak ve TV Girişlerini eklemek üzere önyükleme sırasında TV Giriş hizmetine bildirmesi için uyarır. Bu izin, bir donanım TV Girişi uygulamasının desteklenen TV Girişlerini dinamik olarak ekleyip kaldırabilmesinin yanı sıra TV Girişi hizmeti başına birden fazla TV Girişini desteklemesini sağlar.

TV Sağlayıcısı

TV Sağlayıcısı veritabanı, TV Girişlerinden gelen kanalları ve programları saklar. TV Sağlayıcısı ayrıca TV Girişlerinin yalnızca kendi kayıtlarını görebilmesi için ilgili izinleri yayınlar ve yönetir. Örneğin, belirli bir TV Girişi yalnızca sağladığı kanalları ve programları görebilir ve diğer TV Girişlerinin kanallarına ve programlarına erişmesi yasaktır.

TV Sağlayıcısı, "yayın türünü" dahili olarak "standart tür" ile eşleştirir. TV Girdileri, "yayın türü" nün temelini oluşturan yayın standardındaki değerle doldurmaktan sorumludur ve "standart tür" alanı otomatik olarak android.provider.TvContract.Genres ilgili ilişkili türü ile doldurulur. Örneğin, yayın standardı ATSC A / 65 ve 0x25 türünde ("Spor" anlamına gelen) programla TV Girişi, "yayın türü" ni "Spor" Dizesi ile dolduracak ve TV Sağlayıcısı "kanonik tür" alanını eşlenen değer android.provider.TvContract.Genres.SPORTS .

TV Sağlayıcısının ayrıntılı bir görünümü için aşağıdaki şemaya bakın.

Android TV Sağlayıcısı
Şekil 2. Android TV Sağlayıcısı

Yalnızca ayrıcalıklı sistem bölümündeki uygulamalar TV Sağlayıcısı veritabanının tamamını okuyabilir.

Düz geçişli TV girişleri kanalları ve programları saklamaz.

TV Sağlayıcı veritabanı, kanallar ve programlar için standart alanlara ek olarak, TV Girişlerinin isteğe bağlı verileri depolamak için kullanabileceği her tabloda bir BLOB türü alan, COLUMN_INTERNAL_PROVIDER_DATA da sunar. Bu BLOB verileri, ilişkili tunerin frekansı gibi özel bilgiler içerebilir ve bir protokol tamponu veya başka bir formda sağlanabilir. Belirli kanalların aramada kullanılamamasını sağlamak için Aranabilir bir alan mevcuttur (içerik koruması için ülkeye özgü gereksinimleri karşılamak gibi).

Veritabanı alanı örnekleri

TV Sağlayıcısı, kanal ( android.provider.TvContract.Channels ) ve program ( android.provider.TvContract.Programs ) tablolarındaki yapılandırılmış verileri destekler. Bu tablolar, TV Girişleri ve TV Uygulaması gibi sistem uygulamaları tarafından doldurulur ve bunlara erişilir. Bu tablolarda dört tür alan vardır:

  • Görüntü: Görüntüleme alanları, kanalın adı ( COLUMN_DISPLAY_NAME ) veya numarası ( COLUMN_DISPLAY_NUMBER ) veya görüntülenen programın başlığı gibi uygulamaların kullanıcı tarafından görünür kılmak isteyebileceği bilgiler içerir.
  • Meta veriler: Bir kanalın taşıma akışı kimliği ( COLUMN_TRANSPORT_STREAM_ID ), orijinal ağ kimliği ( COLUMN_ORIGINAL_NETWORK_ID ) ve hizmet kimliği ( COLUMN_SERVICE_ID ) gibi ilgili standartlara göre içerik tanımlamak için üç alan vardır.
  • Dahili veriler : TV Girişlerinin özel kullanımı için olan alanlar.
    COLUMN_INTERNAL_PROVIDER_DATA gibi bazı alanlar, bir TV Girişinin kanalları veya programları hakkında rastgele meta veriler depolayabileceği özelleştirilebilir BLOB alanlarıdır.
  • Bayrak: Bayrak alanları, bir kanalın arama, göz atma veya görüntüleme ile sınırlandırılıp kısıtlanmayacağını gösterir. Bu yalnızca kanal düzeyinde ayarlanabilir. Tüm programlar kanaldaki ayarı erteler.
    • COLUMN_SEARCHABLE : Bazı kanallarda aramayı kısıtlamak, bazı bölgelerde bir gereklilik olabilir. COLUMN_SEARCHABLE = 0 , kanalın arama sonuçlarında gösterilmemesi gerektiği anlamına gelir.
    • COLUMN_BROWSABLE : Yalnızca sistem uygulamaları tarafından görülebilir. Kanalın uygulamalar tarafından taranmasını kısıtlama. COLUMN_BROWSABLE = 0 , kanalın kanal listesine dahil edilmemesi gerektiği anlamına gelir.
    • COLUMN_LOCKED : Yalnızca sistem uygulamaları tarafından görülebilir. Kanalın PIN kodu girmeden geçersiz hesaplar tarafından görüntülenmesini kısıtlama. COLUMN_LOCKED = 1 , kanalın ebeveyn kontrolü ile korunması gerektiği anlamına gelir.

Alanların daha kapsamlı bir listesi için bkz. android/frameworks/base/media/java/android/media/tv/TvContract.java

İzinler ve erişim kontrolü

Tüm alanlar, ilgili satıra erişimi olan herkes tarafından görülebilir. Hiçbir alan doğrudan kullanıcılar tarafından erişilebilir değildir; yalnızca TV Uygulaması, Sistem uygulamaları veya TV Girişlerinin yüzeyini görürler.

  • Her satırda, o satırın sahibi olan paket (uygulama) olan PACKAGE_NAME , TvProvider.java üzerinden Sorgu, Ekle, Güncelle'yi işaretledi. Bir TV Girişi yalnızca yazdığı bilgilere erişebilir ve diğer TV Girişleri tarafından sağlanan bilgilerden kordon altına alınır.
  • OKU, mevcut kanalları belirlemek için AndroidManifest.xml (kullanıcı onayı gerektirir) aracılığıyla WRITE izinleri.
  • Sadece signatureOrSystem uygulamalar edinebilirler ACCESS_ALL_EPG_DATA tüm veritabanına erişim izni.

TV Giriş Yöneticisi

TV Giriş Yöneticisi, genel Android TV Giriş Çerçevesine merkezi bir sistem API'sı sağlar. Uygulamalar ve TV Girişleri arasındaki etkileşimi tahkim eder ve ebeveyn kontrolü işlevselliği sağlar. TV Giriş Yöneticisi oturumları, TV Girişleri ile birebir oluşturulmalıdır. TV Giriş Yöneticisi, yüklü TV Girişlerine erişime izin verir, böylece uygulamalar:

  • TV girişlerini listeleyin ve durumlarını kontrol edin
  • Oturumlar oluşturun ve dinleyicileri yönetin

Oturumlar için, bir TV Girişi TV Uygulaması tarafından, TvContract.buildChannelUriForPassthroughInput() kullanılarak ayarlanabilen TvContract.buildChannelUriForPassthroughInput() TV Girişleri hariç, yalnızca TV Sağlayıcısı veritabanına eklediği URI'lere ayarlanabilir. Bir TV Girişinde de ses seviyesi ayarlanmış olabilir. Cihaz üreticisi (imza uygulamaları) veya sistem bölümünde yüklü diğer uygulamalar tarafından sağlanan ve imzalanan TV Girişleri, TV Sağlayıcısı veritabanının tamamına erişebilir. Bu erişim, mevcut tüm TV kanallarına ve programlarına göz atmak ve arama yapmak üzere uygulamalar oluşturmak için kullanılabilir.

Bir uygulama, bir TV Girişinin durum değişikliğinde veya bir TV Girişinin eklenmesi veya kaldırılmasında geri çağrılacak android.media.tv.TvInputManager ile bir TvInputCallback oluşturabilir ve kaydedebilir. Örneğin, bir TV Uygulaması bağlantısı kesildiğinde, TV bağlantısı kesilmiş olarak gösterilip seçimini engelleyerek tepki verebilir.

TV Giriş Yöneticisi, TV Uygulaması ile TV Girişleri arasındaki iletişimi özetler. TV Input Manager ve TV Input'un standart arayüzü, birçok cihaz üreticisinin kendi TV Uygulamalarını oluşturmasına izin verirken, tüm üçüncü taraf TV Girişlerinin tüm TV Uygulamalarında çalışmasına yardımcı olur.

TV Girişleri

TV Girişleri, AndroidManifest.xml'e sahip oldukları ve yüklendikleri (Play, önceden yüklenmiş veya yandan yüklenmiş) anlamında Android uygulamalarıdır. Android TV, önceden yüklenmiş sistem uygulamalarını, cihaz üreticisi tarafından imzalanan uygulamaları ve üçüncü taraf TV Girişlerini destekler.

HDMI girişi veya yerleşik tuner girişi gibi bazı girişler, doğrudan altta yatan donanımla konuştuğundan yalnızca üretici tarafından sağlanabilir. IPTV, yer değiştirme ve harici STB gibi diğerleri, üçüncü taraflarca Google Play Store'da APK olarak sağlanabilir. İndirilip kurulduktan sonra, yeni giriş TV Uygulaması içinden seçilebilir.

Geçişli giriş örneği

Android TV Sistem Girişi
Şekil 3. Android TV Sistem Girişi

Bu örnekte, cihaz üreticisi tarafından sağlanan TV Girişi güvenilirdir ve TV Sağlayıcısına tam erişime sahiptir. Geçişli bir TV Girişi olarak, TV Sağlayıcısı'na herhangi bir kanal veya program kaydetmez. buildChannelUriForPassthroughInput(String inputId) girdisine başvuruda bulunmak için kullanılan buildChannelUriForPassthroughInput(String inputId) için android.media.tv.TvContract yardımcı programı buildChannelUriForPassthroughInput(String inputId) yöntemini buildChannelUriForPassthroughInput(String inputId) . TV Uygulaması, HDMI TV Girişine ulaşmak için TV Giriş Yöneticisi ile iletişim kurar.

Yerleşik tuner örneği

Android TV Dahili Tuner Girişi
Şekil 4. Android TV Dahili Tuner Girişi

Bu örnekte, cihaz üreticisi tarafından sağlanan Dahili Tuner TV Girişi güvenilirdir ve TV Sağlayıcısına tam erişime sahiptir.

Üçüncü taraf girdi örneği

Android TV üçüncü taraf girişi
Şekil 5. Android TV üçüncü taraf girişi

Bu örnekte, harici STB TV Girişi üçüncü bir tarafça sağlanır. Bu TV Girişi, gelen HDMI video akışına doğrudan erişemediğinden, TV Giriş Yöneticisi'nden geçmeli ve cihaz üretimi tarafından sağlanan HDMI TV Girişini kullanmalıdır.

TV Giriş Yöneticisi aracılığıyla harici STB TV Girişi, HDMI TV Girişi ile konuşabilir ve videodan HDMI1'de görünmesini isteyebilir. Böylece, üretici tarafından sağlanan HDMI TV Girişi videoyu oluştururken STB TV Girişi TV'yi kontrol edebilir.

Resim içinde resim (PIP) örneği

Android TV Anahtarı
Şekil 6. Android TV KeyEvents

Yukarıdaki şema, uzaktan kumandadaki düğmelerin resim içinde resim (PIP) görüntüsü için belirli bir TV Girişine nasıl aktarıldığını gösterir. Bunlar düğme presler Android tekrarların donanım scancodes dönüştürme ve standart Android onları geçirmeden, cihaz üretici tarafından sağlanan donanım sürücüsü tarafından yorumlanır giriş boru hattı InputReader ve InputDispatcher gibi işlevler KeyEvents . Bunlar, eğer odakta ise TV Uygulamasındaki olayları tetikler.

Yalnızca sistem TV Girişleri, yalnızca RECEIVE_INPUT_EVENT sistem izni varsa InputEvents almaya uygundur. TV Girişi, hangi InputEvent öğelerinin kullanılacağını belirlemekten sorumludur ve TV Uygulamasının tüketmesi gerekmeyen anahtarları kullanmasına izin vermelidir.

TV Uygulaması, hangi sistem TV Girişinin etkin olduğunu, yani kullanıcı tarafından seçileni bilmekten ve gelen KeyEvents ve olayı ilgili TV Girişine iletmek için dispatchInputEvent() çağırmaktan doğru TV Giriş Yöneticisi oturumuna yönlendirmekten sorumludur. .

MHEG-5 giriş örneği

Aşağıdaki şema, KeyEvents Android TIF üzerinden nasıl yönlendirildiğine ilişkin daha ayrıntılı bir görünümü göstermektedir.

Android TV Kırmızı düğme örneği
Şekil 7. Android TV Kırmızı düğme örneği

Avrupa'da, kullanıcıların televizyonlarındaki etkileşimli uygulamalara erişmesine izin vermek için yaygın olan bir Kırmızı düğme uygulamasının akışını gösterir. Bu taşıma akışı üzerinden bir uygulama yayınlanabilir. Düğme tıklandığında, kullanıcıların bu yayın uygulamalarıyla etkileşime girmesini sağlar. Örneğin, bu yayın uygulamalarını ilgili web sayfalarına veya spor skorlarına erişmek için kullanabilirsiniz.

Yayın uygulamalarının TV Uygulaması ile nasıl etkileşime girdiğini öğrenmek için Yayın uygulaması bölümüne bakın.

Bu örnekte:

  1. TV Uygulaması odaklanmıştır ve tüm tuşları alır.
  2. KeyEvents (örn. Kırmızı düğme) aktif TV Girişine InputEvents. olarak aktarılır InputEvents.
  3. Sistem TV Girişi MHEG-5 yığını ile bütünleşir ve RECEIVE_INPUT_EVENT sistem iznine sahiptir.
  4. Aktivasyon anahtar kodu alındığında (örn. Kırmızı düğme) TV Girişi yayın uygulamasını etkinleştirir.
  5. TV girişi tüketir KeyEvents olarak InputEvents ve yayın uygulaması odak ve kolları olan InputEvents görevden kadar.

Not : Üçüncü taraf TV girişleri hiçbir zaman anahtar almaz.

TV Girişi HAL

TV Girişi HAL, TV'ye özgü donanıma erişmek için TV Girişlerinin geliştirilmesine yardımcı olur. Diğer Android tv_input olduğu gibi, TV Girişi HAL ( tv_input ) AOSP kaynak ağacında bulunur ve satıcı uygulamasını geliştirir.

TV Uygulaması

Sistem TV Uygulaması kullanıcıya canlı TV içeriği sunar. Android platformunun yanında olduğu gibi kullanılabilir, özelleştirilebilir, genişletilebilir veya cihaz üreticileri tarafından değiştirilebilen bir referans TV Uygulaması (Canlı TV) sağlanır. Kaynak kodu Android Açık Kaynak Projesi'nde mevcuttur ve referans TV uygulaması makalesinde başlayabilirsiniz.

Cihaz üreticileri, TV Uygulamalarını cihaz üreticisi veya ülkeye özgü özellikleri uygulayacak şekilde genişletebilir, ancak bu TIF veya referans TV Uygulaması kapsamında değildir.

Sistem TV Uygulaması en azından aşağıdaki görevleri yerine getirmelidir:

Kurulum ve yapılandırma

  • TV Girişlerini Otomatik Algıla
  • TV Girişlerinin kanal kurulumunu başlatmasına izin verin
  • Ebeveyn ayarlarını kontrol etme
  • Kanalları düzenle

İzlenimi

  • Tüm TV kanallarına erişme ve bu kanallarda gezinme
  • TV programı bilgi çubuğuna erişme
  • Elektronik Programlama Kılavuzu (EPG) verilerini görüntüleme
  • Birden fazla ses ve altyazı parçasını destekleyin
  • Ebeveyn kontrolü PIN sorgusu sağlayın
  • TV standardı (HbbTV vb.) İçin TV Girişi kullanıcı arayüzü yer paylaşımına izin ver
  • TV kanalları ve programları için arama sonuçlarını doldurma
  • Uygulama bağlantı kartlarını görüntüle
  • Zaman kaydırıcı API'ları destekleyin
  • DVR işlevlerini kullanın ve TV kayıt API'lerini destekleyin

Bu özellik kümesi, platform TIF API'lerinin genişletildiği yeni Android sürümlerine paralel olarak artacaktır. CTS Verifier uyumluluk testi kapsamını sağlar.

Üçüncü taraf TV Girişleri desteği

Android TV, yüklü uygulamaların canlı TV deneyimine yazılım kanalları sunmasını sağlayan üçüncü taraf TV girişleri için geliştirici API'ları sağlar. Uyumlu bir Android cihaz uygulamasını sağlamak için, sistem TV Uygulaması üçüncü taraf TV girişlerini ve kanallarını kullanıcıya sunma konusunda bazı sorumluluklara sahiptir. Referans Live TV uygulaması uyumlu bir uygulama sağlar; sistem TV Uygulamasını değiştiriyorsanız, cihaz üreticileri, tüm Android TV cihazlarında geliştirici beklentilerini karşılamak için kendi uygulamalarının benzer uyumluluk sağladığından emin olmalıdır.

Sistem TV Uygulaması, cihazın varsayılan canlı TV hizmetinin yanı sıra üçüncü taraf girişlerini de yansıtmalıdır. Geliştirici API'larının vaadi, kullanıcıların standart TV deneyimlerinde kanalları (yüklendikten sonra) bulabilmeleridir.

Android CDD'nin TV Uygulaması bölümünde tanımlandığı gibi, yerleşik kanallarla üçüncü taraf kanallar arasında görsel farklılaşmaya izin verilir.

Aşağıdaki bölümlerde Live TV uygulamasının CDD gereksinimlerini nasıl karşıladığı gösterilmektedir.

Yeni kanal kurulumu

Yeni üçüncü taraf girdilerinin / kanallarının eklenmesi, kullanıcının Google Play gibi bir uygulama mağazasından TV Girişi bulması ve yüklemesiyle başlar.

Bazı üçüncü taraf TV girişleri otomatik olarak TvProvider veritabanına kanal ekler. Ancak, çoğu kullanıcının kanallarını ayarlamasını, oturum açma ayrıntılarını ve diğer işlemleri yapmasını sağlayan bir Kurulum etkinliği sağlar. Sistem TV Uygulaması, kullanıcının bu Kurulum etkinliğini etkinleştirebilmesini sağlamalıdır, bu nedenle CDD'nin üçüncü taraf girişlerinin ana TV Uygulamasından uzakta minimum gezinme eylemleri olmasını gerektirir.

Referans Live TV uygulaması, girişlere erişmek için Kanal Kaynakları menüsünü sağlar.

Ayarlara git
Şekil 8. Ayarlar'a gidin.

Ayarlar'da Kanal kaynağına gidin
Şekil 9. Ayarlar'da Kanal kaynaklarına gidin.

Listeden kaynağınızı seçin.
Şekil 10. Listeden kaynağınızı seçin.

Kaynağınızdan kanal ekleyin
Şekil 11. Kaynağınızdan kanal ekleyin.

Ayrıca, kullanıcıyı doğrudan Kur'a almak için yeni bir TvInput yüklendikten sonra TV Uygulaması menüsünün üstünde bir bildirim kartı gösterilir:

Yeni kanal kaynaklarını gösteren bildirim mevcut.
Şekil 12. Yeni kanal kaynaklarını gösteren bildirim mevcut.

Kullanıcı bildirim yoluyla işlem yaparsa, kaynaklarını Şekil 10'da görüldüğü gibi ayarlamayı seçebilir.

Bu alandaki geliştirici beklentileri için TV Giriş Hizmetinizi Tanımlama konusuna bakın.

Kanal listesini özelleştirin

Cihaz üreticileri belirli kanalları gizlemek ve kullanıcıların kendi EPG'lerini yönetmelerini sağlamak için bir kullanıcı arayüzü sağlayabilir. Canlı TV bu tesisi içermektedir.

Kanal listesini Ayarlar'da açın.
Şekil 13. Ayarlar'da kanal listesini açın.

Kanal listenizi özelleştirin.
Şekil 14. Kanal listenizi özelleştirin.

EPG

Üçüncü taraf girdi geliştiricilerinin, kullanıcıların genel kullanım sırasında tüm uyumlu Android TV cihazlarında kanallarına kolayca gidebileceğinden emin olmaları gerekir.

Üçüncü taraf girdilerinden gelen kanallar, cihazın standart canlı TV deneyimi EPG'sinin bir parçası olarak sunulmalıdır. Üçüncü taraf kanallar için görsel ayırma veya ayrı kategoriler kullanılabilir (Android CDD'nin TV Uygulaması bölümüne bakın) - bunun anahtarı, kullanıcıların yükledikleri kanalları bulabilmesidir.

Üreticilerin, en iyi kullanıcı deneyimini sağlamak için küresel arama isteklerine ilişkin arama sonuçlarını dahil etmek için TV Uygulamasını uygulaması gerekir. Live TV, dahili girişlerin yanı sıra üçüncü taraf girdilerinden (platform uyumluluğu için gerekli) sonuçlar sağlayan bir uygulama (bkz. Com.android.tv.search.TvProviderSearch ) sağlar.

Zaman kaydırma

Android 6.0 ve sonraki sürümlere sahip cihazlar için TV Uygulaması, Android çerçeve zaman kaydırma API'larını desteklemelidir . Ayrıca, üreticilerin kullanıcıların TV oynatımını duraklatmasını, sürdürmesini, geri sarmasını ve hızlı ileri sarmasını sağlayan oynatma denetimlerini uygulaması gerekir.

Zaman kaydırmayı destekleyen TV Girişleri için TV Uygulaması oynatma kontrollerini görüntülemelidir.

Oynatma kontrolleri
Şekil 15. Oynatma kontrolleri

DVR

Android 7.0 ve üzerindeki cihazlarda TV Uygulaması, kayıtlı programları desteklemek, listelemek ve oynatmak için Android framework TV kayıt API'lerini desteklemelidir.

Bu, cihaz üreticilerinin DVR alt sistemlerini TIF'e takmalarını ve DVR işlevini bir TV cihazında etkinleştirmek veya entegre etmek için gereken entegrasyon çabalarını önemli ölçüde azaltmalarını sağlar. Ayrıca üçüncü tarafların bir Android TV cihazına takılabilen satış sonrası DVR sistemleri sağlamasına da olanak tanır.

Canlı içerik kaydetmeye ek olarak, TV Uygulaması kaynak çakışmasını da ele alır. Örneğin, cihazın iki alıcısı varsa, aynı anda iki program kaydedebilir. Kullanıcı üç tane kaydetmeyi isterse, TV Uygulaması çakışmayı ele almalı ve bir bildirimde bulunmalı veya kullanıcının bu istekler için bir öncelik planlamasını istemelidir.

TV Uygulamaları ayrıca, kullanıcıya bir bölümü kaydetmek istediğinde gelecekteki tüm bölümleri bir dizide kaydetmek isteyip istemediğini sormak gibi daha karmaşık bir mantık uygulayabilir.

Android TV'de olası bir DVR uygulamasının görüntülenmesi için aşağıdaki şemaya bakın.

Android TV'de dijital video kaydı
Şekil 16. Android TV'de dijital video kaydı

  1. TV Giriş Hizmeti, TV Uygulamasına kaç tunerin bulunduğunu söyler, böylece TV Uygulaması olası kaynak çakışmasını çözebilir.
  2. TV Uygulaması, bir TV programını kaydetmek için kullanıcı tarafından başlatılan bir istek alır.
  3. TV Uygulaması kayıt programını dahili veritabanında saklar.
  4. Kayıt zamanı geldiğinde, TV Uygulaması kayıtla ilişkili kanalı ayarlamak için bir istek iletir.
  5. TV Giriş Hizmeti bu isteği alır, uygun kaynakların olup olmadığına yanıt verir ve kanalı ayarlar.
  6. Daha sonra TV Uygulaması, TV Giriş Yöneticisine kayıt başlatma isteğini iletir.
  7. TV Giriş Hizmeti bu isteği alır ve kaydetmeye başlar.
  8. TV Giriş Hizmeti, gerçek video verilerini harici depolama veya bulut depolama olabilecek depolama alanında saklar.
  9. Kaydı bitirmenin zamanı geldiğinde, TV Uygulaması kayıt durdurma isteğini TV Giriş Yöneticisine iletir.
  10. TV Giriş Hizmeti isteği aldıktan sonra, kaydı durdurur ve ilişkili Meta verilerini TV Sağlayıcısına ekler, böylece TV Uygulaması istendiğinde kaydı kullanıcılara gösterebilir.

TV Girişi hizmetinizde Kayıt özelliklerini uygulama hakkında daha fazla bilgi için bu TV Kaydı makalesine bakın.

Yararlı kaynaklar

  • Android CDD ve belgelenmiş geliştirici API'ları kesin referanslardır.
  • CTS Verifier, API'leri uyumluluk test programının bir parçası olarak kullanır. Bunu Live TV'de çalıştırmak, EPG, Arama, Ebeveyn Kontrolü ve diğer gereksinimleri üçüncü taraf girdileri bağlamında görmenin yararlı bir yolu olabilir.
  • Bu alandaki geliştirici beklentileri için TV Giriş Hizmetinizi Tanımlama konusuna bakın.

Ebeveyn Kontrolü

Ebeveyn kontrolü, kullanıcının istenmeyen kanalları ve programları engellemesine izin verir, ancak bir PIN kodu girerek bloğu atlar.

Ebeveyn kontrolü işlevselliğinin sorumluluğu TV Uygulaması, TV Giriş Yöneticisi hizmeti, TV Sağlayıcısı ve TV Girişi arasında paylaşılır.

Ebeveyn kontrolü zorunludur ve CTS Doğrulayıcı tarafından kapsanmaktadır.

Bazı ülkelerde TV Girişlerinin TVContentRating API'sı aracılığıyla kullanabileceği derecelendirme sistemleri tanımlanmıştır. Ayrıca, TV Girişleri CTS Verifier testinde gösterildiği gibi kendi 'özel' derecelendirmelerini sunan kendi özel derecelendirme sistemlerini kaydedebilir. Standart bir derecelendirme sisteminin bulunduğu ülkeler için, cihaz üreticilerinin TV Giriş Çerçevesi Ebeveyn Kontrolü'nü içerebilecekleri diğer mekanizmalarla birleştirmeleri önerilir.

TV Sağlayıcısı

Her kanal satırında, belirli kanalların PIN kodu girmeden görüntülenmesini kilitlemek için kullanılan bir COLUMN_LOCKED alanı vardır. COLUMN_CONTENT_RATING program alanı görüntüleme COLUMN_CONTENT_RATING ve ebeveyn kontrolünü zorlamak için kullanılmaz.

TV Giriş Yöneticisi

TV Giriş Yöneticisi engellenen her TvContentRating saklar ve verilen derecelendirmeye sahip içeriğin engellenip engellenmeyeceğini TvContentRating için isRatingBlocked() yanıt verir.

TV Girişi

TV Girişi, görüntülenen içeriğin derecelendirmesi değiştiğinde (program veya kanal değişikliğinde) veya ebeveyn kontrolü ayarlarının değiştiğinde ( ACTION_BLOCKED_RATINGS_CHANGED ve ACTION_PARENTAL_CONTROLS_ENABLED_CHANGED ) mevcut içeriğin TV Giriş Yöneticisi'nde isRatingBlocked() çağrılarak engellenip engellenmediğini kontrol eder. . İçeriğin engellenmesi gerekiyorsa, TV Girişi ses ve videoyu devre dışı bırakır ve TV uygulamasına notifyContentBlocked(TvContentRating) çağrılarak geçerli içeriğin engellendiğini bildirir. İçeriğin engellenmemesi gerekiyorsa, TV Girişi ses ve videoyu etkinleştirir ve TV Uygulamasına bildirmek için notifyContentAllowed() çağrılarak mevcut içeriğe izin verilir.

TV Uygulaması

Ebeveyn kontrolü API'larını onurlandırmak ve bu nedenle uyumlu bir platform oluşturmak için sistem TV Uygulaması, kullanıcıların belirli uygulamalar tarafından kaydedilen özel derecelendirmeler de dahil olmak üzere ebeveyn kontrolünü yönetmeleri için bir yol sağlamalıdır.

TV Uygulaması, bir TV Girişi tarafından geçerli içeriğin engellendiğini bildiren veya kullanıcı engellenen bir kanalı görüntülemeye çalıştığında bir PIN kodu kullanıcı arayüzü gösterir.

TV Uygulaması doğrudan ebeveyn kontrolü ayarlarını kaydetmez. Kullanıcı ebeveyn kontrolü ayarlarını değiştirdiğinde, engellenen her TvContentRating TV Giriş Yöneticisi tarafından saklanır ve engellenen kanallar TV Sağlayıcısı tarafından saklanır.

TV Uygulaması ebeveyn kontrolü ayarlarını değiştirmek için android.permission.MODIFY_PARENTAL_CONTROLS iznini bildirmelidir.

Cihaz üreticileri şunları yapmaya teşvik edilir:

  • Uyumluluk gereksinimlerini göstermek için referans Canlı TV uygulamasına karşı CTS Verifier ebeveyn kontrolleri testini uygulayın.
  • Canlı TV uygulamasını kendi TV Uygulamalarına referans olarak kullanın: özellikle ContentRatingsManager ve RatingSystemsFragment kaynağına ve özel derecelendirmeleri nasıl ele aldıklarına bakın.

HDMI-CEC

HDMI-CEC, bir cihazın diğerini kontrol etmesini sağlar, böylece tek bir uzaktan kumandanın bir ev sinema sistemindeki birden fazla cihazı kontrol etmesini sağlar. Android TV tarafından kurulumu hızlandırmak ve merkezi TV Uygulaması aracılığıyla çeşitli TV Girişleri üzerinde uzaktan kontrol sağlamak için kullanılır. Örneğin, girişler arasında geçiş yapabilir, aygıtları açabilir veya kapatabilir ve daha fazlası.

Android TIF, HDMI-CEC'yi HDMI Kontrol Hizmeti olarak uygular, böylece cihaz üreticilerinin yalnızca hafif Android TV HAL ile etkileşime giren ve daha karmaşık iş mantığını atlayarak düşük seviyeli sürücüler geliştirmeleri gerekir. Standart bir uygulama sunarken Android, parçalanmış uygulamaları ve seçici özellik desteğini azaltarak uyumluluk sorunlarını azaltmaya çalışır. HDMI Kontrol Servisi, giriş ve güç dahil olmak üzere mevcut Android servislerini kullanır.

Bu, mevcut HDMI-CEC uygulamalarının Android TIF ile birlikte çalışmak için yeniden tasarlanması gerektiği anlamına gelir. Donanım platformunun CEC gücünü ve diğer komutları almak için bir mikroişlemci içermesini öneririz.

Android TV'de CEC entegrasyonu
Şekil 17. Android TV'de CEC entegrasyonu

  1. CEC veri yolu, o anda etkin olan kaynaktan farklı bir kaynağa geçmek için bir komut alır.
  2. Sürücü komutu HDMI-CEC HAL'a iletir.
  3. HAL, tüm ActiveSourceChangeListeners bildirir.
  4. HDMI Kontrol Hizmetine ActiveSourceChangeListener aracılığıyla kaynak değişikliği bildirilir.
  5. TV Giriş Yöneticisi hizmeti, TV Uygulaması için kaynağı değiştirmeye yönelik bir amaç oluşturur.
  6. TV Uygulaması daha sonra, geçiş yapılan TV Girişi için bir TV Giriş Yöneticisi Oturumu oluşturur ve o oturumda setMain çağırır.
  7. TV Giriş Yöneticisi Oturumu bu bilgileri HDMI TV Girişine aktarır.
  8. HDMI TV girişi yan bant yüzeyinin ayarlanmasını ister.
  9. TV Giriş Yöneticisi Hizmeti, yüzey ayarlandığında HDMI Kontrol Hizmetine karşılık gelen bir yönlendirme kontrol komutu üretir.

TV entegrasyon yönergeleri

Yayın uygulaması

Her ülkenin yayına özgü gereksinimleri (MHEG, Teletext, HbbTV ve daha fazlası) olduğundan, üreticilerin yayın uygulaması için kendi çözümlerini sağlamaları beklenir, örneğin:

  • MHEG: yerel yığın
  • Teletekst: yerel yığın
  • HbbTV: Vewd Software'den HbbTV çözümü

Android L sürümünde, Android TV, cihaz üreticilerinin bölgesel TV yığınları için sistem entegratörleri veya Android çözümleri kullanmasını, yüzeyi TV yazılım yığınlarına geçirmesini veya eski yığınlarla etkileşim kurmak için gerekli anahtar kodunu geçmesini bekliyor.

Yayın uygulaması ve TV Uygulaması şu şekilde etkileşime girer:

  1. TV Uygulaması odaklanmıştır ve tüm tuşları alır.
  2. TV Uygulaması, tuşları (örn. Kırmızı düğme) TV Giriş cihazına geçirir.
  3. TV Giriş cihazı dahili olarak eski TV yığını ile entegre olur.
  4. Bir aktivasyon anahtar kodu alındığında (örn. Kırmızı düğme) TV Girişi cihazı yayın uygulamalarını etkinleştirir.
  5. Bir yayın uygulaması TV Uygulamasına odaklanır ve kullanıcı işlemlerini gerçekleştirir.

Sesli arama / öneri için, yayın uygulaması sesli arama için Uygulama İçi aramayı destekleyebilir.