تصور کنید بتوانید از یک برنامه وب از تلفن خود برای ارائه یک صفحه اسلاید به یک پروژکتور کنفرانس استفاده کنید - یا تصاویر را به اشتراک بگذارید، بازی کنید یا ویدیوها را روی صفحه تلویزیون تماشا کنید - با استفاده از برنامه وب تلفن همراه به عنوان یک کنترلر.
آخرین نسخه Chrome در Android به سایتها امکان میدهد با استفاده از Cast Web SDK به دستگاههای Google Cast ارائه دهند . این بدان معناست که اکنون میتوانید با استفاده از Web SDK با Chrome در Android یا iOS (یا روی دسکتاپ با افزونه) برنامههای فرستنده Cast ایجاد کنید و همچنین برنامههایی ایجاد کنید که از Cast SDK مادری برای Android و iOS استفاده میکنند. (پیش از این، یک برنامه فرستنده Google Cast به برنامه افزودنی Google Cast Chrome نیاز داشت، بنابراین در Android فقط میتوان با دستگاههای Cast از برنامههای بومی تعامل داشت.)
در زیر مقدمه ای کوتاه برای ساختن یک برنامه فرستنده Cast با استفاده از Web SDK آورده شده است. اطلاعات جامع تر از راهنمای توسعه برنامه فرستنده Chrome در دسترس است.
همه صفحاتی که از Cast استفاده می کنند باید شامل کتابخانه Cast باشند:
<script
type="text/javascript"
src="https://www.gstatic.com/cv/js/sender/v1/cast_sender.js"
></script>
برای رسیدگی به در دسترس بودن API و مقداردهی اولیه جلسه Cast (حتماً قبل از بارگیری API، کنترل کننده را اضافه کنید!):
window['__onGCastApiAvailable'] = function (isLoaded, error) {
if (isLoaded) {
initializeCastApi();
} else {
console.log(error);
}
};
function initializeCastApi() {
var sessionRequest = new chrome.cast.SessionRequest(applicationID);
var apiConfig = new chrome.cast.ApiConfig(
sessionRequest,
sessionListener,
receiverListener
);
chrome.cast.initialize(apiConfig, onInitSuccess, onError);
}
اگر از برنامه پیشفرض Styled Media Receiver استفاده میکنید و نه یک برنامه گیرنده سفارشی ثبتشده که متعلق به خودتان است، میتوانید یک SessionRequest
مانند این ایجاد کنید:
var sessionRequest = new chrome.cast.SessionRequest(chrome.cast.media.
DEFAULT_MEDIA_RECEIVER_APP_ID);
پاسخ تماس receiverListener
در بالا زمانی اجرا می شود که یک یا چند دستگاه در دسترس باشد:
function receiverListener(e) {
if (e === chrome.cast.ReceiverAvailability.AVAILABLE) {
// update UI
}
}
هنگامی که کاربر روی نماد Cast کلیک میکند، جلسه Cast را راهاندازی کنید، همانطور که توسط دستورالعملهای تجربه کاربر الزامی است:
chrome.cast.requestSession(onRequestSessionSuccess,
onRequestSessionError);
function onRequestSessionSuccess(e) {
session = e;
}
یک انتخابگر دستگاه به کاربر ارائه می شود:
گفتگوی جزئیات مسیر زمانی نشان داده می شود که صفحه از قبل متصل شده باشد و requestSession()
را فراخوانی کند:
هنگامی که یک جلسه Cast، می توانید رسانه را برای دستگاه Cast انتخابی بارگیری کنید، و یک شنونده برای رویدادهای پخش رسانه اضافه کنید:
var mediaInfo = new chrome.cast.media.MediaInfo(mediaURL);
var request = new chrome.cast.media.LoadRequest(mediaInfo);
session.loadMedia(
request,
onMediaDiscovered.bind(this, 'loadMedia'),
onMediaError
);
function onMediaDiscovered(how, media) {
currentMedia = media;
media.addUpdateListener(onMediaStatusUpdate);
}
متغیر currentMedia
در اینجا یک شی chrome.cast.media.Media
است که می تواند برای کنترل پخش استفاده شود:
function playMedia() {
currentMedia.play(null, success, error);
}
// ...
هنگام پخش رسانه، یک اعلان پخش/مکث نشان داده میشود:
اگر هیچ رسانهای پخش نمیشود، اعلان فقط یک دکمه توقف دارد، برای توقف ارسال:
پاسخ تماس sessionListener
برای chrome.cast.ApiConfig()
(به بالا مراجعه کنید) برنامه شما را قادر میسازد تا به یک جلسه Cast موجود بپیوندد یا مدیریت کند:
function sessionListener(e) {
session = e;
if (session.media.length !== 0) {
onMediaDiscovered('onRequestSessionSuccess', session.media[0]);
}
}
اگر Chrome در Android اجازه ارسال رسانه از وبسایت شما را میدهد اما میخواهید این ویژگی را غیرفعال کنید تا رابط کاربری پیشفرض ارسال محتوا با خودتان تداخل نداشته باشد، از ویژگی disableRemotePlayback موجود در Chrome 49 و بالاتر استفاده کنید:
<video disableRemotePlayback src="..."></video>
راهنمای Cast Web SDK دارای پیوندهایی به برنامههای نمونه و اطلاعاتی درباره ویژگیهای Cast مانند مدیریت جلسه، آهنگهای متنی (برای زیرنویسها و شرحها) و بهروزرسانیهای وضعیت است.
در حال حاضر، فقط میتوانید با استفاده از Cast Web SDK به یک برنامه گیرنده Cast ارائه دهید، اما کار در حال انجام است تا بتوان از Presentation API بدون Cast SDK (در دسکتاپ و Android) برای ارائه هر صفحه وب به دستگاه Cast استفاده کرد. بدون ثبت نام در گوگل برخلاف Cast SDK فقط Chrome، استفاده از API استاندارد به صفحه اجازه میدهد با سایر عوامل کاربر و دستگاههایی که از API پشتیبانی میکنند کار کند.
Presentation API، همراه با Remote Playback API ، بخشی از تلاش گروه کاری صفحه دوم برای فعال کردن صفحات وب برای استفاده از صفحه دوم برای نمایش محتوای وب است.
این APIها از طیف وسیعی از دستگاههایی که آنلاین میشوند - از جمله نمایشگرهای متصل که یک عامل کاربر را اجرا میکنند - برای فعال کردن طیف گستردهای از برنامهها با یک دستگاه «کنترل» و یک دستگاه «نمایش» بهره میبرند.
ما شما را در جریان پیشرفت پیاده سازی قرار خواهیم داد.
در ضمن، لطفاً در صورت یافتن اشکال یا درخواست ویژگی به ما اطلاع دهید: crbug.com/new .