Dinamik ses çubuğu modu

OEM'ler, Android 14 çerçeve desteğiyle yerleşik veya bağlı hoparlörlere sahip set üstü kutuları (STB'ler) ve baypas (OTT) cihazları, bağlı cihazlar için ses çubuğu olarak yapılandırabilir. Android 14'teki dinamik ses çubuğu modu (DSM), ses çubuğu için HDMI tüketici elektroniği kontrolü (CEC) özelliklerini (ör. ses dönüş kanalı (ARC) ve sistem ses kontrolü) destekler.

Bu özellik yalnızca Android TV CEC oynatma cihazlarını hedefler.

Şartlar

Ses çubuğu özelliğini kullanmak için OEM'lerin bu bölümde listelenen cihaz ve Sistem Kullanıcı Arayüzü gereksinimlerini karşılaması gerekir.

Cihaz gereksinimleri

DSM'yi desteklemek için STB veya OTT cihazının aşağıdaki şartları karşılaması gerekir:

  • Cihazda Android 14 yüklü olmalıdır.
  • DSM etkinleştirildiğinde cihaz, ARC gibi HDMI CEC spesifikasyonlarına uygun bir ses çubuğu gibi davranmalıdır.
  • Cihaz, dahili veya bağlı hoparlörlerde ses çalabilmelidir.
  • Cihaz etkin bir kaynak olmadığında cihazdaki tüm medya duraklatılmalıdır. Bu sayede cihazın güç tüketimi sınırlandırılır.

Sistem kullanıcı arayüzü gereksinimleri

OEM'lerin DSM'yi desteklemesi için sistem kullanıcı arayüzünü tasarlarken aşağıdaki koşulları karşılaması gerekir:

  • Kullanıcı arayüzü etiketi, ARC veya Ses Dönüş Kanalı (ARC) referansı içermelidir.
  • Kullanıcı arayüzü, ARC bağlantısını kurmak için kullanıcıyı cihazı TV'nin ARC bağlantı noktasına bağlaması konusunda bilgilendirmelidir.
  • Kullanıcı arayüzü, HDMI ağına başka bir ses çubuğu veya ses/video alıcısı (AVR) bağlıysa özelliğin beklendiği gibi çalışmayabileceğini kullanıcıya bildirmelidir.
  • Kullanıcı arayüzü, ayar değiştirilirken ekranın titreyebileceğini kullanıcıya bildirmelidir.
  • Cihazın yerleşik hoparlörü yoksa DSM varsayılan olarak devre dışı bırakılmalıdır.

En iyi uygulama olarak, SysUI uygulamasında gösterildiği gibi ARC'yi etkinleştirmek veya devre dışı bırakmak için kullanıcı ayarının konumu olarak Ekran ve Ses menüsünü kullanmanızı öneririz.

Çerçeve uygulaması

CEC ses çubuğu işlevinin uygulanması ve mantıksal adres 5'in dinamik olarak ayrılması Android çerçevesinde mevcuttur. Çerçeve, cihazın dinamik olarak ses çubuğu haline gelmesi için ses çubuğu ayarı etkinleştirildiğinde mantıksal adresi ayırır. Ses çubuğu ayarı devre dışı bırakıldığında, çerçeve mantıksal adresi ayırır.

Sistem kullanıcı arayüzündeki kullanıcı girişine bağlı olarak HdmiControlManager, CEC_SETTING_NAME_SOUNDBAR_MODE değerini SOUNDBAR_MODE_ENABLED veya SOUNDBAR_MODE_DISABLED olarak ayarlar. CEC_SETTING_NAME_SOUNDBAR_MODE politikasının varsayılan değeri SOUNDBAR_MODE_DISABLED olarak ayarlanmıştır.

