ऑडियो कॉन्फ़िगरेशन AAOS फ़्लैग, ऑडियो कॉन्फ़िगरेशन AAOS फ़्लैग

एंड्रॉइड ऑटोमोटिव ओएस (एएओएस) विभिन्न सुविधाओं को सक्षम करने के लिए फ़्लैग और कॉन्फ़िगरेशन का उपयोग करता है, जो डायनेमिक रूटिंग से लेकर अधिक सामान्य फ़ीचर फ़्लैग तक शुरू होता है, जैसे कार सेवा से वॉल्यूम नियंत्रण। ऑडियो प्रबंधन के लिए वर्तमान AAOS कॉन्फ़िगरेशन फ़्लैग का वर्णन यहां किया गया है।

झंडा उद्देश्य
audioUseDynamicRouting AAOS रूटिंग सक्षम करने के लिए कार सेवा कॉन्फ़िगरेशन फ़ाइल में परिभाषित। कॉन्फ़िगरेशन को true पर सेट किया जाना चाहिए। जब false , तो रूटिंग और अधिकांश CarAudioService अक्षम हो जाते हैं और OS ऑडियो नीतियों को कॉन्फ़िगर करने में वर्णित डिफ़ॉल्ट व्यवहार पर वापस आ जाता है।
audioUseCarVolumeGroupMuting अलग-अलग वॉल्यूम समूहों को म्यूट करने को सक्षम करने के लिए कार सेवा कॉन्फ़िगरेशन फ़ाइल में परिभाषित किया गया है। जब false (डिफ़ॉल्ट मान) पर सेट किया जाता है, तो अलग-अलग वॉल्यूम समूहों को म्यूट करना अक्षम हो जाता है। इसके बजाय, म्यूट करने से मास्टर म्यूट टॉगल हो जाता है। true पर सेट होने पर, कार वॉल्यूम समूह म्यूटिंग सक्षम हो जाती है और प्रत्येक व्यक्तिगत वॉल्यूम समूह को अलग से म्यूट किया जा सकता है। true होने पर, वॉल्यूम समूह म्यूटिंग को ऑडियो कंट्रोल एचएएल पर लागू किया जाना चाहिए।
audioUseHalDuckingSignals एचएएल को सूचित करने के लिए कि कब डक करना है IAudioControl#onDevicesToDuckChange API को सक्षम करने के लिए कार सेवा कॉन्फ़िगरेशन फ़ाइल में परिभाषित किया गया है। true (डिफ़ॉल्ट मान) होने पर, एपीआई को सिग्नल प्राप्त होते हैं जो दर्शाते हैं कि कौन से आउटपुट डिवाइस को डक करना है और कौन से उपयोग फोकस बनाए रखते हैं। false होने पर, एपीआई को कॉल नहीं किया जाता है। जब तक ऑडियो कंट्रोल एचएएल डकिंग लागू नहीं करता तब तक एपीआई को कॉल नहीं किया जाता है।
config_oemCarService कार सेवा कॉन्फ़िगरेशन फ़ाइल में परिभाषित, यह OEM अनुकूलन सेवा के लिए घटक नाम है। ओईएम विभिन्न नीतियों के लिए कार सेवा कार्यों को अनुकूलित करने के लिए इस सेवा को लागू करने का विकल्प चुन सकते हैं। यदि OEM इस घटक को लागू करने का विकल्प चुनते हैं, तो उन्हें कार-लिब द्वारा उजागर OemCarService विस्तार करने के लिए एक सेवा लागू करनी होगी, और फिर आवश्यक घटक सेवाओं को लागू करना होगा। विशेष रूप से कार ऑडियो सेवा के लिए, ओईएम ऑडियो कार्रवाई को प्रबंधित करने के लिए किसी भी ऑडियो उप सेवाओं को लागू कर सकते हैं। विवरण के लिए, कार ऑडियो प्लगइन सेवा देखें। यदि घटक नाम अमान्य है, CarService किसी भी OEM सेवा से कनेक्ट नहीं होगा। घटक नाम कोई तृतीय पक्ष पैकेज नहीं हो सकता. यह पहले से इंस्टॉल होना चाहिए.
audioVolumeAdjustmentContextsVersion

कार सेवा कॉन्फ़िगरेशन फ़ाइल में परिभाषित, वॉल्यूम समायोजन संदर्भ प्राथमिकता सूची के संस्करण का चयन करने के लिए कॉन्फ़िगरेशन।

