Google Cast for Chrome على Android

تخيل أن بإمكانك استخدام أحد تطبيقات الويب من هاتفك لتقديم مجموعة شرائح إلى جهاز عرض المؤتمرات - أو مشاركة الصور أو تشغيل الألعاب أو مشاهدة مقاطع الفيديو على شاشة التلفزيون - باستخدام تطبيق ويب الجوّال كوحدة تحكم.

يتيح أحدث إصدار من Chrome على أجهزة Android للمواقع الإلكترونية تقديم المحتوى إلى أجهزة Google Cast باستخدام حزمة تطوير البرامج (SDK) لميزة Google Cast. وهذا يعني أنه يمكنك الآن إنشاء تطبيقات لمُرسِلي البث باستخدام "حزمة تطوير البرامج (SDK) للويب" في Chrome على نظام التشغيل Android أو iOS (أو على كمبيوتر مكتبي من خلال الإضافة)، فضلاً عن إنشاء تطبيقات تستخدم حزمة تطوير البرامج (SDK) الأصلية للبث على نظامَي التشغيل Android وiOS. (في السابق، كان تطبيق Google Cast يتطلب إضافة Google Cast Chrome، ولذلك على نظام التشغيل Android كان من الممكن التفاعل مع أجهزة البث من التطبيقات المحلية فقط).

في ما يلي مقدمة موجزة عن إنشاء تطبيق لمُرسِل البث باستخدام "حزمة تطوير البرامج (SDK) للويب". يتوفر المزيد من المعلومات الشاملة من دليل تطوير تطبيقات مُرسِل Chrome.

يجب أن تتضمّن كل الصفحات التي تستخدم تكنولوجيا Google Cast مكتبة Cast:

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

يمكنك إضافة استدعاء لمعالجة مدى توفّر واجهة برمجة التطبيقات وإعداد جلسة البث (احرص على إضافة المعالج قبل تحميل واجهة برمجة التطبيقات):

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);

يتم تنفيذ استدعاء receiverListener أعلاه عندما يتوفّر جهاز أو أكثر:

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

يمكنك بدء جلسة البث عندما ينقر المستخدم على رمز البث، وفقًا لما تفرضه إرشادات تجربة المستخدم:

chrome.cast.requestSession(onRequestSessionSuccess,
    onRequestSessionError);

function onRequestSessionSuccess(e) {
  session = e;
}

سيظهر للمستخدم أداة اختيار الجهاز:

مربّع حوار اختيار جهاز البث

يظهر مربع حوار تفاصيل المسار عندما تكون الصفحة متصلة مسبقًا وتستدعي requestSession():

مربّع حوار تفاصيل مسار البث

بعد الانتهاء من جلسة البث، يمكنك تحميل الوسائط لجهاز البث المحدّد وإضافة أداة معالجة الحدث لأحداث تشغيل الوسائط:

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() (انظر أعلاه) تمكِّن تطبيقك من الانضمام إلى جلسة بث حالية أو إدارتها:

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

إذا كان متصفّح Chrome على نظام التشغيل Android يسمح ببث الوسائط من موقعك الإلكتروني، ولكنك تريد إيقاف هذه الميزة حتى لا تتداخل واجهة مستخدم البث التلقائية مع واجهة المستخدم الخاصة بك، استخدِم السمة disableRemotePlayback المتاحة في الإصدار 49 من Chrome والإصدارات الأحدث:

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

أجهزة المرسِل البديل والمستلِم

ويتضمّن دليل حزمة تطوير البرامج (SDK) على الويب لبثّ المحتوى روابط لنماذج من التطبيقات ومعلومات عن ميزات البثّ، مثل إدارة الجلسات والمقاطع الصوتية النصية (للترجمة والشرح) وآخر الأخبار عن الحالة.

في الوقت الحالي، لا يمكنك مشاركة العرض إلا مع تطبيق جهاز الاستقبال الذي يستخدم تكنولوجيا Cast Web SDK، إلا أنّ العمل جارٍ لتفعيل استخدام واجهة برمجة تطبيقات العرض التقديمي بدون حزمة SDK (على أجهزة الكمبيوتر المكتبي وأجهزة Android) لعرض أي صفحة ويب على جهاز بث بدون التسجيل من خلال Google. على عكس حزمة تطوير البرامج (SDK) الخاصة بالبث في Chrome فقط، سيتيح استخدام واجهة برمجة التطبيقات العادية إمكانية عمل الصفحة مع وكلاء مستخدم آخرين والأجهزة الأخرى التي تتوافق مع واجهة برمجة التطبيقات.

تُعد واجهة برمجة تطبيقات العرض التقديمي، إلى جانب واجهة برمجة تطبيقات التشغيل عن بُعد، جزءًا من جهود مجموعة عمل الشاشة الثانية لتمكين صفحات الويب من استخدام الشاشات الثانية لعرض محتوى الويب.

وتستفيد واجهات برمجة التطبيقات هذه من مجموعة الأجهزة التي تتصل بالإنترنت، بما في ذلك الشاشات المتصلة التي تشغّل وكيل مستخدم، وذلك لتفعيل مجموعة وافية من التطبيقات باستخدام جهاز "التحكم" وجهاز "عرض".

سنطلِعك على آخر المستجدّات حول عملية التنفيذ.

في هذه الأثناء، يُرجى إبلاغنا بأيّ أخطاء أو إذا كان لديك طلبات ميزات: crbug.com/new.

التعرف على المزيد