Google Cast ל-Chrome ב-Android

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

במהדורה האחרונה של Chrome ל-Android, אתרים יכולים להציג תוכן במכשירי Google Cast באמצעות Cast Web SDK. כלומר, עכשיו אפשר ליצור אפליקציות לשליחת Cast באמצעות Web SDK עם Chrome ב-Android או ב-iOS (או במחשב עם התוסף), וגם ליצור אפליקציות שמשתמשות ב-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>

מוסיפים פונקציית קריאה חוזרת (callback) כדי לטפל בזמינות ה-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 ולא באפליקציית Custom Receiver רשומה שהותאמה אישית, אתם יכולים ליצור 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;
}

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

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

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

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

אחרי שתתחילו סשן 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);
}


    // ...

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

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

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

התראה על הפסקת ההעברה.

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

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>

מכשירים חלופיים לשליחה ולקבלה

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

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

Presentation API, יחד עם Remote Playback API, הם חלק מהמאמצים של Second Screen Working Group לאפשר לדפי אינטרנט להשתמש במסכים משניים כדי להציג תוכן אינטרנט.

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

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

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

למידע נוסף