संस्करण 1 में इस क्रम में सभी ऑडियो संदर्भ शामिल हैं:

  • NAVIGATION
  • CALL
  • MUSIC
  • ANNOUNCEMENT
  • VOICE_COMMAND
  • CALL_RING
  • SYSTEM_SOUND
  • SAFETY
  • ALARM
  • NOTIFICATION
  • VEHICLE_STATUSEMERGENCY

इस क्रम में संस्करण 2 निम्नलिखित संदर्भों तक सीमित है।

डिफ़ॉल्ट संस्करण 1 है.

  • CALL
  • MUSIC
  • ANNOUNCEMENT
  • VOICE_COMMAND
audioPersistMasterMuteState कार सेवा कॉन्फ़िगरेशन फ़ाइल में परिभाषित, वैश्विक म्यूट स्थिति को जारी रखने के लिए कॉन्फ़िगरेशन। जब true (डिफ़ॉल्ट मान) एंड्रॉइड बूट पर वैश्विक म्यूट स्थिति को पुनर्स्थापित करता है। जब audioUseCarVolumeGroupMuting true है, तो इसका निरंतर म्यूट परिवर्तनों पर कोई प्रभाव नहीं पड़ता है क्योंकि म्यूट परिवर्तन व्यक्तिगत वॉल्यूम समूहों पर आधारित होते हैं। डिफ़ॉल्ट मान true पर सेट है और जब किसी डिवाइस के लिए मास्टर म्यूट जारी नहीं रखा जाना चाहिए तो इसे अधिलेखित किया जाना चाहिए।
audioVolumeKeyEventTimeoutMs

कार सेवा कॉन्फ़िगरेशन फ़ाइल में परिभाषित, मिलीसेकंड में टाइमआउट इंगित करने के लिए कॉन्फ़िगरेशन, जबकि वॉल्यूम कुंजी घटनाओं के दौरान वॉल्यूम नियंत्रण परिवर्तनों के लिए कार वॉल्यूम समूह को सक्रिय माना जाता है। कॉन्फ़िगरेशन का उपयोग इस प्रकार किया जाता है:

  • टाइमआउट का उपयोग यह निर्धारित करने के लिए किया जाता है कि क्या प्लेबैक (प्लेबैक के ऑडियो उपयोग से जुड़ा ऑडियो वॉल्यूम) को प्ले करना बंद करने के बाद भी स्वचालित वॉल्यूम चयन के लिए माना जा सकता है।
  • उपयोगकर्ता जो समायोजित कर रहा है उसे बदलने के लिए स्वचालित वॉल्यूम समायोजन के बीच आवश्यक ठहराव अवधि के रूप में टाइमआउट का भी उपयोग किया जाता है।

डिफ़ॉल्ट मान 3000 मिलीसेकंड है और उपयोगकर्ता अनुभव को अनुकूलित करने के लिए OEM द्वारा इसे समायोजित किया जाना चाहिए।

audioUseCarVolumeGroupEvent कार सेवा कॉन्फ़िगरेशन फ़ाइल में परिभाषित, वॉल्यूम समूहों में कॉलबैक ईवेंट सक्षम करने के लिए कॉन्फ़िगरेशन। true होने पर, क्लाइंट को वॉल्यूम समूहों को प्रभावित करने वाली घटनाओं के लिए ICarVolumeGroupEvent के माध्यम से कॉलबैक प्राप्त होता है। सक्षम होने पर:

  • हम दृढ़ता से अनुशंसा करते हैं कि विक्रेता ऑडियो हार्डवेयर में घटनाओं और परिवर्तनों के लिए IAudioControl#setModuleChangeCallback और IAudioControl#registerGainCallback भी समर्थन करें।
  • जब CarVolumeCallback और CarVolumeGroupEventCallback दोनों एक ही ऐप द्वारा पंजीकृत होते हैं, तो वॉल्यूम ग्रुप इंडेक्स और वॉल्यूम ग्रुप म्यूट कॉलबैक केवल CarVolumeGroupEventCallback के माध्यम से जाएंगे। इसलिए, हम दृढ़ता से अनुशंसा करते हैं कि सभी ऐप्स लगातार प्रदर्शन सुनिश्चित करने के लिए नए कॉलबैक इंटरफ़ेस पर माइग्रेट करें।
  • मूल मूल्य false है । हम अनुशंसा करते हैं कि आप इसे true पर सेट करें क्योंकि लीगेसी वॉल्यूम कॉलबैक का समर्थन करने वाले एपीआई अप्रचलित हैं और जल्द ही पूरी तरह से हटा दिए जाएंगे।

