হাই-রেজোলিউশন অডিও

Android 10 রিলিজের মধ্যে হাই-রেজোলিউশন অডিওর জন্য নিম্নলিখিত উন্নতি অন্তর্ভুক্ত:

  • Float: WAV, FLAC কোডেক এবং এক্সট্র্যাক্টর Float (২৪+ বিটের লসলেস প্রিসিশন) সাপোর্ট করার জন্য আপডেট করা হয়েছে। ডাউনমিক্স ও ভার্চুয়ালাইজার এফেক্ট আপডেট করে ফ্লোট করা হয়েছে। MediaPlayer (NuPlayer) আপডেট করা প্রিসিশন ব্যবহার করার অনুমতি দেয়।
  • হাই-ফ্রিকোয়েন্সি: ১৯২ kHz-এ কাজ করার জন্য WAV, FLAC কোডেক ও এক্সট্র্যাক্টর আপডেট করা হয়েছে। ডিফল্ট Android-এর দেওয়া এফেক্ট স্ট্যান্ডার্ড ফ্রিকোয়েন্সিতে ১৯২ kHz-এর জন্য পরীক্ষা করা হয়। অনুমোদিত স্ট্যান্ডার্ড ফ্রিকোয়েন্সি হল ৮৮.২ kHz, ৯৬ kHz, ১৭৬.৪ kHz এবং ১৯২ kHz।
  • মাল্টিচ্যানেল: ডিফল্ট Android প্লেব্যাক এফেক্ট আটটি চ্যানেল পর্যন্ত মাল্টিচ্যানেল সাপোর্টের জন্য পরীক্ষা করা হয়।
  • টাইমিং: অডিও ফ্রেমওয়ার্ক জুড়ে টাইমিং সংক্রান্ত তথ্য অন্তর্ভুক্ত করা হয়।

Android 9 থেকে শুরু করে, নিম্নলিখিত উন্নতিগুলির জন্য কোনও পার্টনারকে কিছু করতে হবে না:

  • একসাথে চালানো যায় এমন ক্লায়েন্ট আউটপুট ট্র্যাকের সংখ্যা ১৪ থেকে বেড়ে ৪০ হয়েছে। AudioTrack-এর সীমিত ক্লায়েন্ট ইনস্ট্যান্স Android 8.x-এ অ্যাপের জন্য সমস্যা তৈরি করে।
  • একসাথে আরও বেশি হাই-রেজোলিউশন অডিও ট্র্যাক চালানোর জন্য ক্লায়েন্ট/সার্ভারের সর্বাধিক মেমরি ৪ MB থেকে বাড়িয়ে ৩২ MB করা হয়েছে (মোট ডিভাইস মেমরির উপর নির্ভর করে)।
  • অ্যাপ ও সিস্টেম UI-এর মধ্যে রিসোর্স কন্টেনশন প্রতিরোধ করতে মোট মিক্সড ট্র্যাকের সংখ্যা ৩২ থেকে ২৫৬ পর্যন্ত বাড়ানো হয়েছে।

আউটপুট এফেক্টে পরিবর্তন

Android 11 রিলিজের পরিবর্তনের জন্য অডিও এফেক্ট দেখুন।

Android 9 রিলিজ করার আগে, স্টেরিও int16 স্যাম্পেল ফর্ম্যাটে এফেক্ট চেইন প্রসেসিং প্রয়োগ করা হয়েছিল। এতে বেশ কিছু সীমাবদ্ধতা ছিল:

  • আউটপুটের সব এফেক্ট ফ্লোটিং পয়েন্ট অডিও ডেটা থেকে int16-এ জোর করে কনভার্সন করে, এর ফলে নির্ভুলতা কমে যায়।
  • দুইয়ের বেশি চ্যানেল সংখ্যা সহ আউটপুট সিঙ্ক থেকে আউটপুট এফেক্ট বাতিল করা হয়েছে।

