اندروید ۱۳ با ارائه APIهایی که به توسعهدهندگان برنامه اجازه میدهند کشف کنند که آیا ترکیب فعلی پیادهسازی تلفن، هدست متصل و تنظیمات کاربر امکان پخش محتوای صوتی چندکاناله را به شیوهای فراگیر فراهم میکند یا خیر، پشتیبانی از صدای فضایی را معرفی میکند.
تولیدکنندگان اصلی تجهیزات (OEM) میتوانند با استفاده از معماری جدید خط لوله صوتی و یکپارچهسازی چارچوب حسگر، یک جلوه صوتی فضاییساز با پشتیبانی از ردیابی سر با سطح عملکرد و تأخیر مورد نیاز ارائه دهند. پروتکل HID نحوه اتصال یک دستگاه ردیابی سر از طریق بلوتوث و در دسترس قرار دادن آن به عنوان یک دستگاه HID از طریق چارچوب حسگر اندروید را مشخص میکند. برای الزامات و اعتبارسنجی بیشتر، به بخش Spatial Audio و Head Tracking مراجعه کنید.
دستورالعملهای این صفحه برای یک راهکار صوتی فضایی که از APIهای صوتی فضایی جدید و معماری صوتی با یک تلفن اندروید دارای اندروید ۱۳ و بالاتر و هدستهای سازگار با حسگر ردیابی سر استفاده میکند، اعمال میشود.
دستورالعملهایی برای پیادهسازی حالتهای صوتی فضایی پویا و ایستا
صدای فضایی استاتیک نیازی به ردیابی سر ندارد، بنابراین عملکرد خاصی در هدست لازم نیست. همه هدستهای سیمی و بیسیم میتوانند از صدای فضایی استاتیک پشتیبانی کنند.
پیادهسازی API
تولیدکنندگان اصلی تجهیزات (OEM) باید کلاس Spatializer معرفی شده در اندروید ۱۲ را پیادهسازی کنند. این پیادهسازی باید آزمونهای CTS معرفی شده برای کلاس Spatializer را با موفقیت پشت سر بگذارد.
یک پیادهسازی قوی API تضمین میکند که توسعهدهندگان اپلیکیشن، بهویژه سرویسهای پخش رسانه، میتوانند به رفتار سازگار در سراسر اکوسیستم تکیه کنند و بهترین محتوا را با توجه به قابلیتهای دستگاه، زمینه رندر فعلی و انتخابهای کاربر انتخاب کنند.
رابط کاربری
پس از پیادهسازی کلاس Spatializer ، تأیید کنید که رابط کاربری شما رفتار زیر را داشته باشد:
وقتی هدست با قابلیت صدای فضایی جفت میشود، تنظیمات دستگاه بلوتوث برای این هدست، گزینهی صدای فضایی را نمایش میدهد:

