Google Cast برای Chrome در Android

تصور کنید بتوانید از یک برنامه وب از تلفن خود برای ارائه یک صفحه اسلاید به یک پروژکتور کنفرانس استفاده کنید - یا تصاویر را به اشتراک بگذارید، بازی کنید یا ویدیوها را روی صفحه تلویزیون تماشا کنید - با استفاده از برنامه وب تلفن همراه به عنوان یک کنترلر.

آخرین نسخه 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;
}

یک انتخابگر دستگاه به کاربر ارائه می شود:

گفتگوی انتخاب دستگاه Cast.

گفتگوی جزئیات مسیر زمانی نشان داده می شود که صفحه از قبل متصل شده باشد و 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>

دستگاه های فرستنده و گیرنده Alt

راهنمای 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 .

اطلاعات بیشتر