ওভারভিউ

অ্যান্ড্রয়েড অটোমোটিভ ওএস (AAOS) একটি গাড়িতে ইনফোটেইনমেন্ট সিস্টেম হিসেবে ব্যবহারের ক্ষেত্রে সহায়তা করার জন্য মূল অ্যান্ড্রয়েড অডিও স্ট্যাকের উপর ভিত্তি করে তৈরি। AAOS ইনফোটেইনমেন্ট শব্দের (অর্থাৎ মিডিয়া, নেভিগেশন এবং যোগাযোগ) জন্য দায়ী, কিন্তু কঠোর প্রাপ্যতা এবং সময়সীমার প্রয়োজনীয়তা সহ শব্দ এবং সতর্কতার জন্য সরাসরি দায়ী নয়।

যদিও AAOS গাড়িকে অডিও পরিচালনা করতে সাহায্য করার জন্য সংকেত এবং প্রক্রিয়া সরবরাহ করে, শেষ পর্যন্ত চালক এবং যাত্রীদের জন্য কোন শব্দ বাজানো উচিত তা গাড়ির উপর নির্ভর করে, যাতে নিরাপত্তামূলক গুরুত্বপূর্ণ শব্দ এবং নিয়ন্ত্রক শব্দগুলি কোনও বাধা ছাড়াই সঠিকভাবে শোনা যায়।

যেহেতু AAOS অ্যান্ড্রয়েড অডিও স্ট্যাক ব্যবহার করে, তাই অডিও প্লে করার জন্য তৃতীয় পক্ষের অ্যাপ্লিকেশনগুলিকে ফোনের মতো আলাদা কিছু করার প্রয়োজন হয় না। অডিও নীতি কনফিগারেশনে বর্ণিত অ্যাপ্লিকেশনটির অডিও রাউটিং স্বয়ংক্রিয়ভাবে AAOS দ্বারা পরিচালিত হয়।

যেহেতু অ্যান্ড্রয়েড গাড়ির মিডিয়া অভিজ্ঞতা পরিচালনা করে, তাই রেডিও টিউনারের মতো বহিরাগত মিডিয়া উৎসগুলিকে অ্যাপ দ্বারা প্রতিনিধিত্ব করা উচিত, যা উৎসের জন্য অডিও ফোকাস এবং মিডিয়া মূল ইভেন্টগুলি পরিচালনা করতে পারে।

অ্যান্ড্রয়েড শব্দ এবং স্ট্রিম

অটোমোটিভ অডিও সিস্টেমগুলি নিম্নলিখিত শব্দ এবং স্ট্রিম পরিচালনা করে:

image

চিত্র ১. স্ট্রিম-কেন্দ্রিক স্থাপত্য চিত্র।

অ্যান্ড্রয়েড অ্যান্ড্রয়েড অ্যাপ থেকে আসা শব্দগুলি পরিচালনা করে, সেই অ্যাপগুলি নিয়ন্ত্রণ করে এবং শব্দের ধরণের উপর ভিত্তি করে HAL-এর আউটপুট ডিভাইসগুলিতে তাদের শব্দগুলি রাউট করে:

  • মূল অডিও নামকরণে উৎস হিসেবে পরিচিত লজিক্যাল স্ট্রিমগুলিকে অডিও অ্যাট্রিবিউট দিয়ে ট্যাগ করা হয়।

  • মূল অডিও নামকরণে ডিভাইস হিসাবে পরিচিত ভৌত স্ট্রিমগুলিতে মিক্সিংয়ের পরে কোনও প্রসঙ্গ তথ্য থাকে না।

নির্ভরযোগ্যতার জন্য, বাহ্যিক শব্দ (স্বাধীন উৎস থেকে আসা, যেমন সিটবেল্ট সতর্কীকরণ চাইম) অ্যান্ড্রয়েডের বাইরে, HAL এর নীচে বা এমনকি পৃথক হার্ডওয়্যারেও পরিচালিত হয়। সিস্টেম বাস্তবায়নকারীদের অবশ্যই এমন একটি মিক্সার সরবরাহ করতে হবে যা অ্যান্ড্রয়েড থেকে এক বা একাধিক শব্দ ইনপুট গ্রহণ করে এবং তারপর সেই স্ট্রিমগুলিকে গাড়ির জন্য প্রয়োজনীয় বাহ্যিক শব্দ উৎসের সাথে উপযুক্ত উপায়ে একত্রিত করে। অ্যান্ড্রয়েড কন্ট্রোল HAL অ্যান্ড্রয়েডের বাইরে উৎপন্ন শব্দগুলিকে অ্যান্ড্রয়েডে ফিরে যোগাযোগের জন্য একটি ভিন্ন প্রক্রিয়া প্রদান করে:

  • অডিও ফোকাস অনুরোধ
  • লাভ বা আয়তনের সীমাবদ্ধতা
  • লাভ এবং আয়তনের পরিবর্তন

অডিও HAL বাস্তবায়ন এবং বহিরাগত মিক্সার নিরাপত্তা-গুরুত্বপূর্ণ বহিরাগত শব্দগুলি শোনা যাচ্ছে কিনা তা নিশ্চিত করার জন্য এবং অ্যান্ড্রয়েড-প্রদত্ত স্ট্রিমগুলিতে মিশ্রিত করার এবং উপযুক্ত স্পিকারে রাউটিংয়ের জন্য দায়ী।

অ্যান্ড্রয়েড শব্দ