شکل ۱. تنظیمات صوتی فضایی.
تنظیمات زمانی که هدست قطع شده است، در دسترس هستند.
حالت پیشفرض برای صدای فضایی پس از جفتسازی اولیه هدست، روی فعال تنظیم شده است.
حالت انتخاب شده توسط کاربر، چه فعال و چه غیرفعال، باعث راهاندازی مجدد تلفن یا لغو جفتسازی و جفتسازی هدست میشود.
رفتار عملکردی
فرمتهای صوتی
فرمتهای صوتی زیر باید توسط جلوهی فضاییساز، زمانی که صدای فضایی فعال است و دستگاه رندر، یک هدست سیمی یا بلوتوثی است، رندر شوند:
- AAC، ۵.۱ کانال
- PCM خام، ۵.۱ کانال
برای تجربه کاربری بهتر، اکیداً توصیه میکنیم از قالبها/پیکربندیهای کانال زیر پشتیبانی کنید:
- دالبی دیجیتال پلاس
- کانالهای ۵.۱.۲، ۷.۱، ۷.۱.۲، ۷.۱.۴
پخش محتوای استریو
محتوای استریو نباید از طریق موتور جلوه فضاییساز رندر شود، حتی اگر صدای فضایی فعال باشد. اگر پیادهسازیای امکان فضاییسازی محتوای استریو را فراهم کند، باید یک رابط کاربری سفارشی ارائه دهد که به کاربر اجازه دهد این ویژگی را به راحتی روشن یا خاموش کند. هنگامی که صدای فضایی فعال است، باید بتوان بدون نیاز به هیچ تغییری در تنظیمات کاربر یا اتصال مجدد یا پیکربندی مجدد هدست، بین پخش محتوای چند کاناله فضاییسازی شده به محتوای استریوی غیر فضاییسازی شده، انتقال داد. انتقال بین محتوای صوتی فضایی و محتوای استریو باید با حداقل اختلال صوتی انجام شود.
انتقالهای مورد استفاده و همزمانی
موارد استفاده خاص را به شرح زیر مدیریت کنید:
- اعلانها باید به همان روشی که با محتوای صوتی غیرمکانی ترکیب میشوند، با محتوای صوتی فضایی نیز ترکیب شوند.
- باید اجازه داده شود که آهنگهای زنگ با محتوای صوتی فضایی ترکیب شوند. با این حال، به طور پیشفرض، مکانیسم فوکوس صوتی، هنگام وجود آهنگ زنگ، محتوای صوتی فضایی را متوقف میکند.
- هنگام پاسخ دادن یا برقراری تماس تلفنی یا کنفرانس ویدیویی، پخش صدای فضایی باید متوقف شود. پخش صدای فضایی باید با همان تنظیمات صدای فضایی پس از پایان تماس از سر گرفته شود. پیکربندی مجدد مسیر صوتی برای تغییر از حالت صدای فضایی به حالت مکالمه باید به سرعت و به طور یکپارچه انجام شود تا بر تجربه تماس تأثیر نگذارد.
رندرینگ روی بلندگوها
پشتیبانی از فضاسازی صدا از طریق بلندگوها یا حالت فراصوتی (transaural mode ) الزامی نیست.
دستورالعملهایی برای پیادهسازی ردیابی سر
این بخش بر روی صدای فضایی پویا تمرکز دارد که الزامات خاصی برای هدست دارد.
رابط کاربری
پس از پیادهسازی و جفتسازی هدست با قابلیت صدای فضایی، تأیید کنید که رابط کاربری شما رفتار زیر را داشته باشد:
در تنظیمات دستگاه بلوتوث، وقتی تنظیم Spatial Audio برای هدست فعال باشد، یک تنظیم Head tracking در زیر Spatial Audio ظاهر میشود:

