תכונות מיקסר מועדפות בהתקני USB

אנדרואיד 14 מספקת ממשקי API למפתחים שבהם אפליקציות יכולות להשתמש כדי לבצע שאילתות ולהגדיר תכונות מיקסר מועדפות עבור השמעת אודיו USB. תכונות המיקסר המועדפות הללו משפרות את חוויית השמעת אודיו ב-USB על ידי מתן אפשרות לאפליקציות להגדיר את פורמט השמע, מסכת הערוצים, קצב הדגימה והתנהגות המיקסר. עם השימוש בממשקי ה-API המועדפים של המיקסר בהתקני USB נתמכים, משתמשים יכולים לקבל השמעת אודיו עם אחזור נמוך יותר ותוכן שמע ברזולוציה גבוהה יותר.

תכונה זו מספקת גם תמיכה בהתנהגות מיקסר השמעה אופציונלית ביט-מושלמת עבור התקני USB. המצב הביט-מושלם מאפשר השמעה עבור פורמטים מאומתים באיכות מאסטר (MQA) ופורמטים דיגיטליים של זרם ישיר (DSD) בממירים דיגיטליים לאנלוגיים (DAC) תואמים.

מִמְשָׁק

מנהל מדיניות השמע מטפל בתכונות המיקסר במסגרת. המחלקה AudioMixerAttributes מייצגת את תכונות המיקסר. המחלקה AudioMixerAttributes כוללת אובייקט AudioFormat שמתאר את פורמט נתוני האודיו, מסכת הערוץ וקצב הדגימה עבור המיקסר. כברירת מחדל, המסגרת קובעת את התנהגות המיקסר, אשר מערבבת את כל מקורות האודיו ומחילה בקרת עוצמת הקול ואפקטים.

אם התנהגות המיקסר משתמשת במצב BIT_PERFECT , המערכת שולחת את תוכן האודיו ללא שינוי דרך מסגרת האודיו, HAL ומעבד האותות הדיגיטלי (DSP), מה-API ועד להתקן ה-USB. מצב BIT_PERFECT תומך בפורמטים מקודדים, כגון MQA או DSD, שבהם כל שינוי נפח או ערבוב יכול להרוס את משמעות הנתונים.

כאשר יישומים מגדירים תכונות מיקסר, המסגרת פותחת מחדש את זרם הפלט עם תכונות חדשות, במידת הצורך. האיור הבא מציג את הממשק בין האפליקציה, המסגרת וה-HAL כאשר תכונות המיקסר מוגדרות:

preferred-mixer-attr

איור 1. ממשק בין האפליקציה, המסגרת וה-HAL.

יישום

יישום של תכונות מיקסר מועדפות, מלבד התכונה BIT_PERFECT , עבור אודיו USB הוא חובה עבור Android 14.

תכונות מיקסר מועדפות

כדי לתמוך בתכונות מיקסר מועדפות, על הספקים לתמוך בניתוב התקני USB ליציאת המיקס הדינמי, באופן הבא:

  1. הגדר את יציאת המיקס הדינמי ב- usb_audio_policy_configuration.xml .

  2. הכריז על היכולת לנתב התקני USB ליציאות מיקס דינמיות בתצורת מדיניות שמע או בשיטות getAudioPorts ו- getAudioRoutes AIDL.

ראה את יישום ההתייחסות עבור USB Audio HAL תחת hardware/libhardware/modules/usbaudio . ראה דוגמה ליציאת מיקס דינמית ב- frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml .

תכונת השמעה קצת מושלמת

תכונת ההשמעה המעט מושלמת היא אופציונלית ונתמכת רק ביישום AIDL של Audio HAL. כדי לתמוך בהשמעה ביט-מושלמת, על הספקים להוסיף את דגל הפלט ה-bit-perfect AUDIO_OUTPUT_FLAG_BIT_PERFECT ליציאת המיקס הדינמי שניתן לנתב להתקן ה-USB.

דוגמת הקוד הבאה מציגה את השימוש בדגל AUDIO_OUTPUT_FLAG_BIT_PERFECT ב- usb_audio_policy_configuration.xml :

<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-perfect, ה-HAL חייב לוודא שזרם האודיו נשלח להתקן ה-USB ללא כל שינוי, כלומר, לזרם האודיו לא יהיו קנה מידה, המרת קצב דגימה או אפקטים של עיבוד אודיו. אסור לערבב ב-DSP. במקרה זה, החומרה שולטת בעוצמת הקול מכיוון שהמסגרת אינה מספקת שום בקרת עוצמת הקול של התוכנה.

מַתַן תוֹקֵף

הפעל את בדיקות ה-CTS ב- PreferredMixerAttributesTestActivity.java כדי לאמת תמיכה בתכונות מיקסר מועדפות עבור התקני USB.

כדי לאמת את היישום של התכונה BIT_PERFECT , השתמש ב-USB DACs התומכים ב-MQA ו-DSD בפורמטי אודיו של אפנון קוד פעימות (PCM).