HdmiControlService, aşağıdakileri yapmak için CEC_SETTING_NAME_SOUNDBAR_MODEayarındaki değişimi dinler:

  • Yerel bir oynatma cihazının olup olmadığını ve ARC mülkünün desteklenip desteklenmediğini doğrulayın.
  • Yerel ses cihazını eklemek veya kaldırmak için mantıksal adres tahsisini tetikleyin.
  • Cihaz hotplug ise ayarın durumunun korunduğundan emin olun.

Ses çubuğu modunun durumunu ayarlamak ve almak için aşağıdaki örnek beyana bakın:

    /**
     * Name of a setting deciding whether the Soundbar mode feature is enabled.
     * Before exposing this setting make sure the hardware supports it, otherwise, you may
     * experience multiple issues.
     *
     * @see HdmiControlManager#setSoundbarMode(int)
     */
    public static final String CEC_SETTING_NAME_SOUNDBAR_MODE = "soundbar_mode";
    /**
     * Soundbar mode feature enabled.
     */
    public static final int SOUNDBAR_MODE_ENABLED = 1;
    /**
     * Soundbar mode feature disabled.
     */
    public static final int SOUNDBAR_MODE_DISABLED = 0;

   /**
     * Set the status of Soundbar mode feature.
     *
     * This allows to enable/disable Soundbar mode on the playback device.
     * The setting's effect will be available on devices where the hardware supports this feature.
     * If enabled, an audio system local device will be allocated and try to establish an ARC
     * connection with the TV. If disabled, the ARC connection will be terminated and the audio
     * system local device will be removed from the network.
     */
    public void setSoundbarMode(@SoundbarMode int value) {
    }

    /**
     * Get the current status of Soundbar mode feature.
     *
     * Reflects whether Soundbar mode is currently enabled on the playback device.
     * If enabled, an audio system local device will be allocated and try to establish an ARC
     * connection with the TV. If disabled, the ARC connection will be terminated and the audio
     * system local device will be removed from the network.
     */
    public int getSoundbarMode() {}

OEM uygulaması

OEM'lerin dinamik ses çubuğu özelliğini desteklemek için donanımın bu özelliği desteklediğinden emin olması gerekir. OEM'ler, kullanıcı girişleri için gerekli arayüzü sağlamak amacıyla cihazı yapılandırmalı ve Sistem kullanıcı arayüzünü uygulamalıdır.

Cihaz uygulaması

Bir cihazda ses çubuğu özelliğini desteklemek için:

  1. Android 14'te oynatma cihazını açın.
  2. Sürücüye HDMI ARC bağlantı noktasını uygulayın.
  3. Özelliğin varsayılan olarak devre dışı kalması için config.xml içindeki config_cecSoundbarModeEnabled_default ve config_cecSoundbarModeDisabled_default RRO değerlerini değiştirmeden bırakın.

  4. Ses çalmak için cihazda yerleşik veya bağlı hoparlörler bulunduğundan emin olun ve ses politikası yapılandırmasını düzenleyin.

  5. ARC'nin desteklendiğini belirtmek için persist.sys.hdmi.property_arc_support sistem özelliğini true olarak ayarlayın.

  6. Sistem kullanıcı arayüzünde ses çubuğu modunu açıp kapatmak için ayarı açın.

  7. Hata ayıklama için ses çubuğu özelliğini açmak veya kapatmak üzere aşağıdaki adb komutunu kullanın (1 açık, 0 kapalı anlamına gelir):

adb shell cmd hdmi_control cec_setting set soundbar_mode <1/0>

SysUI uygulaması

Bu bölümde, DSM'yi açma ve kapatma için önerilen bir örnek kullanıcı arayüzü akışı açıklanmaktadır. Ses çıkışı ayarı, Şekil 1'de gösterildiği gibi Ekran ve Ses menüsünün altındadır:

dsm_audio_output

Şekil 1. Ekran ve Ses menüsündeki ses çıkışı ayarı.