شکل ۲. تنظیمات صدای فضایی و ردیابی سر.
تنظیمات ردیابی سر هنگام غیرفعال بودن صدای فضایی قابل مشاهده نیست.
حالت پیشفرض ردیابی سر پس از جفتسازی اولیه هدست، روی فعال تنظیم شده است.
حالت انتخاب شده توسط کاربر، چه فعال و چه غیرفعال، باید در طول راهاندازی مجدد تلفن یا قطع اتصال و جفتسازی هدست ادامه یابد.
رفتار عملکردی
گزارش وضعیت سر
- اطلاعات موقعیت سر، در مختصات x، y و z، که از هدست به دستگاه اندروید ارسال میشود، باید حرکات سر کاربر را به سرعت و با دقت منعکس کند.
- گزارش موقعیت سر از طریق لینک بلوتوث باید از پروتکل تعریف شده از طریق HID پیروی کند.
- هدست باید اطلاعات ردیابی سر را فقط زمانی به تلفن اندروید ارسال کند که کاربر ردیابی سر را در رابط کاربری تنظیمات دستگاه بلوتوث فعال کرده باشد.
عملکرد
تأخیر
تأخیر ردیابی سر به عنوان مدت زمانی تعریف میشود که از ثبت حرکت سر توسط واحد اندازهگیری اینرسی (IMU) تا تشخیص تغییر صدا توسط مبدلهای هدفون ناشی از این حرکت، طول میکشد. تأخیر ردیابی سر نباید از ۱۵۰ میلیثانیه تجاوز کند.
نرخ گزارش وضعیت سر
وقتی ردیابی سر فعال است، هدست باید موقعیت سر را به صورت دورهای توصیه شده تقریباً 20 میلیثانیه گزارش دهد. برای جلوگیری از فعال شدن منطق تشخیص ورودی قدیمی در تلفن در حین لرزش انتقال بلوتوث، حداکثر زمان بین دو بهروزرسانی نباید از 40 میلیثانیه تجاوز کند.
بهینهسازی مصرف برق
برای بهینهسازی مصرف انرژی، توصیه میکنیم که پیادهسازی از مکانیزمهای سوئیچینگ کدک بلوتوث و انتخاب حالت تأخیر ارائه شده توسط رابطهای صوتی HAL و بلوتوث صوتی HAL استفاده کند.
پیادهسازیهای AOSP از چارچوب صوتی و پشته بلوتوث، از قبل از سیگنالهای کنترل سوئیچینگ کدک پشتیبانی میکنند. اگر پیادهسازی OEM از HAL صوتی اصلی برای صدای بلوتوث استفاده کند، که به عنوان حالت تخلیه کدک شناخته میشود، OEM باید اطمینان حاصل کند که HAL صوتی، آن سیگنالها را بین HAL صوتی و پشته بلوتوث رله میکند.
تعویض کدک
وقتی صدای فضایی پویا و ردیابی سر روشن هستند، از یک کدک با تأخیر کم، مانند Opus ، استفاده کنید. هنگام پخش محتوای صوتی غیرفضایی، از یک کدک کممصرف، مانند کدگذاری صوتی پیشرفته (AAC) استفاده کنید.
هنگام تغییر کدک، این قوانین را رعایت کنید:
- فقط فعالیت را در جریانهای خروجی HAL صوتی زیر ردیابی کنید:
- خروجی فضایی اختصاصی
- پخش جریانهای خاص رسانه، مانند پخش بافر عمیق یا پخش فشرده آفلود
وقتی همه استریمهای مربوطه غیرفعال هستند و استریم فضاساز شروع به کار میکند، استریم بلوتوث را با
isLowLatencyکه رویtrueتنظیم شده است، شروع کنید تا یک کدک با تأخیر کم مشخص شود.وقتی همه استریمهای مرتبط غیرفعال هستند و یک استریم رسانهای شروع میشود، استریم بلوتوث را با تنظیم
isLowLatencyرویfalseشروع کنید تا یک کدک کممصرف مشخص شود.اگر یک جریان رسانهای فعال است و جریان spaceizer شروع میشود، جریان بلوتوث را با تنظیم
isLowLatencyرویtrueمجدداً راهاندازی کنید.
در سمت هدست، هدست باید از هر دو رمزگشای کمتاخیر و کممصرف پشتیبانی کند و پروتکل انتخاب کدک استاندارد را پیادهسازی کند.
تنظیم حالت تأخیر
تنظیم حالت تأخیر زمانی اتفاق میافتد که کدک با تأخیر کم انتخاب شود.
بسته به اینکه ردیابی سر فعال یا غیرفعال باشد، تنظیم حالت تأخیر از مکانیسمهای موجود برای کاهش یا افزایش تأخیر استفاده میکند تا به بهترین مصالحه بین تأخیر، قدرت و کیفیت صدا برسد. وقتی صدای فضایی فعال و ردیابی سر فعال باشد، حالت تأخیر کم انتخاب میشود. وقتی صدای فضایی فعال و ردیابی سر غیرفعال باشد، حالت تأخیر آزاد انتخاب میشود. تنظیم تأخیر، صرفهجویی قابل توجهی در مصرف برق و افزایش استحکام لینک صوتی بلوتوث را در زمانی که فقط صدای فضایی استاتیک درخواست میشود، فراهم میکند. رایجترین مکانیسم تنظیم تأخیر، کاهش یا افزایش اندازه بافر لرزش در هدست بلوتوث است.
برای تنظیمات حالت تأخیر برای صدای LE، به ردیابی سر روی صدای LE مراجعه کنید.