অ্যাপগুলিতে এক বা একাধিক প্লেয়ার থাকতে পারে যা স্ট্যান্ডার্ড অ্যান্ড্রয়েড API গুলির (যেমন, ফোকাস নিয়ন্ত্রণের জন্য অডিও ম্যানেজার বা স্ট্রিমিংয়ের জন্য মিডিয়াপ্লেয়ার ) মাধ্যমে ইন্টারঅ্যাক্ট করে অডিও ডেটার এক বা একাধিক লজিক্যাল স্ট্রিম নির্গত করে। এই ডেটা একক চ্যানেল মনো বা 7.1 সার্উন্ড হতে পারে, তবে এটি রুট করা হয় এবং একক উৎস হিসাবে বিবেচিত হয়। অ্যাপ স্ট্রিমটি অডিও অ্যাট্রিবিউটের সাথে যুক্ত যা সিস্টেমকে অডিও কীভাবে প্রকাশ করা উচিত সে সম্পর্কে ইঙ্গিত দেয়।

লজিক্যাল স্ট্রিমগুলি অডিও সার্ভিসের মাধ্যমে পাঠানো হয় এবং উপলব্ধ ফিজিক্যাল আউটপুট স্ট্রিমগুলির একটি (এবং শুধুমাত্র একটি) তে রাউট করা হয়, যার প্রতিটি অডিওফ্লিংগারের মধ্যে একটি মিক্সারের আউটপুট। অডিও অ্যাট্রিবিউটগুলি একটি ফিজিক্যাল স্ট্রিমে মিশ্রিত হওয়ার পরে, সেগুলি আর উপলব্ধ থাকে না।

প্রতিটি ফিজিক্যাল স্ট্রিম তারপর হার্ডওয়্যারে রেন্ডারিংয়ের জন্য অডিও HAL-এ সরবরাহ করা হয়। অটোমোটিভ অ্যাপগুলিতে, রেন্ডারিং হার্ডওয়্যার স্থানীয় কোডেক (মোবাইল ডিভাইসের মতো) অথবা গাড়ির ফিজিক্যাল নেটওয়ার্ক জুড়ে একটি রিমোট প্রসেসর হতে পারে। যেভাবেই হোক, অডিও HAL বাস্তবায়নের কাজ হল প্রকৃত নমুনা ডেটা সরবরাহ করা এবং এটিকে শ্রবণযোগ্য করে তোলা।

বহিরাগত প্রবাহ

যেসব সাউন্ড স্ট্রিম অ্যান্ড্রয়েডের মাধ্যমে রাউট করা উচিত নয় (সার্টিফিকেশন বা সময়ের কারণে) সেগুলো সরাসরি এক্সটার্নাল মিক্সারে পাঠানো যেতে পারে। অ্যান্ড্রয়েড ১১ অনুসারে, HAL এখন অ্যান্ড্রয়েডকে অবহিত করার জন্য এই এক্সটার্নাল সাউন্ডের জন্য ফোকাসের অনুরোধ করতে সক্ষম যাতে এটি মিডিয়া থামানো বা অন্যদের ফোকাস পেতে বাধা দেওয়ার মতো যথাযথ পদক্ষেপ নিতে পারে।

যদি বাহ্যিক স্ট্রিমগুলি এমন মিডিয়া সোর্স হয় যা অ্যান্ড্রয়েড তৈরি করছে এমন শব্দ পরিবেশের সাথে ইন্টারঅ্যাক্ট করে (উদাহরণস্বরূপ, একটি বাহ্যিক টিউনার চালু থাকলে MP3 প্লেব্যাক বন্ধ করুন), তাহলে সেই বাহ্যিক স্ট্রিমগুলি একটি অ্যান্ড্রয়েড অ্যাপ দ্বারা প্রতিনিধিত্ব করা উচিত। এই ধরনের একটি অ্যাপ HAL এর পরিবর্তে মিডিয়া সোর্সের পক্ষে অডিও ফোকাসের অনুরোধ করবে এবং অ্যান্ড্রয়েড ফোকাস নীতির সাথে মানানসই করার জন্য প্রয়োজনীয় বাহ্যিক সোর্সটি শুরু এবং বন্ধ করে ফোকাস বিজ্ঞপ্তিগুলির প্রতিক্রিয়া জানাবে।

এই অ্যাপটি প্লে এবং পজের মতো মিডিয়ার গুরুত্বপূর্ণ ইভেন্টগুলি পরিচালনা করার জন্যও দায়ী। এই ধরনের বহিরাগত ডিভাইসগুলি নিয়ন্ত্রণ করার জন্য একটি প্রস্তাবিত প্রক্রিয়া হল HwAudioSource । আরও জানতে, AAOS-এ একটি ইনপুট ডিভাইস সংযুক্ত করুন দেখুন।

আউটপুট ডিভাইস

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

একটি সিস্টেম বাস্তবায়ন সমস্ত অ্যান্ড্রয়েড শব্দের জন্য একটি বাস পোর্ট ব্যবহার করতে পারে, এই ক্ষেত্রে অ্যান্ড্রয়েড সবকিছু একসাথে মিশ্রিত করে এবং এটি একটি স্ট্রিম হিসাবে সরবরাহ করে। বিকল্পভাবে, HAL প্রতিটি CarAudioContext এর জন্য একটি বাস পোর্ট প্রদান করতে পারে যাতে যেকোনো ধরণের শব্দের একযোগে সরবরাহ করা যায়। এর ফলে HAL বাস্তবায়নের জন্য বিভিন্ন শব্দকে ইচ্ছামত মিশ্রিত করা এবং বাদ দেওয়া সম্ভব হয়।

আউটপুট ডিভাইসগুলিতে অডিও কনটেক্সট অ্যাসাইনমেন্ট car_audio_configuration.xml ফাইলের মাধ্যমে করা হয়। আরও জানতে, অডিও নীতি কনফিগারেশন দেখুন।