USB cihazlarda tercih edilen mikser özellikleri

Android 14, geliştirici API'leri sağlar USB için tercih edilen mikser özelliklerini sorgulamak ve yapılandırmak üzere uygulamaların kullanabileceği ses çalma. Bu tercih edilen mikser özellikleri uygulamaların ses biçimini ayarlamasına izin vererek USB ses çalma deneyimini iyileştirir. kanal maskesi, örnek hızı ve karıştırıcı davranışı. Tercih edilen Desteklenen USB cihazlarda mikser API'leri, kullanıcılar daha düşük gecikmeli ses çalabilir ve daha yüksek çözünürlüklü ses içeriği sunar.

Bu özellik, isteğe bağlı bit mükemmelliğinde oynatma mikserini de destekler. veya USB cihazlarıyla ilgili bir davranış örneğidir. Mükemmel bit modu, ana kopyanın oynatılmasını sağlar ve doğrudan akış dijital (DSD) biçimlerini kullanıyorsanız dijital-analog dönüştürücüler (DAC) için kullanılabilir.

Arabirim

Ses Politikası Yöneticisi, çerçevedeki mikser özelliklerini işler. İlgili içeriği oluşturmak için kullanılan AudioMixerAttributes class mikserin özelliklerini temsil eder. AudioMixerAttributes sınıfı bir AudioFormat ses veri biçimini, kanal maskesini ve örnek hızını açıklayan nesne mikser. Varsayılan olarak çerçeve, mikser davranışını belirler ve ses kontrolü ve efektleri uygulayın.

Mikser davranışı BIT_PERFECT modunu kullanıyorsa sistem, sesi gönderir ses çerçevesi, HAL ve isteğe bağlı olarak dijital sinyal işlemcisi (DSP) ile uyumludur. İlgili içeriği oluşturmak için kullanılan BIT_PERFECT modu, herhangi bir veya karıştırmak verilerin anlamlarını kaybetmesine neden olabilir.

Uygulamalar mikser özelliklerini yapılandırdığında çerçeve çıkış akışını yeniden açar yeni özellikler eklemeniz gerekebilir. Aşağıdaki şekilde, mikser özellikleri ayarlandığında uygulama, çerçeve ve HAL'yi destekler:

tercih edilen-mikser-attr

Şekil 1. Uygulama, çerçeve ve HAL arasındaki arayüz.

Uygulama

BIT_PERFECT dışında tercih edilen karıştırıcı özelliklerinin uygulanması özelliğini kullanmanızı öneririz.

Tercih edilen mikser özellikleri

Tercih edilen mikser özelliklerini desteklemek için tedarikçi firmaların, yönlendirme USB cihazlarını desteklemesi gerekir aşağıdaki gibi dinamik mix bağlantı noktasına ekleyin:

  1. usb_audio_policy_configuration.xml içinde dinamik mix bağlantı noktasını tanımlayın.

  2. USB cihazlarını dinamik mix bağlantı noktalarına ses politikası yapılandırması veya getAudioPorts ve getAudioRoutes AIDL yöntemlerinde kullanılabilir.

USB ses HAL'si için referans uygulamasını hardware/libhardware/modules/usbaudio altında bulabilirsiniz. frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml bölgesinde bir dinamik karma bağlantı noktası örneğini inceleyin.

Mükemmel oynatma özelliği

Mükemmel oynatma özelliği isteğe bağlıdır ve yalnızca AIDL'de desteklenir. Ses HAL'nin uygulanması. Mükemmel oynatmanın desteklenmesi için tedarikçi firmaların AUDIO_OUTPUT_FLAG_BIT_PERFECT mükemmel çıkış işaretini dinamiğe ekleyin USB cihazına yönlendirilebilen bir karma bağlantı noktası.

Aşağıdaki kod örneğinde, AUDIO_OUTPUT_FLAG_BIT_PERFECT usb_audio_policy_configuration.xml içinde işaretle:

<module name="usb" halVersion="2.0">
    <mixPorts>
        <mixPort name="hifi_output"
                 role="source" flags="AUDIO_OUTPUT_FLAG_BIT_PERFECT">
        </mixPort>
    </mixPorts>
    <devicePorts>
        <devicePort tagName="USB Device Out"
                    type="AUDIO_DEVICE_OUT_USB_DEVICE" role="sink">
        </devicePort>
    </devicePorts>
    <routes>
        <route type="mix" sink="USB Device Out"
               sources="hifi_output"/>
    </routes>
</module>

"Bit mükemmel" oynatma özelliği belirtilmişse HAL, USB cihazına herhangi bir değişiklik yapılmadan gönderilir, yani ses akışında ses düzeyi ölçeklendirme, örnek hızı dönüştürme veya ses bulunmamalıdır. ve DSP'de karıştırılmamalıdır. Bu durumda, çerçeve tarafından sağlanmadığından ses düzeyi donanım tarafından kontrol edilir. veya yazılımın ses seviyesi kontrolü yoktur.

Doğrulama

CTS testlerini PreferredMixerAttributesTestActivity.java USB cihazlarda tercih edilen mikser özelliklerinin desteğini doğrulamak için kullanılır.

BIT_PERFECT özelliğinin uygulandığını doğrulamak için şu özelliklere sahip USB DAC'ler kullanın: nabız kodu modülasyon (PCM) ses biçimleri üzerinden MQA ve DSD'yi destekler.