অডিও কনফিগারেশন AAOS পতাকা, অডিও কনফিগারেশন AAOS পতাকা

অ্যান্ড্রয়েড অটোমোটিভ OS (AAOS) বিভিন্ন বৈশিষ্ট্য সক্ষম করতে পতাকা এবং কনফিগারেশন ব্যবহার করে, গতিশীল রাউটিং থেকে শুরু করে আরও জেনেরিক বৈশিষ্ট্যের পতাকাগুলিতে, যেমন গাড়ি পরিষেবা থেকে ভলিউম নিয়ন্ত্রণ। অডিও পরিচালনার জন্য বর্তমান AAOS কনফিগারেশন পতাকা এখানে বর্ণনা করা হয়েছে।

পতাকা উদ্দেশ্য
audioUseDynamicRouting AAOS রাউটিং সক্ষম করতে গাড়ি পরিষেবা কনফিগার ফাইলে সংজ্ঞায়িত করা হয়েছে। কনফিগারেশন true সেট করা আবশ্যক. যখন false , রাউটিং এবং CarAudioService এর অনেক অংশ অক্ষম করা হয় এবং OS অডিও নীতি কনফিগার করার ক্ষেত্রে বর্ণিত ডিফল্ট আচরণে ফিরে আসে।
audioUseCarVolumeGroupMuting স্বতন্ত্র ভলিউম গ্রুপের নিঃশব্দ সক্রিয় করতে গাড়ী পরিষেবা কনফিগার ফাইলে সংজ্ঞায়িত করা হয়েছে। false (ডিফল্ট মান) সেট করা হলে, পৃথক ভলিউম গ্রুপের নিঃশব্দ নিষ্ক্রিয় করা হয়। পরিবর্তে, মিউট করা টগল মাস্টার মিউট করে। true সেট করা হলে, গাড়ির ভলিউম গ্রুপ মিউট করা সক্ষম হয় এবং প্রতিটি পৃথক ভলিউম গ্রুপ আলাদাভাবে নিঃশব্দ করা যায়। true হলে, অডিও কন্ট্রোল HAL- এ ভলিউম গ্রুপ মিউট করা আবশ্যক।
audioUseHalDuckingSignals IAudioControl#onDevicesToDuckChange API সক্রিয় করার জন্য গাড়ি পরিষেবা কনফিগার ফাইলে সংজ্ঞায়িত করা হয়েছে HAL কে কখন ডাকতে হবে তা জানাতে। true হলে (ডিফল্ট মান), API কোন আউটপুট ডিভাইসগুলিকে ডাকতে হবে এবং কোন ব্যবহারগুলি ফোকাস ধরে রাখে তা নির্দেশ করে সংকেত পায়। false হলে, API বলা হয় না। অডিও কন্ট্রোল এইচএএল ডাকিং প্রয়োগ না করলে API কল করা হয় না।
config_oemCarService গাড়ি পরিষেবা কনফিগার ফাইলে সংজ্ঞায়িত, এটি OEM কাস্টমাইজেশন পরিষেবার উপাদানের নাম। OEMগুলি বিভিন্ন নীতির জন্য গাড়ি পরিষেবা ক্রিয়াগুলি কাস্টমাইজ করতে এই পরিষেবাটি প্রয়োগ করতে বেছে নিতে পারে৷ যদি OEMগুলি এই উপাদানটি প্রয়োগ করতে বেছে নেয়, তাহলে তাদের অবশ্যই একটি পরিষেবা বাস্তবায়ন করতে হবে যাতে কার-লিব দ্বারা উন্মুক্ত OemCarService প্রসারিত হয় এবং তারপরে প্রয়োজনীয় উপাদান পরিষেবাগুলি প্রয়োগ করা হয়। গাড়ির অডিও পরিষেবার জন্য বিশেষভাবে, OEMগুলি অডিও অ্যাকশন পরিচালনা করতে অডিও সাব পরিষেবাগুলির যেকোনো একটি বাস্তবায়ন করতে পারে। বিস্তারিত জানার জন্য, গাড়ির অডিও প্লাগইন পরিষেবা দেখুন। উপাদানের নাম অবৈধ হলে, 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 মিলিসেকেন্ড এবং ব্যবহারকারীর অভিজ্ঞতাকে উপযোগী করার জন্য OEMs দ্বারা সামঞ্জস্য করা উচিত৷

