Android'de Chrome için Google Cast

Telefonunuzdan bir web uygulamasını kullanarak bir konferans projektörüne slayt slaytı gösterebildiğinizi, mobil web uygulamasını kumanda olarak kullanıp resim paylaşabildiğinizi, oyun oynayabildiğinizi veya bir TV ekranında video izleyebileceğinizi hayal edin.

Android'deki Chrome'un en son sürümü, sitelerin Cast Web SDK'yı kullanarak Google Cast cihazlarına içerik sunmasına olanak tanır. Yani artık Android veya iOS'te Chrome ile Web SDK'sını kullanarak (ya da uzantılı masaüstünde) Cast gönderen uygulamaları oluşturabileceğiniz gibi, Android ve iOS için yerel Cast SDK'sını kullanan uygulamalar da oluşturabilirsiniz. (Daha önce, Google Cast gönderen uygulaması için Google Cast Chrome uzantısı gerekiyordu. Bu nedenle Android'de yalnızca yerel uygulamalardan yayın cihazlarıyla etkileşim yapılabiliyordu.)

Aşağıda, Web SDK'sını kullanarak Yayın gönderen bir uygulama oluşturmaya ilişkin kısa bir giriş verilmiştir. Daha kapsamlı bilgileri Chrome Gönderen Uygulama Geliştirme Kılavuzu'nda bulabilirsiniz.

Yayınlama özelliğini kullanan tüm sayfalar Yayın kitaplığını içermelidir:

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

API kullanılabilirliğini işlemek için bir geri çağırma ekleyin ve Yayın oturumunu başlatın (API yüklenmeden önce işleyiciyi eklediğinizden emin olun):

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

Kendinize ait, kayıtlı bir Özel Alıcı uygulaması değil de varsayılan Styled Media Receiver uygulamasını kullanıyorsanız aşağıdaki gibi bir SessionRequest oluşturabilirsiniz:

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

Yukarıdaki receiverListener geri çağırma işlemi, bir veya daha fazla cihaz kullanılabilir hale geldiğinde yürütülür:

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

Kullanıcı Deneyimi Yönergeleri'nde belirtildiği şekilde, kullanıcınız Google Cast simgesini tıkladığında bir Google Cast oturumu başlatın:

chrome.cast.requestSession(onRequestSessionSuccess,
    onRequestSessionError);

function onRequestSessionSuccess(e) {
  session = e;
}

Kullanıcıya bir cihaz seçici sunulur:

Yayın cihazı seçimi iletişim kutusu.

Sayfa zaten bağlanmışsa ve requestSession() çağrılıyorsa rota ayrıntıları iletişim kutusu gösterilir:

Yayın rotası ayrıntıları iletişim kutusu.

Yayın oturumunuz olduğunda, seçili Yayın cihazı için medya yükleyebilir ve medya oynatma etkinlikleri için bir dinleyici ekleyebilirsiniz:

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

Buradaki currentMedia değişkeni, oynatmayı kontrol etmek için kullanılabilecek bir chrome.cast.media.Media nesnesidir:

function playMedia() {
  currentMedia.play(null, success, error);
}


    // ...

Medya oynatılırken oynat/duraklat bildirimi gösterilir:

Oynat/duraklat bildirimi yayınlayın.

Medya oynatılmıyorsa bildirimde yalnızca yayını durdurma düğmesi vardır:

Yayın durdurma bildirimi.

chrome.cast.ApiConfig() için sessionListener geri çağırması (yukarıya bakın), uygulamanızın mevcut bir Yayın oturumuna katılmasına veya onu yönetmesine olanak tanır:

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

Android'deki Chrome, web sitenizden medya yayınlamaya izin veriyorsa ancak varsayılan yayınlama kullanıcı arayüzünün kendi arayüzünüzü etkilememesi için bu özelliği devre dışı bırakmak istiyorsanız Chrome 49 ve sonraki sürümlerde bulunan disableRemotePlayback özelliğini kullanın:

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

Alternatif gönderen ve alıcı cihazlar

Cast Web SDK'sı kılavuzunda örnek uygulamaların bağlantılarının yanı sıra oturum yönetimi, metin parçaları (altyazılar için) ve durum güncellemeleri gibi Cast özellikleri hakkında bilgiler yer alır.

Şu anda yalnızca Cast Web SDK'sını kullanarak bir Cast Alıcı Uygulaması'na sunum yapabilirsiniz, ancak Cast SDK'sı olmadan (masaüstü ve Android'de) kullanılacak Sunum API'sinin Google'a kaydolmadan bir Cast cihazına web sayfası sunabilmesini sağlamak için çalışmalarımız devam etmektedir. Yalnızca Chrome'daki Cast SDK'sından farklı olarak, standart API'nin kullanılması, sayfanın diğer kullanıcı aracılarıyla ve API'yi destekleyen cihazlarla çalışmasına olanak tanır.

Sunum API'si, Remote Playback API ile birlikte, web sayfalarının web içeriğini görüntülemek için ikinci ekranları kullanmasını sağlamaya yönelik İkinci Ekran Çalışma Grubu çalışmasının bir parçasıdır.

Bu API'ler, kullanıcı aracısı çalıştıran bağlı ekranlar da dahil olmak üzere çevrimiçi olan çeşitli cihazlardan bir "kontrol" cihazı ve "görüntülü" cihaz ile zengin bir uygulama çeşitliliği sağlamaktan yararlanır.

Uygulama süreciyle ilgili gelişmeleri size bildireceğiz.

Bu arada, hata bulursanız veya özellik istekleriniz olursa lütfen bize bildirin: crbug.com/new.

Daha fazla bilgi