Android 9 রিলিজে, মাল্টিচ্যানেল ফ্লোট ফর্ম্যাটকে সাপোর্ট করার জন্য এফেক্ট চেইন প্রসেসিং পাইপলাইন আপগ্রেড করা হয়েছে। গুরুত্বপূর্ণ পয়েন্ট:

  • Android সফ্টওয়্যার এফেক্ট আগেই 'স্টেরিও ফ্লোট' ফিচারে মাইগ্রেট করা হয়েছে।
  • ফরম্যাট অ্যাডাপ্টারের সাথে লিগ্যাসি এফেক্ট কাজ করে, যা প্রয়োজন অনুযায়ী ফ্লোটকে int16-এ কনভার্ট করে।

আউটপুট এফেক্ট প্রয়োগ করা

আউটপুট এফেক্টের জন্য রেফারেন্স ইমপ্লিমেন্টেশন frameworks/av/media/libeffects-এর অধীনে উপলভ্য।

যেসব পার্টনার তাদের নিজস্ব কাস্টম আউটপুট এফেক্ট প্রয়োগ করছেন, তাদের Android 10 রিলিজের জন্য নিচে উল্লেখ করা বিষয়গুলি করতে হবে:

  • মাল্টিচ্যানেল ফ্লোট ফর্ম্যাট কাজ করে এমন আউটপুট এফেক্ট আপডেট করুন:
    • Int16 প্রসেসিং সাপোর্ট আর প্রয়োজন নেই।
    • ২–৮ পর্যন্ত আউটপুট চ্যানেল সংখ্যা কাজ করে (ভবিষ্যতে মানানসই হওয়ার জন্য ১–৩০ পর্যন্ত সংখ্যা বিবেচনা করুন)।
    • ইনসার্ট এফেক্টের জন্য আউটপুট চ্যানেল কাউন্টের সাথে ম্যাচ করা ইনপুট চ্যানেল কাউন্ট সাপোর্ট করে। অক্সিলারি এফেক্ট ইনপুট চ্যানেল কাউন্ট ১ (মোনো) দেখতে থাকে।
    • চ্যানেল পজিশন মাস্ক (ক্যানোনিকাল) এবং (1 << n) - 1-এর চ্যানেল ইন্ডেক্স মাস্ক উভয়কেই সাপোর্ট করে।
  • আপনাকে যদি অবশ্যই পুরনো ভেন্ডর আউটপুট এফেক্ট ব্যবহার করা চালিয়ে যেতে হয় এবং সেগুলি আপডেট করতে না পারেন, তাহলে নিম্নলিখিত পদ্ধতি অনুসরণ করে পুরনো কোড যাচাই করুন:
    • লেগ্যাসি আউটপুট (ইনসার্ট) এফেক্ট অবশ্যই বাতিল করবে EFFECT_CMD_SET_CONFIG-এ কাজ করে না এমন কনফিগারেশন।
      • ফর্ম্যাট int16 কিনা তা চেক করুন।
      • ইনপুট ও আউটপুট চ্যানেল মাস্ক স্টেরিও কিনা তা চেক করুন।
      • দুটি চেকের মধ্যে একটিও সফল না হলে, -EINVAL রিটার্ন করুন।
    • AudioFlinger-এর মাধ্যমে লিগ্যাসি আউটপুট (অক্সিলিয়ারি) এফেক্ট কনফিগার করা হয় যার মধ্যে মোনো ইনপুট চ্যানেল মাস্ক এবং সম্ভাব্য মাল্টিচ্যানেল আউটপুট চ্যানেল মাস্ক থাকে, আউটপুট সিঙ্ক মাল্টিচ্যানেল কিনা তার উপর নির্ভর করে। সেগুলিকে EFFECT_CMD_SET_CONFIG-এ কাজ করে না এমন কনফিগারেশন বাতিল করতে হবে।
      • ফর্ম্যাট int16 কিনা তা চেক করুন।
      • ইনপুট চ্যানেল মাস্ক মনো এবং আউটপুট চ্যানেল মাস্ক স্টিরিও কিনা তা চেক করুন।
      • কোনও একটি চেক করা না গেলে, -EINVAL রিটার্ন করুন।
    • পুরনো কোড যাচাই করুন। এটি কাজ করে বলে ধরে নেবেন না!