Google Cast برای دستگاههای صوتی فقط از پخش صدا پشتیبانی میکند. این راهنما نحوه بهینهسازی برنامههای Cast را برای دستگاههای فقط صوتی و بهرهگیری از کاهش تقاضای حافظه، CPU و استفاده از پهنای باند شبکه را شرح میدهد.
برنامهای که از Google Cast برای صدا پشتیبانی میکند باید موارد زیر را در نظر بگیرد:
- Google Cast برای دستگاههای صوتی ویدیو یا گرافیک را نمایش نمیدهد. با این حال، بسیاری از دستگاههای صوتی دارای نمایشگری برای نمایش ابردادهها، مانند وضعیت پخش (پخش یا توقف) و پیشرفت هستند. برنامه شما نباید چنین اطلاعات مهم کاربر را فقط روی گیرنده نمایش دهد. اطلاعات مهم و بیشتر رابط کاربری باید روی فرستنده نشان داده شود.
- برای اجرای صحیح برنامههای گیرنده وب، Google Cast برای دستگاههای صوتی همچنان باید گرافیکها را ارائه کند، حتی اگر نمایش داده نمیشوند. از آنجایی که ممکن است دستگاهها از عملیات گرافیکی شتابدهنده سختافزاری پشتیبانی نکنند، برنامههای گیرنده باید از استفاده از عملیات گرافیکی فشرده مانند گرادیان رنگ، چرخش، ترکیب آلفا، و ترسیم مجدد اشیاء بزرگ مانند نوارهای پیشرفت بیش از یک بار در ثانیه اجتناب کنند.
- Google Cast برای دستگاههای صوتی فقط از محتوای محافظت شده از Widevine برای مدیریت حقوق دیجیتال (DRM) پشتیبانی میکند.
- برای بیشتر Google Cast برای دستگاههای صوتی، برنامه فرستنده دامنه صدای کامل دستگاه (به عنوان مثال یک بلندگو) را کنترل میکند، نه فقط میزان صدای ورودی منبع صوتی به تلویزیون را مانند دستگاه Chromecast.
- علاوه بر کنترل پخش با دستگاه فرستنده (مثلاً یک تلفن)، برنامه ممکن است مجبور باشد برای کنترل پخش با کنترلکنندههای خود دستگاه مانند کنترل از راه دور، دکمههای روی دستگاه یا برنامههای کنترل از راه دور خارجی نیز فراهم کند.
- بسته به رابط کاربری دستگاه خاص، ممکن است یک دستگاه صوتی Google Cast از نمایش فراداده محتوا با صفحه LCD کوچک، خروجی HDMI (برای نوارهای صوتی یا گیرندههای صوتی-تصویری) یا یک برنامه کنترل از راه دور خارجی پشتیبانی کند.
توسعه
اولین گام در توسعه یک برنامه Cast برای پشتیبانی از Google Cast برای صدا، توسعه یک برنامه Cast برای صوتی-تصویری است و مطمئن شوید که روی Chromecast اجرا می شود. این سند فرض می کند که شما چنین برنامه ای را توسعه داده و آزمایش کرده اید.
یک برنامه ممکن است از دستگاه های صوتی-تصویری و فقط صوتی پشتیبانی کند. باید بداند که چه زمانی به یکی در مقابل دیگری ارسال میشود و اقداماتی را برای اطمینان از بهترین تجربه کاربر تحت سناریوی داده شده انجام دهد.
برای مثال، برنامههای صوتی و تصویری دوگانه (مانند برنامههای پخش فایل محلی/NAS) باید ارسال به دستگاههای فقط صدا را فعال کنند تا از پخش فایلهای صوتی پشتیبانی کنند، اما برنامه نباید به کاربر اجازه دهد فایلهای ویدیویی را به دستگاه فقط صوتی ارسال کند. دستگاه این برنامه میتواند از APIهای قابلیتهای دستگاه برای فرستندگانی که در زیر توضیح داده شده است استفاده کند تا محتوای مناسب برای دستگاه را تعیین کند.
برای پشتیبانی از Google Cast برای صدا، برنامه شما باید موارد زیر را انجام دهد:
فقط از صدا پشتیبانی می کند: پخش موسیقی و فایل های صوتی، رادیو و غیره. رسانه پخش شده در برنامه Web Receiver نباید یک جریان ویدیویی باشد. همچنین، برای بهبود زمان راهاندازی برنامه و استفاده از حافظه، از پخش تصاویر و گرافیک خودداری کنید. دستورالعملهای استفاده از حافظه را در زیر ببینید.
همانطور که انتظار می رود روی Cast برای دستگاه صوتی و همچنین Chromecast معمولی اجرا شود.
قابلیت های دستگاه
برنامه شما میتواند از طریق APIهای قابلیتهای دستگاه، که از خود دستگاه یا از طریق APIهای فرستنده یا گیرنده در دسترس است، بداند که آیا در دستگاهی فقط صدا اجرا میشود.
هدر HTTP دستگاه
هدر HTTP CAST-DEVICE-CAPABILITIES
ارائه شده توسط دستگاه Cast در حین راه اندازی برنامه، قابلیت های دستگاه را توضیح می دهد. دستگاه درخواستی را با این هدر به سرور میزبان برنامه گیرنده وب ارسال می کند. سرصفحه یک دستگاه فقط صوتی، قابلیتهای دستگاه را با CAST-DEVICE-CAPABILITIES: {"display_supported":false}
.
هنگامی که سرور شما درخواست را از دستگاه دریافت می کند، می توانید از اطلاعات این هدر برای هدایت درخواست به برنامه Web Receiver که برای دستگاه های صوتی بهینه شده است استفاده کنید.
API گیرنده وب
هنگام بارگیری برنامه Web Receiver، میتوانید با فراخوانی CastReceiverManager.getDeviceCapabilities()
همان شیء قابلیتهای دستگاه را دریافت کنید.
برای اطلاعات بیشتر به قابلیت های دستگاه مراجعه کنید.
APIهای فرستنده
هر یک از APIهای فرستنده Cast دارای اطلاعات قابلیتهای دستگاه نیز هستند. اینها به برنامه فرستنده شما امکان میدهد تعیین کند که چه نوع رسانهای را برای گیرنده ارسال کند. اگر برنامه شما از صدا و تصویر هم پشتیبانی میکند، میتواند از ارسال محتوای ویدیویی به دستگاههای فقط صوتی جلوگیری کند. همچنین، برنامه شما میتواند صدا را با استفاده از مناسبترین روش برای دستگاه کنترل کند، همانطور که در چک لیست طراحی توضیح داده شده است. APIهای دستگاه زیر را برای فرستنده ببینید:
- اندروید: CastDevice.hasCapabilities
- iOS: قابلیت های دستگاه
- کروم: chrome.cast.Capability
دستورالعمل استفاده از حافظه
برنامههای گیرنده وب که روی دستگاههای صوتی اجرا میشوند باید مصرف حافظه را به صورت زیر مدیریت کنند:
- از دانلود یا استفاده از هرگونه تصویر یا دارایی گرافیکی خودداری کنید تا ردپای حافظه کاهش یابد و زمان شروع پخش کوتاه شود.
- هنگام استفاده از برنامه های افزودنی منبع رسانه (MSE)، برنامه ها باید بافر جریان را به 2 مگابایت محدود کنند. در صورت استفاده از کتابخانه Media Player (MPL)، اندازه بافر جریان برنامه قبلاً با MPL تعریف شده است.
- هنگام استفاده از HTMLMediaElement، اندازه بافر جریان برنامه توسط Chrome بر اساس نرخ جریان تعریف میشود. نرخ بیت صدا را به 2 مگابیت در ثانیه محدود کنید، که از همه کدک های توضیح داده شده در رسانه پشتیبانی شده (تا 48 کیلوهرتز/16 بیت) پشتیبانی می کند.
کنترل صدا
برای بیشتر Google Cast برای دستگاههای صوتی، برنامه فرستنده دامنه صدای کامل دستگاه را کنترل میکند، نه فقط حجم ورودی منبع صوتی را، مانند دستگاه Chromecast. این بدان معناست که افزایش تغییر صدا باید برای برنامههای فقط صوتی کوچکتر باشد. برای دستورالعملهای ارائه کنترل صدا در برنامه خود، به اسناد زیر مراجعه کنید:
کنترل های دستگاه
Google Cast برای دستگاههای صوتی ممکن است کنترلهای پخش مخصوص به خود را داشته باشد (مانند دکمهها، کنترل از راه دور). اینها از پیام های پخش رسانه تعریف شده برای فضای نام urn:x-cast:com.google.cast.media
، همانطور که در Media Playback Messages توضیح داده شده است، برای کنترل پخش در برنامه گیرنده استفاده می کنند. برنامه گیرنده شما باید از این پیام های پخش رسانه برای پشتیبانی از کنترل های پخش دستگاه پشتیبانی کند.
همچنین، برنامه فرستنده شما باید پیامها را از گیرندهای به فرستنده دیگر پشتیبانی کند تا اگر کاربر وضعیت رسانه را با کنترلهای دستگاه تغییر دهد، برنامه فرستنده شما بتواند پیام وضعیت را از گیرنده دریافت کند و رابط کاربری را بر اساس آن بهروزرسانی کند.
نمایش دستگاه
یک دستگاه صوتی Google Cast ممکن است یک صفحه LCD روی دستگاه یا یک برنامه کنترلی خاص دستگاه داشته باشد که فراداده رسانه را نمایش میدهد. برنامه گیرنده شما باید این ابرداده را برای همه آهنگهای صوتی ارائه دهد و اطمینان حاصل کند که با محتوایی که در حال پخش در حال پخش است همگام است تا اطمینان حاصل شود که ابرداده بهطور مناسب روی نمایشگر نمایش داده میشود. اگر برنامه از فراداده سفارشی استفاده میکند، باید فراداده صوتی استاندارد (نام آهنگ، نام هنرمند، عنوان آلبوم، و غیره) را همانطور که برای هر پلتفرم در زیر توضیح داده شده است، ارائه دهد.
گیرنده هنگامی که رسانه را بارگذاری می کند، فراداده را از فرستنده دریافت می کند. در برنامه فرستنده خود، با فرمان بارگیری رسانه روی گیرنده، باید فیلدهای شرح داده شده در زیر را مشخص کنید تا متادیتا در Google Cast برای دستگاه صوتی نمایش داده شود. از API های زیر استفاده کنید:
Android
MediaMetadata
باMEDIA_TYPE_MUSIC_TRACK
و:iOS
GCKMediaMetadata
باGCKMediaMetadataType
GCKMediaMetadataTypeMusicTrack
و:Chrome
MediaInfo
باMusicTrackMediaMetadata
و:
اگر برنامه Cast یک صف رسانه را در گیرنده یا در فضای ابری مدیریت کند، گیرنده وب باید هرگونه بهروزرسانی وضعیت رسانه را با استفاده از فضای نام urn:x-cast:com.google.cast.media
پخش کند تا همه فرستندهها همگام شوند.
ثبت نام
باید Google Cast خود را برای دستگاه صوتی برای آزمایش ثبت کنید و برنامه خود را برای پشتیبانی از Google Cast برای دستگاههای صوتی، با استفاده از Google Cast SDK Developer Console ثبت کنید.
- برای اطلاعات بیشتر در مورد ثبت دستگاه ها به دستگاه ها مراجعه کنید.
- هنگام ثبت برنامه، باید کادر تأیید ارسال به دستگاههای فقط صدا را علامت بزنید تا به برنامهتان اجازه دهید Google Cast را برای دستگاههای صوتی پیدا کند. به ثبت درخواست خود مراجعه کنید.
برای برنامههای منتشر نشده، مانند برنامههایی که برای آزمایش استفاده میشوند، باید گزینه پشتیبانی از دستگاههای فقط صوتی را نیز انتخاب کنید تا برنامه دستگاههای فقط صدا را پیدا کند.
Google Cast for Audio 2.0
Google Cast for Audio (GC4A) 2.0 نسل بعدی پلت فرم صوتی Cast است که برای هدف قرار دادن دستگاههای با حافظه کم طراحی شده است تا اکوسیستم دستگاههایی را که میتوانند محتوای شما را پخش کنند، گسترش دهد. از آنجایی که GC4A 2.0 پلتفرمهای صوتی را هدف قرار میدهد، مجموعه API وب کاهش مییابد تا با دستگاههای بدون نمایش هماهنگ شود. GC4A 2.0 در حال عرضه برای بلندگوهای جدید و موجودی است که از پخش صدا پشتیبانی می کنند.
تست و اشکال زدایی
از آنجایی که همه بلندگوهای پشتیبانی شده به GC4A 2.0 منتقل خواهند شد، مهم است که توسعه دهندگان برنامه های صوتی برنامه های خود را روی GC4A 2.0 آزمایش کنند. میتوانید برنامه Cast خود را برای GC4A 2.0 روی بلندگوهای تولیدی Bose Wi-Fi، JBL Charge 5 Wi-Fi، JBL Authentics، Cambridge Audio، Teuful Motiv Home، LG 2024 Soundbars آزمایش کنید.
GC4A 2.0 از Chrome Remote Debugger پشتیبانی نمی کند. اگر میخواهید برنامهتان را اشکالزدایی کنید، Google توصیه میکند از Cast Debug Logger استفاده کنید.
موارد تست پایه توصیه شده
آزمایش تمام ویژگی های برنامه در GC4A 2.0 توصیه می شود. حتماً شامل آزمایش پخش انواع رسانه (پادکست، پخش جریانی، و غیره)، مکث، تمیز کردن، پرش، تغییر فهرستهای پخش، توقف، و اتصال مجدد Cast میشود.
API های پشتیبانی شده
GC4A 2.0 از API های زیر پشتیبانی می کند:
- HTML
- جاوا اسکریپت ECMA 6
- DOMParser
- XMLSerializer
- سند و زیر کلاس ها
- DocumentFragment
- HTMLMediaElement و HTMLAudioElement
- HTMLVideoElement (فقط می تواند محتوای صوتی را پخش کند)
- HTMLScriptElement
- HTMLBaseElement
- HTMLTemplateElement
- عناصر سفارشی
- سایه DOM
- ماژول های اسکریپت / ناهمگام / به تعویق افتاد
- Fetch / XHR
- وب سوکت
- MessagePort
- کوکی ها
- MSE (برنامه های افزودنی منبع رسانه)
- EME (برنامه های افزودنی رسانه رمزگذاری شده)
- محلی / ذخیره سازی جلسه
GC4A 2.0 پشتیبانی نمی کند:
- واردات ماژول پویا (در سال 2024 اضافه خواهد شد)
- CSS
- IFrame
- TextTracks
تماس بگیرید
اگر برای راهاندازی برای آزمایش به کمک نیاز دارید یا نمیتوانید از بلندگوی Bose استفاده کنید، لطفاً با gc4a-support-external@google.com تماس بگیرید.