config_useFixedVolume frameworks/base/core/res/res/values/config.xml में परिभाषित। कार ऑडियो सेवा को वॉल्यूम नियंत्रण प्रबंधित करने की अनुमति देने के लिए इसे true पर सेट किया जाना चाहिए। जब config_useFixedVolume फ़्लैग सेट नहीं होता है, या false (डिफ़ॉल्ट मान) पर सेट होता है, तो ऐप्स AudioManager वॉल्यूम प्रबंधन API को कॉल कर सकते हैं और सॉफ़्टवेयर मिक्सर में स्ट्रीम प्रकार के अनुसार वॉल्यूम बदल सकते हैं। यह अन्य ऐप्स पर संभावित प्रभाव और इस तथ्य के कारण अवांछनीय हो सकता है कि सॉफ़्टवेयर मिक्सर में वॉल्यूम क्षीणन के परिणामस्वरूप हार्डवेयर एम्पलीफायर पर प्राप्त सिग्नल में कम महत्वपूर्ण बिट्स उपलब्ध हो सकते हैं। नए डिवाइस जिन्हें कॉन्फ़िगर नहीं किया गया है और जो true पर सेट हैं, AudioManager वॉल्यूम और म्यूट एपीआई के माध्यम से वॉल्यूम परिवर्तन प्राप्त करते हैं।
config_handleVolumeKeysInWindowManager frameworks/base/core/res/res/values/config.xml में परिभाषित, कार ऑडियो सेवा को वॉल्यूम कुंजी घटनाओं को रोकने की अनुमति देने के लिए true पर सेट किया जाना चाहिए। यदि false (डिफ़ॉल्ट मान) पर सेट किया जाता है तो वॉल्यूम कुंजी ईवेंट को अग्रभूमि ऐप पर अग्रेषित किया जा सकता है और कार ऑडियो सेवा के बाहर वॉल्यूम कुंजी ईवेंट प्रबंधन से प्रतिकूल परिणाम हो सकते हैं।

कार ऑडियो सेवा कॉन्फ़िगरेशन

एंड्रॉइड 13 से पहले, packages/services/Car/service/res/values/config.xml फ़ाइल के लिए कार सेवा कॉन्फ़िगरेशन को उत्पाद कॉन्फ़िगरेशन ओवरले (अधिक जानने के लिए, संसाधन ओवरले के साथ बिल्ड को कस्टमाइज़ करना देखें) के साथ ओवरराइट किया गया था

PRODUCT_PACKAGE_OVERLAYS := <path_to_overlay>

<path_to_overlay> से वास्तविक स्थान तक कॉन्फ़िगरेशन फ़ाइल के स्थान में packages/services/Car/service/res/values/ शामिल होना चाहिए।

कार सेवा आरआरओ

Android 13 के बाद से, AAOS रनटाइम संसाधन ओवरले का समर्थन करता है। कार ऑडियो कॉन्फ़िगरेशन का मान बदलने के लिए आरआरओ का उपयोग करें। उदाहरण के लिए, device/google/cuttlefish/shared/auto/rro_overlay/ में ऑटोमोटिव cuttlefish संदर्भ के लिए आरआरओ देखें। audioUseDynamicRouting कॉन्फिगरेशन device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/res/values/config.xml में ओवरराइड किया गया है।

<resources>
    <bool name="audioUseDynamicRouting">true</bool>
...

संसाधन ओवरले मानचित्र device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/res/xml/overlays.xml में समाहित है:

<overlay>
...
  <item target="bool/audioUseDynamicRouting"
value="@bool/audioUseDynamicRouting" />
...
</overlay>

device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/AndroidManifest.xml में परिभाषित संसाधन ओवरले मेनिफेस्ट में targetPackage com.android.car.updatable के रूप में सेट किया गया है।

अधिक जानकारी के लिए ये संसाधन देखें:

फ़ीचर-सक्षम एपीआई

यदि डिवाइस पर सुविधा सक्षम है तो विधि true लौटाती है, अन्यथा false लौटाती है। CarAudioManager#isAudioFeatureEnabled API में, पारित पैरामीटर इनमें से एक होना चाहिए:

  • AUDIO_FEATURE_DYNAMIC_ROUTING
  • AUDIO_FEATURE_VOLUME_GROUP_MUTING
  • AUDIO_FEATURE_OEM_AUDIO_SERVICE
  • AUDIO_FEATURE_VOLUME_GROUP_EVENTS
  • AUDIO_FEATURE_AUDIO_MIRRORING