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 در هر یک از دستگاههای GC4A 2.0 فهرستشده در اینجا آزمایش کنید.
GC4A 2.0 از Chrome Remote Debugger پشتیبانی نمی کند. اگر میخواهید برنامهتان را اشکالزدایی کنید، Google توصیه میکند از Cast Debug Logger استفاده کنید.
دستگاههای GC4A 2.0 موجود
این یک لیست غیر جامع از دستگاه های GC4A 2.0 است:
- Bose: بلندگو وای فای و نوارهای صوتی هوشمند
- JBL: شارژ 5 Wi-Fi / Boombox 3 Wi-Fi / Authentics 200، 300 و 500
- سامسونگ: قاب موسیقی / نوارهای صوتی
- LG: Soundbars S90TY/SG10TY/SE70Q/S80Q/S90Q
- Bang & Olufsen Beosound 2 / Beocore Connect
- Sonoro Maestro 2 / Meisterstruck 2
- کمبریج صوتی MXN10
- KEF LS60 / LSX II
- Teufel Motiv Home
- صوتی نوردیک آرگون
- WiiM CI MOD S / Ultra
موارد تست پایه توصیه شده
آزمایش تمام ویژگی های برنامه در 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
شناسایی
در حالی که انتظار میرود برنامههای Cast Receiver برای همه دستگاههای Cast عمومیت داشته باشند، گاهی اوقات تشخیص دستگاهی که روی آن کار میکنید میتواند مفید باشد. دستگاههای GC4A 2.0 را میتوان با استفاده از رشته عامل کاربر شناسایی کرد.
- همه دستگاههای Cast حاوی
CrKey/
و یک نسخه هستند. مثال:CrKey/1.68.000001
. - دستگاههای GC4A 2.0 حاوی
Castlite/
و یک نسخه هستند. مثال:Castlite/1.0
.
تماس بگیرید
اگر برای راهاندازی برای آزمایش به کمک نیاز دارید یا نمیتوانید از بلندگوی Bose استفاده کنید، لطفاً با gc4a-support-external@google.com تماس بگیرید.
،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 در هر یک از دستگاههای GC4A 2.0 فهرستشده در اینجا آزمایش کنید.
GC4A 2.0 از Chrome Remote Debugger پشتیبانی نمی کند. اگر میخواهید برنامهتان را اشکالزدایی کنید، Google توصیه میکند از Cast Debug Logger استفاده کنید.
دستگاههای GC4A 2.0 موجود
این یک لیست غیر جامع از دستگاه های GC4A 2.0 است:
- Bose: بلندگو وای فای و نوارهای صوتی هوشمند
- JBL: شارژ 5 Wi-Fi / Boombox 3 Wi-Fi / Authentics 200، 300 و 500
- سامسونگ: قاب موسیقی / نوارهای صوتی
- LG: Soundbars S90TY/SG10TY/SE70Q/S80Q/S90Q
- Bang & Olufsen Beosound 2 / Beocore Connect
- Sonoro Maestro 2 / Meisterstruck 2
- کمبریج صوتی MXN10
- KEF LS60 / LSX II
- Teufel Motiv Home
- صوتی نوردیک آرگون
- WiiM CI MOD S / Ultra
موارد تست پایه توصیه شده
آزمایش تمام ویژگی های برنامه در 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
شناسایی
در حالی که انتظار میرود برنامههای Cast Receiver برای همه دستگاههای Cast عمومیت داشته باشند، گاهی اوقات تشخیص دستگاهی که روی آن کار میکنید میتواند مفید باشد. دستگاههای GC4A 2.0 را میتوان با استفاده از رشته عامل کاربر شناسایی کرد.
- همه دستگاههای Cast حاوی
CrKey/
و یک نسخه هستند. مثال:CrKey/1.68.000001
. - دستگاههای GC4A 2.0 حاوی
Castlite/
و یک نسخه هستند. مثال:Castlite/1.0
.
تماس بگیرید
اگر برای راهاندازی برای آزمایش به کمک نیاز دارید یا نمیتوانید از بلندگوی Bose استفاده کنید، لطفاً با gc4a-support-external@google.com تماس بگیرید.
،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 را برای دستگاههای صوتی پیدا کند. به ثبت درخواست خود مراجعه کنید.
برای برنامههای منتشر نشده، مانند برنامههایی که برای آزمایش استفاده میشوند، باید گزینه پشتیبانی از دستگاههای فقط صوتی را نیز انتخاب کنید تا برنامه دستگاههای فقط صدا را پیدا کند.
بازیگران گوگل برای صوتی 2.0
Google Cast for Audio (GC4A) 2.0 پلت فرم صوتی بازیگران بعدی است که برای هدف قرار دادن دستگاه های حافظه کم ، برای گسترش اکوسیستم دستگاه هایی که می توانند محتوای شما را پخش کنند ، طراحی شده است. از آنجا که GC4A 2.0 سیستم عامل های صوتی را هدف قرار می دهد ، مجموعه API وب برای تراز کردن با دستگاه های بدون نمایش کاهش می یابد. GC4A 2.0 به بلندگوهای جدید و موجود که از بازیگران پشتیبانی می کنند ، می رود.
تست و اشکال زدایی
از آنجا که همه بلندگوهای پشتیبانی شده به GC4A 2.0 منتقل می شوند ، مهم است که توسعه دهندگان برنامه صوتی برنامه های خود را در GC4A 2.0 آزمایش کنند. می توانید برنامه بازیگران خود را برای GC4A 2.0 در هر یک از دستگاه های GC4A 2.0 که در اینجا ذکر شده است ، آزمایش کنید.
GC4A 2.0 از اشکال زدایی از راه دور Chrome پشتیبانی نمی کند. اگر می خواهید برنامه خود را اشکال زدایی کنید ، Google توصیه می کند از Logger Debug بازیگران استفاده کنید.
دستگاه های GC4A 2.0 موجود
این یک لیست غیر سازگار از دستگاه های GC4A 2.0 است:
- Bose: بلندگو WiFi و صدای صوتی هوشمند
- JBL: شارژ 5 Wi-Fi / Boombox 3 Wi-Fi / Authentics 200 ، 300 و 500
- سامسونگ: قاب موسیقی / نوارهای صوتی
- LG: Soundbars S90TY/SG10TY/SE70Q/S80Q/S90Q
- Bang & Olufsen Beosound 2 / Beocore Connect
- Sonoro Maestro 2 / Meisterstruck 2
- کمبریج صوتی MXN10
- KEF LS60 / LSX II
- خانه Teufel Motiv Home
- صوتی Nordic Argon
- wiim ci mod / ultra
موارد تست اساسی توصیه شده
آزمایش تمام ویژگی های برنامه در GC4A 2.0 توصیه می شود. حتماً شامل تست بازی در تمام انواع رسانه ها (پادکست ها ، جریان ها و غیره) ، مکث ، شستشو ، پرش ، تغییر لیست پخش ، توقف و اتصال مجدد بازیگران است.
API های پشتیبانی شده
GC4A 2.0 از API های زیر پشتیبانی می کند:
- HTML
- JavaScript ECMA 6
- سرپرست
- XMLSerializer
- مستند و زیر کلاس ها
- DocumentFragment
- htmlmediaelement & htmlaudioelement
- htmlvideoelement (فقط می تواند محتوای صوتی را پخش کند)
- htmlscriptelement
- HTMLBaseElement
- htmltemplateElement
- عناصر سفارشی
- سایه DOM
- ماژول های اسکریپت / async / معوق
- واکشی / XHR
- وب سوکت
- پیام
- کوکی ها
- MSE (پسوند منبع رسانه)
- EME (پسوند رسانه ای رمزگذاری شده)
- ذخیره محلی / جلسه
GC4A 2.0 پشتیبانی نمی کند:
- واردات ماژول پویا (در سال 2024 اضافه می شود)
- CSS
- IFrame
- تکیه های متن
شناسایی
در حالی که انتظار می رود برنامه های گیرنده بازیگران برای همه دستگاه های بازیگران جهانی باشند ، اما گاهی اوقات می توان برای شناسایی دستگاهی که روی آن کار می کنید ، مفید باشد. دستگاه های GC4A 2.0 را می توان با استفاده از رشته عامل کاربر شناسایی کرد.
- همه دستگاه های بازیگران حاوی
CrKey/
و یک نسخه هستند. مثال:CrKey/1.68.000001
. - دستگاه های GC4A 2.0 حاوی
Castlite/
و یک نسخه هستند. مثال:Castlite/1.0
.
تماس بگیرید
در صورت نیاز به تنظیم کمک برای آزمایش ، لطفاً با GC4A-support-external@google.com تماس بگیرید ، یا قادر به استفاده از بلندگو Bose نیستید.
،بازیگران Google برای دستگاه های صوتی فقط از پخش صوتی پشتیبانی می کنند. این راهنما نحوه بهینه سازی برنامه های بازیگران برای دستگاه های فقط صوتی و بهره گیری از کاهش تقاضا در حافظه ، CPU و استفاده از پهنای باند شبکه را شرح می دهد.
برنامه ای که از Google Cast برای صدا پشتیبانی می کند باید موارد زیر را در نظر بگیرد:
- بازیگران Google برای دستگاه های صوتی فیلم یا گرافیکی را نشان نمی دهند. با این حال ، بسیاری از دستگاه های صوتی نمایشگر برای نمایش ابرداده مانند وضعیت پخش (بازی یا مکث) و پیشرفت دارند. برنامه شما نباید چنین اطلاعات مهم کاربر را فقط در گیرنده نمایش دهد. اطلاعات بحرانی و بیشتر رابط کاربری باید در فرستنده نشان داده شود.
- برای اجرای صحیح برنامه های گیرنده وب ، بازیگران Google برای دستگاه های صوتی هنوز هم باید گرافیک را ارائه دهند ، حتی اگر نمایش داده نشوند. از آنجا که دستگاه ها ممکن است از عملیات گرافیکی شرکای سخت افزاری پشتیبانی نکنند ، برنامه های گیرنده باید از استفاده از عملیات فشرده گرافیکی مانند شیب های رنگ ، چرخش ، ترکیب آلفا و استفاده مجدد از اشیاء بزرگ مانند میله های پیشرفت بیش از یک بار در ثانیه خودداری کنند.
- بازیگران Google برای دستگاه های صوتی فقط از Widevine برای مدیریت حقوق دیجیتال (DRM) محافظت می کنند.
- برای اکثر بازیگران Google برای دستگاه های صوتی ، برنامه Sender دامنه حجم کامل دستگاه را کنترل می کند (به عنوان مثال بلندگو) ، نه فقط حجم ورودی منبع صوتی به تلویزیون ، مانند یک دستگاه Chromecast.
- علاوه بر کنترل پخش با دستگاه فرستنده (به عنوان مثال تلفن) ، ممکن است برنامه برای کنترل پخش با کنترلرهای خود دستگاه مانند کنترل از راه دور ، دکمه های روی دستگاه یا یک برنامه از راه دور خارجی فراهم کند.
- یک بازیگر Google برای دستگاه صوتی ممکن است از نمایش ابرداده محتوا با صفحه LCD کوچک ، خروجی HDMI (برای صدای صوتی یا گیرنده های صوتی یا ویدیو) یا یک برنامه از راه دور خارجی بسته به UI دستگاه خاص پشتیبانی کند.
توسعه
اولین قدم برای تهیه یک برنامه بازیگران برای پشتیبانی از بازیگران گوگل برای صدا ، تهیه یک برنامه بازیگران برای صوتی-ویدئو و اطمینان از اجرای آن در Chromecast است. این سند فرض می کند که شما چنین برنامه ای را تدوین و آزمایش کرده اید.
یک برنامه ممکن است از هر دو دستگاه صوتی و فقط دستگاه های صوتی پشتیبانی کند. باید بداند که چه زمانی به یک در مقابل دیگری ریخته می شود و برای اطمینان از بهترین تجربه کاربر تحت سناریوی داده شده اقدامات لازم را انجام می دهد.
به عنوان مثال ، برنامه های ویدئویی و صوتی دوگانه (مانند برنامه های پخش فایل محلی/NAS) باید برای پشتیبانی از پخش فایلهای صوتی ، ریخته گری را به دستگاه های فقط صوتی فعال کنند ، اما برنامه نباید به کاربر اجازه دهد فایلهای ویدیویی را به دستگاه فقط صوتی ارسال کند. این برنامه می تواند از API های قابلیت دستگاه برای فرستنده های شرح داده شده در زیر برای تعیین محتوای مناسب برای دستگاه استفاده کند.
برای پشتیبانی از بازیگران گوگل برای صدا ، برنامه شما باید موارد زیر را انجام دهد:
پشتیبانی فقط صوتی: پخش موسیقی و فایلهای صوتی ، رادیو و غیره. رسانه ها به برنامه گیرنده وب پخش می شوند نباید یک جریان ویدیویی باشند. همچنین ، از پخش گرافیک و تصاویر برای بهبود زمان راه اندازی برنامه و استفاده از حافظه خودداری کنید. در زیر دستورالعمل های استفاده از حافظه را مشاهده کنید.
همانطور که انتظار می رود برای بازیگران برای دستگاه صوتی و همچنین یک Chromecast معمولی انجام شود.
قابلیت های دستگاه
برنامه شما می تواند بداند که آیا با توجه به API های قابلیت دستگاه ، از طریق دستگاه خود یا از طریق API فرستنده یا گیرنده ، در یک دستگاه فقط صوتی اجرا می شود.
هدر HTTP دستگاه
CAST-DEVICE-CAPABILITIES
HTTP هدر ارائه شده توسط دستگاه ریخته گری در هنگام راه اندازی برنامه ، قابلیت های دستگاه را توصیف می کند. دستگاه درخواستی را با این هدر به سرور میزبان برنامه گیرنده وب ارسال می کند. عنوان یک دستگاه فقط صوتی قابلیت های دستگاه را با CAST-DEVICE-CAPABILITIES: {"display_supported":false}
.
هنگامی که سرور شما درخواست را از دستگاه دریافت می کند ، می توانید از اطلاعات موجود در این عنوان استفاده کنید تا درخواست را به برنامه گیرنده وب که برای دستگاه های صوتی بهینه شده است ، تغییر مسیر دهید.
API گیرنده وب
با فراخوانی CastReceiverManager.getDeviceCapabilities()
هنگام بارگیری برنامه گیرنده وب می توانید همان شیء دستگاه را دریافت کنید.
برای اطلاعات بیشتر به قابلیت های دستگاه مراجعه کنید.
API های فرستنده
هر یک از API های ارسال کننده بازیگران دارای اطلاعات قابلیت دستگاه نیز هستند. اینها به برنامه فرستنده شما اجازه می دهد تا چه نوع رسانه ای را برای ارسال به گیرنده تعیین کند. اگر برنامه شما از هر دو صوتی و تصویری پشتیبانی می کند ، می تواند از ارسال محتوای ویدیویی به دستگاه های فقط صوتی جلوگیری کند. همچنین ، برنامه شما می تواند با استفاده از روش مناسب برای دستگاه ، همانطور که در لیست چک طراحی توضیح داده شده است ، حجم را کنترل کند. APIS قابلیت های دستگاه زیر را برای فرستنده ها مشاهده کنید:
- Android: castdevice.hascapability
- iOS: deviceCapability
- Chrome: Chrome.cast.Capability
دستورالعمل های استفاده از حافظه
برنامه های گیرنده وب که در دستگاه های صوتی اجرا می شوند باید استفاده از حافظه را به شرح زیر مدیریت کنند:
- از بارگیری یا استفاده از هر دارایی تصویر یا گرافیکی خودداری کنید تا ردپای حافظه را کاهش داده و زمان را تا زمان شروع پخش کوتاه کنید.
- هنگام استفاده از برنامه های افزودنی منبع رسانه (MSE) ، برنامه ها باید بافر جریان را به 2 مگابایت محدود کنند. در صورت استفاده از کتابخانه Media Player (MPL) ، اندازه بافر جریان برنامه قبلاً توسط MPL تعریف شده است.
- هنگام استفاده از HTMLMediaElement ، اندازه بافر جریان برنامه توسط Chrome بر اساس نرخ جریان تعریف می شود. Bitrate صوتی را به 2 مگابیت در ثانیه محدود کنید ، که از تمام کدک های شرح داده شده در رسانه های پشتیبانی شده (حداکثر 48kHz/16bit) پشتیبانی می کند.
کنترل صدا
برای اکثر بازیگران Google برای دستگاه های صوتی ، برنامه Sender دامنه حجم کامل دستگاه را کنترل می کند ، نه فقط حجم ورودی منبع صوتی ، مانند یک دستگاه Chromecast. این بدان معناست که افزایش حجم برای برنامه های فقط صدا باید کوچکتر باشد. برای دستورالعمل های مربوط به ارائه کنترل صدا در برنامه خود به اسناد زیر مراجعه کنید:
کنترل های دستگاه
بازیگران Google برای دستگاه های صوتی ممکن است کنترل پخش خاص خود را داشته باشند (مانند دکمه ها ، از راه دور). اینها از پیام های پخش رسانه ای تعریف شده برای urn:x-cast:com.google.cast.media
، همانطور که در پیام های پخش رسانه توضیح داده شده است ، برای کنترل پخش در برنامه گیرنده استفاده می کنند. برنامه گیرنده شما برای پشتیبانی از کنترل پخش دستگاه باید از این پیام های پخش رسانه پشتیبانی کند.
همچنین ، برنامه فرستنده شما باید از پیام های گیرنده به فرستنده پشتیبانی کند تا اگر کاربر وضعیت رسانه را با کنترل دستگاه تغییر دهد ، برنامه فرستنده شما می تواند یک پیام وضعیت را از گیرنده دریافت کرده و UI را بر این اساس به روز کند.
نمایش دستگاه
یک بازیگران Google برای دستگاه صوتی ممکن است دارای صفحه نمایش 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 SDK ، برنامه خود را برای دستگاه صوتی برای آزمایش و ثبت برنامه خود برای پشتیبانی از بازیگران Google برای دستگاه های صوتی ثبت کنید.
- برای کسب اطلاعات بیشتر در مورد دستگاه های ثبت نام به دستگاه ها مراجعه کنید.
- شما باید هنگام ثبت برنامه خود ، پشتیبانی از کادر انتخابی دستگاه های فقط صوتی را بررسی کنید تا برنامه خود به شما امکان دهد Google Cast را برای دستگاه های صوتی کشف کند. به ثبت نام برنامه خود مراجعه کنید.
برای برنامه های منتشر نشده ، مانند آنهایی که برای آزمایش استفاده می شوند ، باید گزینه پشتیبانی از دستگاه های فقط صوتی را انتخاب کنید تا برنامه بتواند دستگاه های فقط صوتی را کشف کند.
بازیگران گوگل برای صوتی 2.0
Google Cast for Audio (GC4A) 2.0 پلت فرم صوتی بازیگران بعدی است که برای هدف قرار دادن دستگاه های حافظه کم ، برای گسترش اکوسیستم دستگاه هایی که می توانند محتوای شما را پخش کنند ، طراحی شده است. از آنجا که GC4A 2.0 سیستم عامل های صوتی را هدف قرار می دهد ، مجموعه API وب برای تراز کردن با دستگاه های بدون نمایش کاهش می یابد. GC4A 2.0 به بلندگوهای جدید و موجود که از بازیگران پشتیبانی می کنند ، می رود.
تست و اشکال زدایی
از آنجا که همه بلندگوهای پشتیبانی شده به GC4A 2.0 منتقل می شوند ، مهم است که توسعه دهندگان برنامه صوتی برنامه های خود را در GC4A 2.0 آزمایش کنند. می توانید برنامه بازیگران خود را برای GC4A 2.0 در هر یک از دستگاه های GC4A 2.0 که در اینجا ذکر شده است ، آزمایش کنید.
GC4A 2.0 از اشکال زدایی از راه دور Chrome پشتیبانی نمی کند. اگر می خواهید برنامه خود را اشکال زدایی کنید ، Google توصیه می کند از Logger Debug بازیگران استفاده کنید.
دستگاه های GC4A 2.0 موجود
این یک لیست غیر سازگار از دستگاه های GC4A 2.0 است:
- Bose: بلندگو WiFi و صدای صوتی هوشمند
- JBL: شارژ 5 Wi-Fi / Boombox 3 Wi-Fi / Authentics 200 ، 300 و 500
- سامسونگ: قاب موسیقی / نوارهای صوتی
- LG: Soundbars S90TY/SG10TY/SE70Q/S80Q/S90Q
- Bang & Olufsen Beosound 2 / Beocore Connect
- Sonoro Maestro 2 / Meisterstruck 2
- کمبریج صوتی MXN10
- KEF LS60 / LSX II
- خانه Teufel Motiv Home
- صوتی Nordic Argon
- wiim ci mod / ultra
موارد تست اساسی توصیه شده
آزمایش تمام ویژگی های برنامه در GC4A 2.0 توصیه می شود. حتماً شامل تست بازی در تمام انواع رسانه ها (پادکست ها ، جریان ها و غیره) ، مکث ، شستشو ، پرش ، تغییر لیست پخش ، توقف و اتصال مجدد بازیگران است.
API های پشتیبانی شده
GC4A 2.0 از API های زیر پشتیبانی می کند:
- HTML
- JavaScript ECMA 6
- سرپرست
- XMLSerializer
- مستند و زیر کلاس ها
- DocumentFragment
- htmlmediaelement & htmlaudioelement
- htmlvideoelement (فقط می تواند محتوای صوتی را پخش کند)
- htmlscriptelement
- HTMLBaseElement
- htmltemplateElement
- عناصر سفارشی
- سایه DOM
- ماژول های اسکریپت / async / معوق
- واکشی / XHR
- وب سوکت
- پیام
- کوکی ها
- MSE (پسوند منبع رسانه)
- EME (پسوند رسانه ای رمزگذاری شده)
- ذخیره محلی / جلسه
GC4A 2.0 پشتیبانی نمی کند:
- واردات ماژول پویا (در سال 2024 اضافه می شود)
- CSS
- IFrame
- تکیه های متن
شناسایی
در حالی که انتظار می رود برنامه های گیرنده بازیگران برای همه دستگاه های بازیگران جهانی باشند ، اما گاهی اوقات می توان برای شناسایی دستگاهی که روی آن کار می کنید ، مفید باشد. دستگاه های GC4A 2.0 را می توان با استفاده از رشته عامل کاربر شناسایی کرد.
- همه دستگاه های بازیگران حاوی
CrKey/
و یک نسخه هستند. مثال:CrKey/1.68.000001
. - دستگاه های GC4A 2.0 حاوی
Castlite/
و یک نسخه هستند. مثال:Castlite/1.0
.
تماس بگیرید
در صورت نیاز به تنظیم کمک برای آزمایش ، لطفاً با GC4A-support-external@google.com تماس بگیرید ، یا قادر به استفاده از بلندگو Bose نیستید.