উচ্চ-রেজোলিউশন অডিও

অ্যান্ড্রয়েড ১০ সংস্করণে হাই-রেজোলিউশন অডিওর জন্য নিম্নলিখিত উন্নতিগুলো অন্তর্ভুক্ত করা হয়েছে:

  • ফ্লোট: WAV, FLAC কোডেক এবং এক্সট্র্যাক্টরগুলোকে ফ্লোট (২৪+ বিটের লসলেস প্রিসিশন) সাপোর্ট করার জন্য আপডেট করা হয়েছে। ডাউনমিক্স এবং ভার্চুয়ালাইজার এফেক্টগুলোকে ফ্লোটে আপডেট করা হয়েছে। মিডিয়াপ্লেয়ার (নুপ্লেয়ার) এই আপডেট করা প্রিসিশন সমর্থন করে।
  • উচ্চ-ফ্রিকোয়েন্সি: WAV, FLAC কোডেক এবং এক্সট্র্যাক্টরগুলোকে 192 kHz সমর্থন করার জন্য আপডেট করা হয়েছে। অ্যান্ড্রয়েডের ডিফল্ট ইফেক্টগুলো স্ট্যান্ডার্ড ফ্রিকোয়েন্সিতে 192 kHz সমর্থনের জন্য পরীক্ষা করা হয়। অনুমোদিত স্ট্যান্ডার্ড ফ্রিকোয়েন্সিগুলো হলো 88.2 kHz, 96 kHz, 176.4 kHz এবং 192 kHz।
  • মাল্টিচ্যানেল: ডিফল্ট অ্যান্ড্রয়েড প্লেব্যাক ইফেক্টগুলো আটটি চ্যানেল পর্যন্ত মাল্টিচ্যানেল সাপোর্টের জন্য পরীক্ষা করা হয়েছে।
  • সময়: অডিও ফ্রেমওয়ার্ক জুড়ে সময় সংক্রান্ত তথ্য অন্তর্ভুক্ত করা হয়েছে।

অ্যান্ড্রয়েড ৯ থেকে শুরু করে, নিম্নলিখিত উন্নতিগুলোর জন্য কোনো পার্টনার ইমপ্লিমেন্টেশনের প্রয়োজন নেই:

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

আউটপুট প্রভাব পরিবর্তন

অ্যান্ড্রয়েড ১১ রিলিজের অডিও পরিবর্তনসমূহ দেখুন।

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

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

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

  • অ্যান্ড্রয়েড সফটওয়্যার ইফেক্টগুলো ইতিমধ্যেই স্টেরিও ফ্লোটে স্থানান্তরিত করা হয়েছে।
  • ফরম্যাট অ্যাডাপ্টারের মাধ্যমে লিগ্যাসি এফেক্টগুলো সাপোর্ট করা হয়, যা প্রয়োজন অনুযায়ী ফ্লোটকে ইন্ট১৬-এ রূপান্তর করে।

আউটপুট প্রভাব বাস্তবায়ন করুন

আউটপুট ইফেক্টের একটি রেফারেন্স ইমপ্লিমেন্টেশন frameworks/av/media/libeffects এ পাওয়া যায়।

যেসব পার্টনার তাদের নিজস্ব কাস্টম আউটপুট ইফেক্ট প্রয়োগ করতে চান, অ্যান্ড্রয়েড ১০ রিলিজের জন্য তাদের নিম্নলিখিত কাজগুলো করতে হবে:

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