DSM'nin çalışması için HDMI-CEC'yi etkinleştir ayarının açık olması gerekir. ARC ayarı yalnızca HDMI-CEC etkinse etkinleştirilebilir. HDMI-CEC devre dışı bırakılırsa (Şekil 2'de gösterildiği gibi) ARC ayarı kullanılamaz ve devre dışı bırakılır. Aşağıdaki kullanıcı arayüzü akışında, kullanıcı Ekran ve Ses menüsünde HDMI-CEC'yi etkinleştir ayarını kapatıp Ev Hoparlörü'nü seçtiğinde ARC ayarı devre dışı bırakılır. Kullanıcı, HDMI-CEC'yi etkinleştir'i etkinleştirerek Televizyon sesini oynat ayarını etkinleştirebilir.

dsm_ui_devre dışı_bırak

Şekil 2. Devre dışı bırakılan ARC seçeneğinin kullanıcı arayüzü.

HDMI-CEC ayarı etkinleştirildiğinde kullanıcı, DSM'yi açıp kapatmak için Ses çıkışı altındaki ARC ayarını kullanabilir. Kullanıcı, DSM'yi açmak için şekil 3'teki kullanıcı arayüzü akışını izler. Aşağıdaki kullanıcı arayüzü akışında ses çubuğu modunu etkinleştirmek için kullanıcı Ev Hoparlörü'nü seçer ve ARC ayarını seçer. Kullanıcı, DSM'yi kapatmak için ARC ayarını kapatır.

dsm_ui_enable_yarc

Şekil 3. DSM'yi etkinleştirme kullanıcı arayüzü.

Doğrulama

OEM'ler, oynatma cihazının hoparlörlerinin TV'den veya TV paneline bağlı diğer cihazlardan gelen sesi çaldığından emin olmak için ses testi yapabilir.

Manuel doğrulama

Beklenen davranışı manuel olarak doğrulamak için aşağıdaki senaryoları kullanın:

  • ARC ayarı etkin durumda:
    • TV kendi sesini kapatır.
    • TV sesi cihazın hoparlörlerine yönlendirilir.
  • ARC ayarı devre dışı bırakılır:
    • TV, sesi cihaza yönlendirmeyi durdurur.
    • TV, ses çalmaya başlar.
  • ARC ayarı etkinse ve cihaz TV'deki ARC olmayan bir bağlantı noktasına bağlıysa:
    • Cihaz, TV'nin sesini çalmaz.
  • ARC ayarı etkinse ve cihaz bağlanmadan önce mantıksal adres 5 başka bir cihaz tarafından kullanılıyorsa:
    • Cihaz bir ses çubuğu değil, salt oynatma cihazı gibi davranır.
  • ARC ayarı etkin, cihaz tarafından mantıksal adres 5 kullanılıyor ve ağa başka bir ses sistemi bağlı:
    • Cihazın ses çubuğu davranışında değişiklik olmaz.
  • ARC ayarı etkin, ARC olmayan bir bağlantı noktasına bağlı cihaz tarafından mantıksal adres 5 kullanılıyor ve ARC bağlantı noktasına başka bir ses sistemi bağlı:
    • Kayıtlı olmayan mantıksal bir adres kullandığı için ikinci ses sistemi için TV ile ARC bağlantısı kurulmuyor.
  • ARC ayarı etkinse ve cihaza sıcak takma işlemi uygulandıysa:
    • Cihaz, ayar etkinleştirildiğinde olduğu gibi normal davranışı izler.

CTS doğrulaması

Ses çubuğu ayarı devre dışıyken CtsHdmiCecHostTestCases koşulunun karşılanması gerekir. CtsHdmiCecHostTestCases test paketindeki HdmiCecSoundbarModeTest.java testi, DSM işlevlerini test eder.

Sertifika şartı olmasa da uygulamanızı doğrulamak için soundbar ayarı etkinken CtsHdmiCecHostTestCases'ü çalıştırın.

HDMI CEC için Android CTS testlerini çalıştırmak istiyorsanız Android TV cihazları için CEC CTS testi başlıklı makaleyi inceleyin.