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

OEM'lerin, ses çubuğu özelliğini kullanabilmesi için bu bölümde listelenen cihaz ve sistem kullanıcı arayüzü şartlarını karşılaması gerekir.

Cihaz gereksinimleri

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

  • Cihazınızda 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 tüm medyalar cihazda duraklatılmalıdır. Bu sayede 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ü etiketinde ARC veya Ses Çıkışı Kanalı (ARC)'na referans verilmelidir.
  • 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 adresin ayrılmasını sağlar.

HdmiControlManager, Sistem Kullanıcı Arayüzü'ndeki kullanıcı girişine göre 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 üzere cihazı yapılandırmalı ve Sistem Kullanıcı Arayüzü'nü uygulamalıdır.

Cihaz kullanımı

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 alanındaki config_cecSoundbarModeEnabled_default ve config_cecSoundbarModeDisabled_default RRO değerlerini değiştirmeyin.

  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 değiştirme ayarını gösterin.

  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_disable_arc

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

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

dsm_ui_enable_arc

Şekil 3. DSM'yi etkinleştirmek için 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ı etkinse:
    • TV sessiz moda geçer.
    • TV sesi cihazın hoparlörlerine yönlendirilir.
  • ARC ayarı devre dışıdı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, ses çubuğu değil, yalnızca 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 etkinken 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.