audioUseCarVolumeGroupEvent গাড়ি পরিষেবা কনফিগারেশন ফাইলে সংজ্ঞায়িত করা হয়েছে, ভলিউম গ্রুপে কলব্যাক ইভেন্টগুলি সক্ষম করার জন্য কনফিগারেশন। true হলে, ক্লায়েন্টরা ICarVolumeGroupEvent মাধ্যমে ইভেন্টে কলব্যাক গ্রহণ করে যা ভলিউম গ্রুপকে প্রভাবিত করে। যখন সক্রিয় করা হয়:

  • আমরা দৃঢ়ভাবে সুপারিশ করি যে বিক্রেতারা ইভেন্ট এবং অডিও হার্ডওয়্যারের পরিবর্তনের জন্য IAudioControl#setModuleChangeCallback এবং IAudioControl#registerGainCallback সমর্থন করে।
  • যখন CarVolumeCallback এবং CarVolumeGroupEventCallback উভয়ই একই অ্যাপ দ্বারা নিবন্ধিত হয়, তখন ভলিউম গ্রুপ সূচক এবং ভলিউম গ্রুপ মিউট কলব্যাকগুলি শুধুমাত্র CarVolumeGroupEventCallback এর মাধ্যমে যাবে৷ অতএব, আমরা দৃঢ়ভাবে সুপারিশ করি যে সব অ্যাপ নতুন কলব্যাক ইন্টারফেসে স্থানান্তরিত হয় যাতে সামঞ্জস্যপূর্ণ কর্মক্ষমতা নিশ্চিত করা যায়।
  • ডিফল্ট মান false . আমরা সুপারিশ করি যে আপনি এটিকে true সেট করুন কারণ লিগ্যাসি ভলিউম কলব্যাকগুলিকে সমর্থন করার জন্য API গুলিকে অবমূল্যায়ন করা হয়েছে এবং শীঘ্রই সম্পূর্ণরূপে সরানো হবে৷

config_useFixedVolume frameworks/base/core/res/res/values/config.xml এ সংজ্ঞায়িত। ভলিউম কন্ট্রোল পরিচালনা করার জন্য গাড়ী অডিও পরিষেবার অনুমতি দিতে true সেট করা আবশ্যক৷ যখন config_useFixedVolume পতাকা সেট করা হয় না, বা false (ডিফল্ট মান) সেট করা হয়, তখন অ্যাপগুলি AudioManager ভলিউম ম্যানেজমেন্ট API-কে কল করতে পারে এবং সফ্টওয়্যার মিক্সারে স্ট্রিম টাইপ অনুসারে ভলিউম পরিবর্তন করতে পারে। অন্যান্য অ্যাপে সম্ভাব্য প্রভাবের কারণে এটি অবাঞ্ছিত হতে পারে এবং সফ্টওয়্যার মিক্সারে ভলিউম ক্ষয় করার ফলে হার্ডওয়্যার অ্যামপ্লিফায়ারে প্রাপ্ত হলে সিগন্যালে কম উল্লেখযোগ্য বিট উপলব্ধ হতে পারে। নতুন ডিভাইসগুলি যেগুলি কনফিগার করা হয়নি এবং যেগুলি true সেট করা হয়েছে সেগুলি AudioManager ভলিউম এবং নিঃশব্দ API এর মাধ্যমে ভলিউম পরিবর্তনগুলি গ্রহণ করে৷
config_handleVolumeKeysInWindowManager frameworks/base/core/res/res/values/config.xml এ সংজ্ঞায়িত, গাড়ির অডিও পরিষেবাকে ভলিউম কী ইভেন্টগুলিকে বাধা দেওয়ার জন্য true সেট করতে হবে৷ 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/ অন্তর্ভুক্ত করা উচিত।

গাড়ি পরিষেবা RROs

Android 13 থেকে, AAOS রানটাইম রিসোর্স ওভারলে সমর্থন করে। গাড়ির অডিও কনফিগারেশনের মান পরিবর্তন করতে একটি RRO ব্যবহার করুন। উদাহরণ স্বরূপ, device/google/cuttlefish/shared/auto/rro_overlay/ এ স্বয়ংচালিত cuttlefish রেফারেন্সের জন্য 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 এ সংজ্ঞায়িত রিসোর্স ওভারলে ম্যানিফেস্টে com.android.car.updatable হিসাবে সেট করা targetPackage রয়েছে।

আরও তথ্যের জন্য এই সংস্থানগুলি দেখুন:

বৈশিষ্ট্য-সক্ষম API

বৈশিষ্ট্যটি ডিভাইসে সক্রিয় থাকলে পদ্ধতিটি true হয়ে যায়, অন্যথায় falseCarAudioManager#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