Android 14, uygulamaların USB ses oynatma için tercih edilen mikser özelliklerini sorgulamak ve yapılandırmak için kullanabileceği geliştirici API'leri sağlar. Bu tercih edilen mikser özellikleri, uygulamaların ses formatını, kanal maskesini, örnekleme hızını ve mikser davranışını ayarlamasına izin vererek USB ses oynatma deneyimini geliştirir. Desteklenen USB cihazlarında tercih edilen mikser API'lerinin kullanılmasıyla kullanıcılar, daha düşük gecikmeli ses oynatma ve daha yüksek çözünürlüklü ses içeriği elde edebilir.
Bu özellik aynı zamanda USB aygıtları için isteğe bağlı bit-mükemmel oynatma mikseri davranışı için destek sağlar. Bit-perfect modu, uyumlu dijital-analog dönüştürücülerde (DAC'ler) ana kalite kimlik doğrulamalı (MQA) ve doğrudan akış dijital (DSD) formatlarının oynatılmasına olanak tanır.
Arayüz
Ses Politikası Yöneticisi, çerçevedeki mikser niteliklerini yönetir. AudioMixerAttributes
sınıfı, mikserin niteliklerini temsil eder. AudioMixerAttributes
sınıfı, mikserin ses veri formatını, kanal maskesini ve örnekleme hızını tanımlayan bir AudioFormat
nesnesi içerir. Varsayılan olarak çerçeve, tüm ses kaynaklarını karıştıran ve ses kontrolü ve efektleri uygulayan mikser davranışını belirler.
Mikser davranışı BIT_PERFECT
modunu kullanıyorsa, sistem ses içeriğini değişiklik yapmadan ses çerçevesi, HAL ve isteğe bağlı olarak dijital sinyal işlemcisi (DSP) aracılığıyla API'den USB cihazına gönderir. BIT_PERFECT
modu, MQA veya DSD gibi kodlanmış formatları destekler; bu formatlarda herhangi bir hacim ölçekleme veya karıştırma, verilerin anlamını yok edebilir.
Uygulamalar mikser niteliklerini yapılandırdığında, çerçeve gerekirse çıkış akışını yeni niteliklerle yeniden açar. Aşağıdaki şekil, mikser öznitelikleri ayarlandığında uygulama, çerçeve ve HAL arasındaki arayüzü gösterir:
Şekil 1. Uygulama, çerçeve ve HAL arasındaki arayüz.
Uygulama
Android 14 için USB ses için BIT_PERFECT
özelliği dışında tercih edilen mikser özelliklerinin uygulanması zorunludur.
Tercih edilen karıştırıcı özellikleri
Tercih edilen mikser özelliklerini desteklemek için satıcıların USB aygıtlarını dinamik karışım bağlantı noktasına aşağıdaki şekilde yönlendirmeyi desteklemesi gerekir:
usb_audio_policy_configuration.xml
dosyasında dinamik karışım bağlantı noktasını tanımlayın.USB aygıtlarını , ses ilkesi yapılandırmasında veya
getAudioPorts
vegetAudioRoutes
AIDL yöntemlerinde dinamik karıştırma bağlantı noktalarına yönlendirme yeteneğini bildirin.
hardware/libhardware/modules/usbaudio
altında USB ses HAL'sinin referans uygulamasına bakın. frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml
dosyasındaki dinamik karışım bağlantı noktası örneğine bakın.
Bit-mükemmel oynatma özelliği
Bit-perfect oynatma özelliği isteğe bağlıdır ve yalnızca Ses HAL'in AIDL uygulamasında desteklenir. Mükemmel bit oynatmayı desteklemek için satıcıların, USB aygıtına yönlendirilebilecek dinamik miks bağlantı noktasına AUDIO_OUTPUT_FLAG_BIT_PERFECT
bit mükemmel çıkış bayrağını eklemeleri gerekir.
Aşağıdaki kod örneği, usb_audio_policy_configuration.xml
dosyasında AUDIO_OUTPUT_FLAG_BIT_PERFECT
bayrağının kullanımını gösterir:
<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 belirtilirse, HAL, ses akışının USB cihazına herhangi bir değişiklik yapılmadan gönderilmesini sağlamalıdır; yani ses akışında herhangi bir ses düzeyi ölçeklendirmesi, örnekleme hızı dönüşümü veya ses işleme efektleri olmamalıdır ve DSP'ye karıştırılmamalıdır. Bu durumda, çerçeve herhangi bir yazılım ses düzeyi denetimi sağlamadığından donanım ses düzeyini denetler.
Doğrulama
USB aygıtları için tercih edilen karıştırıcı niteliklerine yönelik desteği doğrulamak amacıyla PreferredMixerAttributesTestActivity.java
CTS testlerini çalıştırın.
BIT_PERFECT
özelliğinin uygulanmasını doğrulamak için darbe kod modülasyonu (PCM) ses formatları üzerinden MQA ve DSD'yi destekleyen USB DAC'leri kullanın.