صدای با وضوح بالا

نسخه اندروید 10 شامل بهبودهای زیر برای صدای با وضوح بالا است:

  • Float: کدک‌های WAV، FLAC و استخراج‌کننده‌ها برای پشتیبانی از شناور (بیش از 24 بیت با دقت بدون تلفات) به‌روزرسانی می‌شوند. جلوه های Downmix و Virtualizer به روز می شوند تا شناور شوند. دقت به روز شده توسط MediaPlayer (NuPlayer) مجاز است.
  • فرکانس بالا: کدک های WAV، FLAC و استخراج کننده ها برای پشتیبانی از 192 کیلوهرتز به روز می شوند. افکت‌های پیش‌فرض ارائه‌شده اندروید برای پشتیبانی از ۱۹۲ کیلوهرتز در فرکانس‌های استاندارد آزمایش می‌شوند. فرکانس‌های استاندارد مجاز 88.2 کیلوهرتز، 96 کیلوهرتز، 176.4 کیلوهرتز و 192 کیلوهرتز هستند.
  • چند کاناله: جلوه‌های پخش پیش‌فرض اندروید برای پشتیبانی چند کاناله از هشت کانال آزمایش می‌شوند.
  • زمان: اطلاعات زمان بندی در سراسر چارچوب صوتی گنجانده شده است.

با شروع اندروید 9، بهبودهای زیر نیازی به اجرای شریک ندارند:

  • تعداد تراک‌های خروجی مشتری همزمان از 14 به 40 افزایش می‌یابد، زیرا نمونه‌های محدود مشتری AudioTrack برای برنامه‌های Android 8.x مشکل‌ساز بوده است.
  • حداکثر حافظه کلاینت/سرور از 4 مگابایت به 32 مگابایت (بسته به کل حافظه دستگاه) افزایش می یابد تا امکان تراک های صوتی با وضوح بالا به طور همزمان بیشتر شود.
  • مجموع آهنگ های ترکیبی از 32 به 256 افزایش می یابد تا از اختلاف منابع بین برنامه ها و رابط کاربری سیستم جلوگیری شود.

اثر خروجی تغییر می کند

جلوه های صوتی را برای تغییرات نسخه اندروید 11 ببینید.

قبل از انتشار اندروید 9، پردازش زنجیره افکت در قالب نمونه استریو int16 پیاده سازی می شد. این چند محدودیت داشت:

  • همه جلوه‌های خروجی تبدیل اجباری داده‌های صوتی ممیز شناور به int16 را انجام می‌دهند که باعث کاهش دقت می‌شود.
  • اثرات خروجی از سینک های خروجی با تعداد کانال بیشتر از دو رد شد.

در نسخه اندروید 9، خط لوله پردازش زنجیره افکت برای پشتیبانی از فرمت شناور چند کاناله ارتقا یافته است. نکات کلیدی:

  • جلوه های نرم افزار اندروید قبلاً به شناور استریو منتقل شده اند.
  • جلوه‌های قدیمی با آداپتورهای فرمت پشتیبانی می‌شوند که در صورت نیاز float را به int16 تبدیل می‌کنند.

پیاده سازی اثرات خروجی

یک پیاده سازی مرجع برای جلوه های خروجی تحت frameworks/av/media/libeffects موجود است.

شرکایی که جلوه‌های خروجی سفارشی خود را پیاده‌سازی می‌کنند باید برای نسخه اندروید 10 کارهای زیر را انجام دهند:

  • افکت های خروجی را برای پشتیبانی از قالب شناور چند کاناله به روز کنید:
    • پشتیبانی پردازش Int16 دیگر مورد نیاز نیست.
    • تعداد کانال های خروجی را از 2 تا 8 پشتیبانی کنید (برای سازگاری در آینده تعداد 1 تا 30 را در نظر بگیرید).
    • پشتیبانی از تعداد کانال های ورودی مطابق با تعداد کانال های خروجی برای جلوه های درج. جلوه های کمکی همچنان تعداد کانال های ورودی 1 (مونو) را مشاهده می کنند.
    • از هر دو ماسک موقعیت کانال (متعارف) و ماسک شاخص کانال (1 << n) - 1 پشتیبانی کنید.
  • اگر باید به پشتیبانی از جلوه های خروجی فروشنده قدیمی ادامه دهید و نمی توانید آنها را به روز کنید، کد قدیمی را به صورت زیر تأیید کنید:
    • جلوه‌های خروجی قدیمی (درج) باید پیکربندی‌های پشتیبانی‌نشده در EFFECT_CMD_SET_CONFIG را رد کند.
      • بررسی کنید که فرمت int16 باشد.
      • بررسی کنید که ماسک کانال ورودی و خروجی استریو باشد.
      • اگر هر یک از چک ها ناموفق بود، -EINVAL برگردانید.
    • جلوه‌های خروجی قدیمی (کمکی) توسط AudioFlinger با یک ماسک کانال ورودی تک و ماسک‌های کانال خروجی بالقوه چند کاناله، بسته به اینکه سینک خروجی چند کاناله باشد، پیکربندی می‌شود. آنها باید پیکربندی های پشتیبانی نشده در EFFECT_CMD_SET_CONFIG را رد کنند.
      • بررسی کنید که فرمت int16 باشد.
      • بررسی کنید که ماسک کانال ورودی تک و ماسک کانال خروجی استریو باشد.
      • اگر هر یک از چک ها ناموفق بود، -EINVAL برگردانید.
    • کد قدیمی را تأیید کنید. تصور نکنید که کار می کند!