Android Automotive OS (AAOS), अलग-अलग सुविधाओं को चालू करने के लिए फ़्लैग और कॉन्फ़िगरेशन का इस्तेमाल करता है. इसकी शुरुआत डाइनैमिक राउटिंग से होती है. इसके बाद, सामान्य फ़ीचर फ़्लैग का इस्तेमाल किया जाता है. जैसे, कार सेवा से वॉल्यूम कंट्रोल करना. ऑडियो मैनेजमेंट के लिए, AAOS के मौजूदा कॉन्फ़िगरेशन फ़्लैग के बारे में यहां बताया गया है.
| चिह्नित करें | मकसद |
|---|---|
audioUseDynamicRouting |
कार सेवा की कॉन्फ़िगरेशन फ़ाइल में यह तय किया जाता है कि AAOS रूटिंग की सुविधा चालू करनी है या नहीं.
कॉन्फ़िगरेशन को true पर सेट किया जाना चाहिए. false पर सेट होने पर, राउटिंग और CarAudioService के ज़्यादातर फ़ंक्शन बंद हो जाते हैं. साथ ही, ओएस ऑडियो से जुड़ी नीतियां कॉन्फ़िगर करना में बताए गए डिफ़ॉल्ट तरीके पर वापस आ जाता है.
|
useCoreAudioRouting |
कार सेवा की कॉन्फ़िगरेशन फ़ाइल में यह तय किया जाता है कि AAOS के कोर ऑडियो की राउटिंग को मैनेज करने की सुविधा चालू की जाए या नहीं.
वैल्यू को true पर सेट करने पर, कार ऑडियो सेवा, कॉन्फ़िगर की जा सकने वाली ऑडियो नीति इंजन के साथ सेट अप की गई कॉन्फ़िगरेशन परिभाषाओं का इस्तेमाल करती है.
अगर वैल्यू को false पर सेट किया जाता है, तो राउटिंग मैनेजमेंट, कार ऑडियो सेवा की डाइनैमिक ऑडियो नीति के मिक्स डेफ़िनिशन का इस्तेमाल करने के लिए फ़ॉलबैक करता है. इसे audioUseDynamicRouting का इस्तेमाल करके कॉन्फ़िगर किया जाता है.
|
useCoreAudioVolume |
कार सेवा की कॉन्फ़िगरेशन फ़ाइल में तय किया गया है, ताकि AAOS के कोर ऑडियो की आवाज़ को मैनेज करने की सुविधा चालू की जा सके.
वैल्यू को true पर सेट करने पर, कार ऑडियो सेवा, कॉन्फ़िगर की जा सकने वाली ऑडियो नीति इंजन के साथ सेट अप की गई वॉल्यूम ग्रुप की परिभाषाओं का इस्तेमाल करती है.
अगर वैल्यू को false पर सेट किया जाता है, तो वॉल्यूम मैनेजमेंट, कार की ऑडियो सेवा के डिफ़ॉल्ट वॉल्यूम ग्रुप की परिभाषा का इस्तेमाल करता है. इसे audioUseDynamicRouting का इस्तेमाल करके कॉन्फ़िगर किया जाता है.
|
audioUseCarVolumeGroupMuting |
कार सेवा की कॉन्फ़िगरेशन फ़ाइल में तय किया गया है, ताकि अलग-अलग वॉल्यूम ग्रुप को म्यूट किया जा सके. false (डिफ़ॉल्ट वैल्यू) पर सेट होने पर, अलग-अलग वॉल्यूम ग्रुप को म्यूट करने की सुविधा बंद हो जाती है. इसके बजाय, म्यूट करने पर मास्टर म्यूट टॉगल हो जाता है.
true पर सेट करने पर, कार के वॉल्यूम ग्रुप को म्यूट करने की सुविधा चालू हो जाती है. साथ ही, हर वॉल्यूम ग्रुप को अलग से म्यूट किया जा सकता है. true होने पर, वॉल्यूम ग्रुप को म्यूट करने की सुविधा, ऑडियो कंट्रोल HAL में लागू की जानी चाहिए.
|
audioUseHalDuckingSignals |
कार सेवा की कॉन्फ़िगरेशन फ़ाइल में तय किया गया है, ताकि IAudioControl#onDevicesToDuckChange एपीआई को चालू किया जा सके. इससे HAL को यह जानकारी मिलती है कि कब डक करना है. true (डिफ़ॉल्ट वैल्यू) होने पर, एपीआई को ऐसे सिग्नल मिलते हैं जिनसे यह पता चलता है कि किन आउटपुट डिवाइसों को डक करना है और किन डिवाइसों पर फ़ोकस करना है. जब false,
एपीआई को कॉल नहीं किया जाता है. इस एपीआई को तब तक कॉल नहीं किया जाता, जब तक ऑडियो कंट्रोल एचएएल डकिंग की सुविधा लागू नहीं करता.
|
config_oemCarService |
यह कार सेवा की कॉन्फ़िगरेशन फ़ाइल में तय किया गया है. यह ओईएम की कस्टम सेवा के लिए कॉम्पोनेंट का नाम है. ओईएम, इस सेवा को लागू करने का विकल्प चुन सकते हैं, ताकि अलग-अलग नीतियों के लिए कार की सेवा से जुड़ी कार्रवाइयों को कस्टमाइज़ किया जा सके. अगर ओईएम इस कॉम्पोनेंट को लागू करने का विकल्प चुनते हैं, तो उन्हें car-lib से मिले OemCarService को बढ़ाने के लिए एक सेवा लागू करनी होगी. इसके बाद, उन्हें ज़रूरी कॉम्पोनेंट सेवाएं लागू करनी होंगी. खास तौर पर, कार में ऑडियो सेवा के लिए, ओईएम ऑडियो से जुड़ी किसी भी उप-सेवा को लागू कर सकते हैं, ताकि ऑडियो ऐक्शन को मैनेज किया जा सके. ज़्यादा जानकारी के लिए, Car Audio Plugin Service देखें.
अगर कॉम्पोनेंट का नाम अमान्य है, तो CarService किसी भी ओईएम सेवा से कनेक्ट नहीं होगा. कॉम्पोनेंट का नाम, तीसरे पक्ष का पैकेज नहीं हो सकता. यह पहले से इंस्टॉल होना चाहिए. |
audioVolumeAdjustmentContextsVersion |
कार सेवा की कॉन्फ़िगरेशन फ़ाइल में तय किया गया कॉन्फ़िगरेशन, जिससे आवाज़ कम या ज़्यादा करने के कॉन्टेक्स्ट की प्राथमिकता वाली सूची का वर्शन चुना जाता है. वर्शन 1 में सभी ऑडियो कॉन्टेक्स्ट शामिल हैं. इनका क्रम यह है:
वर्शन 2 का इस्तेमाल, इन संदर्भों में किया जा सकता है. डिफ़ॉल्ट वर्शन
|
audioPersistMasterMuteState |
इसे कार सेवा की कॉन्फ़िगरेशन फ़ाइल में तय किया जाता है. इसका इस्तेमाल, ग्लोबल म्यूट की स्थिति को बनाए रखने के लिए किया जाता है. जब true (डिफ़ॉल्ट वैल्यू) Android, बूट होने पर ग्लोबल म्यूट की स्थिति को वापस लाता है. जब audioUseCarVolumeGroupMuting true होता है, तो इससे म्यूट करने की सेटिंग में किए गए बदलावों पर कोई असर नहीं पड़ता. ऐसा इसलिए, क्योंकि म्यूट करने की सेटिंग में किए गए बदलाव, वॉल्यूम के अलग-अलग ग्रुप पर आधारित होते हैं. डिफ़ॉल्ट वैल्यू true पर सेट होती है. अगर किसी डिवाइस के लिए मास्टर म्यूट की सुविधा चालू नहीं रखनी है, तो इस वैल्यू को बदला जाना चाहिए. |
audioVolumeKeyEventTimeoutMs |
कार सेवा की कॉन्फ़िगरेशन फ़ाइल में तय किया गया कॉन्फ़िगरेशन. इससे यह पता चलता है कि वॉल्यूम बटन दबाने पर, वॉल्यूम कंट्रोल में बदलाव करने के दौरान, कार के वॉल्यूम ग्रुप को कितने मिलीसेकंड तक चालू माना जाएगा. कॉन्फ़िगरेशन का इस्तेमाल इस तरह किया जाता है:
डिफ़ॉल्ट वैल्यू |
audioUseCarVolumeGroupEvent |
कार सेवा की कॉन्फ़िगरेशन फ़ाइल में तय किया गया कॉन्फ़िगरेशन, ताकि वॉल्यूम ग्रुप को कॉलबैक
इवेंट चालू करने की अनुमति मिल सके. जब true होता है, तो क्लाइंट को ICarVolumeGroupEvent के ज़रिए कॉल बैक मिलता है. ऐसा उन इवेंट के लिए होता है जिनसे वॉल्यूम ग्रुप पर असर पड़ता है. इस सुविधा के चालू होने पर:
डिफ़ॉल्ट वैल्यू |
config_useFixedVolume |
frameworks/base/core/res/res/values/config.xml में तय किया गया है.
इसे true पर सेट किया जाना चाहिए, ताकि कार में मौजूद ऑडियो सिस्टम को वॉल्यूम कंट्रोल करने की अनुमति दी जा सके. अगर config_useFixedVolume फ़्लैग सेट नहीं है या false (डिफ़ॉल्ट वैल्यू) पर सेट है, तो ऐप्लिकेशन AudioManager वॉल्यूम मैनेजमेंट एपीआई को कॉल कर सकते हैं. साथ ही, सॉफ़्टवेयर मिक्सर में स्ट्रीम टाइप के हिसाब से वॉल्यूम बदल सकते हैं. ऐसा करना सही नहीं है, क्योंकि इससे दूसरे ऐप्लिकेशन पर असर पड़ सकता है. साथ ही, सॉफ़्टवेयर मिक्सर में आवाज़ कम करने से, हार्डवेयर ऐम्प्लीफ़ायर पर सिग्नल मिलने पर, कम बिट उपलब्ध हो सकती हैं. ऐसे नए डिवाइस जिन्हें कॉन्फ़िगर नहीं किया गया है और जिन्हें true आवाज़ कम या ज़्यादा करने की सुविधा के लिए सेट किया गया है. ये डिवाइस, true आवाज़ कम या ज़्यादा करने और म्यूट करने वाले एपीआई के ज़रिए काम करते हैं.AudioManager
|
config_handleVolumeKeysInWindowManager |
frameworks/base/core/res/res/values/config.xml में तय किया गया है. कार में ऑडियो सेवा को वॉल्यूम बटन के इवेंट इंटरसेप्ट करने की अनुमति देने के लिए, इसे true पर सेट करना ज़रूरी है. अगर इसे false (डिफ़ॉल्ट वैल्यू) पर सेट किया जाता है, तो वॉल्यूम
बढ़ाने या घटाने वाले बटन के इवेंट, फ़ोरग्राउंड ऐप्लिकेशन को भेजे जा सकते हैं. इससे कार ऑडियो सेवा के बाहर, वॉल्यूम बढ़ाने या घटाने वाले बटन के इवेंट मैनेज करने से बुरे नतीजे मिल सकते हैं. |
audioUseMinMaxActivationVolume |
कार सेवा की कॉन्फ़िगरेशन फ़ाइल में तय किया गया है, ताकि
कम से कम और ज़्यादा से ज़्यादा ऐक्टिवेशन वॉल्यूम को चालू किया जा सके. जब true, तब कम से कम और ज़्यादा से ज़्यादा वॉल्यूम मैनेजमेंट की वजह से, वॉल्यूम गेन इंडेक्स को अडजस्ट किया जा सकता है. जब false (डिफ़ॉल्ट वैल्यू) होता है, तब कम से कम और ज़्यादा से ज़्यादा ऐक्टिवेशन वॉल्यूम का कोई असर नहीं पड़ता.
|
audioUseFadeManagerConfiguration |
कार सेवा की कॉन्फ़िगरेशन फ़ाइल में यह तय किया जाता है कि
सिस्टम की ओर से ऑडियो फ़ोकस खोने की सुविधा चालू की जाए या नहीं. जब true,
कार का ऑडियो फ़्रेमवर्क, कार के ऑडियो फ़ेड कॉन्फ़िगरेशन की परिभाषाओं को पार्स करता है और
ऑडियो फ़ोकस के बंद होने की सूचना भेजते समय, FadeManagerConfiguration लागू करता है. जब false (डिफ़ॉल्ट वैल्यू) होता है, तो सिस्टम किसी ऐप्लिकेशन के ऑडियो फ़ोकस खोने पर, फ़ेड होने की सुविधा को लागू नहीं करता है.
|
कार में ऑडियो सेवा के कॉन्फ़िगरेशन
Android 13 से पहले, कार सेवा के कॉन्फ़िगरेशन को packages/services/Car/service/res/values/config.xml फ़ाइल के लिए, प्रॉडक्ट कॉन्फ़िगरेशन ओवरले से बदल दिया जाता था. ज़्यादा जानने के लिए, संसाधन ओवरले की मदद से बिल्ड को पसंद के मुताबिक बनाना लेख पढ़ें.
PRODUCT_PACKAGE_OVERLAYS := <path_to_overlay>
कॉन्फ़िगरेशन फ़ाइल की जगह <path_to_overlay> से लेकर असली जगह तक में packages/services/Car/service/res/values/ शामिल होना चाहिए.
कार सर्विस RRO
Android 13 से, AAOS में रनटाइम रिसॉर्स ओवरले की सुविधा उपलब्ध है. कार के ऑडियो कॉन्फ़िगरेशन की वैल्यू बदलने के लिए, RRO का इस्तेमाल करें. उदाहरण के लिए, cuttlefish में automotive device/google/cuttlefish/shared/auto/rro_overlay/ के लिए RRO देखें. 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_ROUTINGAUDIO_FEATURE_VOLUME_GROUP_MUTINGAUDIO_FEATURE_OEM_AUDIO_SERVICEAUDIO_FEATURE_VOLUME_GROUP_EVENTSAUDIO_FEATURE_AUDIO_MIRRORING