Google Cast ל-Chrome ב-Android

דמיינו שאתם יכולים להשתמש באפליקציית אינטרנט מהטלפון כדי להציג מצגת במקרן של כנסים — או לשתף תמונות, לשחק במשחקים או לצפות בסרטונים על מסך טלוויזיה — באמצעות אפליקציית האינטרנט לנייד בתור שלט רחוק.

הגרסה האחרונה של Chrome ל-Android מאפשרת לאתרים להציג בפני מכשירי Google Cast באמצעות Cast Web SDK. פירוש הדבר שמעכשיו ניתן ליצור אפליקציות של שולחי Cast באמצעות Web SDK ב-Chrome ב-Android או ב-iOS (או במחשב שולחני עם התוסף), וכן ליצור אפליקציות שמשתמשות ב-SDK המקורי של Cast ל-Android ול-iOS. (בעבר, יישום שולח של Google Cast היה זקוק לתוסף Google Cast ל-Chrome, כך שב-Android ניתן היה ליצור אינטראקציה עם מכשירי Cast רק מאפליקציות מקוריות).

בהמשך ניתן למצוא מבוא קצר לבניית אפליקציה לשליחת הודעות Cast באמצעות Web SDK. ניתן למצוא מידע מקיף יותר במדריך לפיתוח אפליקציית שולח של Chrome.

כל הדפים שמשתמשים בהעברה חייבים לכלול את ספריית ההעברה:

<script
  type="text/javascript"
  src="https://www.gstatic.com/cv/js/sender/v1/cast_sender.js"
></script>

צריך להוסיף קריאה חוזרת (callback) לטיפול בזמינות של ה-API ולהפעלת ההעברה (cast) (חשוב להוסיף את ה-handler לפני שה-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);
}

אם אתה משתמש ביישום ברירת המחדל מקלט מדיה מסוננת ולא ביישום מותאם אישית רשום בעצמך, תוכל ליצור SessionRequest כמו זה:

var sessionRequest = new chrome.cast.SessionRequest(chrome.cast.media.
  DEFAULT_MEDIA_RECEIVER_APP_ID);

הקריאה החוזרת (callback) של receiverListener שלמעלה מתבצעת כשמכשיר אחד או יותר הופך לזמינים:

function receiverListener(e) {
  if (e === chrome.cast.ReceiverAvailability.AVAILABLE) {
    // update UI
  }
}

מפעילים העברה (cast) כשהמשתמש לוחץ על סמל ההעברה, בהתאם להנחיות בנושא חוויית המשתמש:

chrome.cast.requestSession(onRequestSessionSuccess,
    onRequestSessionError);

function onRequestSessionSuccess(e) {
  session = e;
}

למשתמש יוצג בורר מכשירים:

תיבת דו-שיח לבחירת מכשיר העברה.

תיבת הדו-שיח פרטי מסלול מופיעה כשהדף כבר מחובר ומתבצעת קריאה ל-requestSession():

תיבת דו-שיח עם פרטי מסלול ההעברה.

אחרי שיוצרים סשן של העברה, אפשר לטעון מדיה למכשיר ה-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);
}


    // ...

התראה על הפעלה/השהיה מוצגת כשהמדיה מופעלת:

העברת התראה על הפעלה/השהיה.

אם לא פועלת מדיה, בהודעה יש רק לחצן עצירה להפסקת ההעברה (cast):

התראה על עצירת העברה.

הקריאה החוזרת (callback) בsessionListener עבור chrome.cast.ApiConfig() (פירוט למעלה) מאפשרת לאפליקציה שלך להצטרף לסשן העברה קיים או לנהל אותו:

function sessionListener(e) {
  session = e;
  if (session.media.length !== 0) {
    onMediaDiscovered('onRequestSessionSuccess', session.media[0]);
  }
}

אם Chrome ב-Android מאפשר העברה (cast) של מדיה מהאתר שלכם, אבל אתם רוצים להשבית את התכונה הזו כך שממשק המשתמש המוגדר כברירת מחדל להעברה (cast) לא יפריע לפעילות שלכם, יש להשתמש במאפיין disableRemotePlayback, שזמין ב-Chrome 49 ואילך:

<video disableRemotePlayback src="..."></video>

מכשירים של שולח ומקבל Alt

המדריך ל-Cast Web SDK כולל קישורים לאפליקציות לדוגמה ומידע על תכונות העברה, כמו ניהול סשנים, טראקים של טקסט (לכתוביות) ועדכוני סטטוס.

נכון לעכשיו, אפשר להציג באפליקציית Chromecast רק באמצעות Cast Web SDK, אבל עדיין פועלים כדי לאפשר את השימוש ב-presentation API בלי Cast SDK (במחשבים וב-Android) כדי להציג דפי אינטרנט במכשיר CAST מבלי לבצע רישום ב-Google. להבדיל מ-Cast SDK של Chrome בלבד, שימוש ב-API הרגיל יאפשר לדף לעבוד עם סוכני משתמש אחרים ומכשירים אחרים שתומכים ב-API.

ה-API ל-presentation API ו-Remote Playback API הם חלק מקבוצת עבודה של מסך שני, שנועדה לאפשר לדפי אינטרנט להשתמש במסכים שניים כדי להציג תוכן מהאינטרנט.

ממשקי ה-API האלה מנצלים את מגוון המכשירים המחוברים לאינטרנט – כולל מסכים מחוברים שמופעל בהם סוכן משתמש – כדי לאפשר מגוון עשיר של אפליקציות עם מכשיר 'בקרה' ומכשיר 'תצוגה'.

נעדכן אותך לגבי התקדמות ההטמעה.

בינתיים, אפשר להודיע לנו אם מצאת באגים או אם יש לך בקשות להוספת תכונות: crbug.com/new.

למידע נוסף