Web Buyer'a taşı

Bu kılavuzda bir Yayın Alıcısı v2 uygulamasının en yeni Web sürümüne nasıl taşınacağı açıklanmaktadır. Alıcı uygulaması.

Web Receiver v3 olarak da bilinen yeni Cast Application Framework (CAF) SDK'sı Alıcı v2 SDK'sından önemli bir yükseltme. Web Buyer SDK'sı, medya Web Alıcı uygulamaları geliştirmek için kolay, kolaylaştırılmış SDK.

Web Buyer, yeni CAF göndereniyle daha tutarlı bir API sağlar API'ler. Bir oynatıcının (MPL ve Shaka) tam entegrasyonu ve Cast medyası ve Google Asistan için uygulama ve destek sesli komutlar. CAF SDK'sı, stili kolayca ayarlanabilen varsayılan bir kullanıcı arayüzü sunar. kullanıcı arayüzü uygulamasını basitleştirmek için CSS ve bir veri bağlama hizmeti kullanarak yapabilirsiniz.

Neden göç?

Bir Alıcı v2 uygulamasını Web Alıcısı'na taşıyarak, satın alma işlemi yapan birçok e-postadan kurtularak oynamaya odaklanabilirsiniz iş mantığı oluşturmalarına yardımcı olur.

CAF, daha geniş bir müzik yelpazesini desteklemek için MPL ve Shaka çalarları sorunsuz bir şekilde entegre eder HTTP Canlı Akışı (TS ve CMAF), MPEG-DASH, Smooth gibi içerik türleri Medya Öğesi kaynak mülkü (MP3, MP4, Icecast vb.). Tam liste için Google Cast için desteklenen medya bölümüne bakın. CAF şu anda kullanıcı tarafından sağlanan oynatıcıları desteklememektedir.

CAF'ye geçiş yaptığınızda Google Asistan'la sesli kontrol için destek eklendi. Yeni Google Asistan sesli komutları, (CAF) kullanıyor.

"Parçaları dile göre değiştir" gibi yeni medya komutlarını desteklemenin yanı sıra, ve "oynatma hızını değiştir" gibi önemli metrikleri vardır. CAF ayrıca, daha iyi sıraya alınmış, yerleşik reklamlar ve daha iyi canlı destek alabilirsiniz.

Neler değişti?

Web Receiver API, Google Etiket Yöneticisi tarafından belirlenen CAF gönderenleri: Android ve iOS ve v2'den oldukça farklıdır.

Web Alıcı yeni bir ad alanı kullanıyor cast.framework yerine cast.receiver ad alanı kullanır. Çoğu v2 tarafından kullanılan veri nesneleri CAF'de aynıdır ve "the" cast.framework.messages ad alanında yer alır (çoğunlukla cast.receiver.media altındaydı).

Aşağıdaki v2 hizmetlerinin yerini ilgili CAF hizmetleri alır:

  • CastReceiverManager sınıfı şu şekilde değiştirildi: CastReceiverContext Bu, yayın oturumunu, gönderenleri, özel ileti gönderenleri mesajları ve global sistem olaylarını kapsar. İlgili içeriği oluşturmak için kullanılan CastReceiverOptions genel uygulama seçeneklerini (sıra, alıcı gibi) sağlamak için kullanılabilir. sürümünü, oynatma yapılandırmasını vb.) bağlamayı unutmayın.
  • MediaManager sınıfı şu şekilde değiştirildi: PlayerManager Bu, CastReceiverContext Teklili işletme tarafından yönetilir ve medya oturumunu, medya isteklerini, Asistan ses istekleri (v2'de CommandAndControlManager), ve medya etkinliklerini tetikler. Oyuncular için yapılandırma (MPL'de cast.player.api.Host) sağlayan: PlaybackConfig, Genel olarak veya yükleme isteği başına sağlanabilir.

PlayerManager, yeni alt yönetici sınıflarını da gösterir:

const context = cast.framework.CastReceiverContext.getInstance();
const playerManager = context.getPlayerManager();

// Set global options.
const options = new cast.framework.CastReceiverOptions();
options.versionCode = DEVELOPERS_APP_VERSION;

context.start(options);

Alıcı iş mantığı

Alıcı v2 açığa çıkan etkinlik işleyicileri (ör. CastReceiverManager.onReady veya MediaManager.onLoad) ekleyebilirsiniz. CAF'de etkinlik işleyiciler etkinlik işleyiciler tarafından değiştirildi (CastReceiverContext.addEventListener) ve mesaj önleyiciler (PlayerManager.setMessageInterceptor). Web Alıcısı, bir etkinlik için birden çok etkinlik işleyiciye sahip olabilir (işleyici etkilemez.) ve her mesaj için bir önleyici gösterir. Önleyici isteği güncelleyebilir veya işleyebilir (değiştirilmiş bir isteği döndürebilir veya mesajı veya hata mesajı) eklenebilir ve bir söz döndüren eş zamansız bir işleyici olabilir.

En yaygın olarak yük isteği önleyicisi eklenir mantık yürütmenizi sağlar. Bir gönderenden gelen yükleme istekleri için müdahale aracı, içerik kimliğini içerik URL'sine dönüştürebilir. Yük önleyici Ayrıca, açık bir müdahaleci yoksa ön yükleme ve önbellek istekleri için de çağrılır önceden yükleme veya önbellek için sağlanmıştı.

playerManager.setMessageInterceptor(
    cast.framework.messages.MessageType.LOAD,
    request => {
      // Resolve entity to content id
      if (request.media.entity && !request.media.contentId) {
        return getMediaByEntity(request.media.entity).then(
            media => {
              request.media.contentId = media.url;
              return request;
            });
      }
      return request;
    });

v2 özelleştirilmiş medya durum işleyicisi de bir mesajla değiştirilir. medya durum mesajı için kesici. Şunu yapmak istemeyen Web Alıcı uygulamaları: medya URL'sinin medya durumunda gösterilmesi bir URL çözümleyici sağlayabilir (PlayerManager.setMediaUrlResolver), Bu, yükleme isteği için medya URL'sini sağlar. Bu URL CAF tarafından kullanılıyor ve medya durumunda sağlanmaz.

playerManager.setMessageInterceptor(
    cast.framework.messages.MessageType.MEDIA_STATUS,
    status => {
      // Disable seek.
      status.supportedMediaCommands &=
          ~cast.framework.messages.Command.SEEK
      return status;
    });

Etkinlikler

Web Buyerr, hem CastReceiverContext ve PlayerManager. Web Alıcı uygulamalarının herhangi bir etkinlikte birden fazla dinleyicisi olabilir ve tek bir dinleyiciye birden fazla etkinlik sağlayabilir. (Bkz. cast.framework.events.category ekleyebilirsiniz.)

Etkinlikler, kullanıcı isteklerini, oynatma ilerleme durumunu, oynatıcı işlemeyi ve alt düzey medya öğesi etkinliği (CAF, medya öğesinin kendisini göstermez).

Web Alıcı uygulaması, üzerinde işlem yapmaları için etkinlik işleyiciler ekleyebilir (örneğin, yükleme tamamlandığında tanımı izler) veya analiz için kullanılır.

// Log all media commands
playerManager.addEventListener(
    cast.framework.events.category.REQUEST,
    event => logEvent(event.type));

Özel mesaj yolu

CAF, API'de mesaj yolunu göstermez, bunun yerine CastReceiverContext.addCustomMessageListener özel bir ad alanı için bir mesaj işleyici (ad alanı başına yalnızca bir) ekleyebilir ve CastReceiverContext.sendCustomMessage göndermeniz gerekir. Tüm ad alanlarının başlatmadan önce (yani CastReceiverContext.start) tıklayın. Ad alanları, veya bir başlangıç seçeneği olarak sağlanabilir. CastReceiverOptions.customNamespaces.

const options = new cast.framework.CastReceiverOptions();
options.customNamespaces = {
    CUSTOM_NS: cast.framework.system.MessageType.JSON
};
context.start(options);

context.sendCustomMessage(CUSTOM_NS, {
  type: 'status'
  message: 'Playing'
});

Varsayılan kullanıcı arayüzü

CAF, bir oynatma ilerleme çubuğu gösteren varsayılan bir Web Alıcı kullanıcı arayüzü sağlar. medya meta verilerini belirtebilirsiniz. Varsayılan kullanıcı arayüzü özel öğe olarak sağlanır (<cast-media-player>) oluşturabilirsiniz.

<style>
   cast-media-player { --splash-image: url("splash.png"); }
</style>
<cast-media-player></cast-media-player>

Bir Web Receiver uygulaması, daha fazla özelleştirme için kendi kullanıcı arayüzünü uygulayabilir. İlgili içeriği oluşturmak için kullanılan Web Alıcısı, cast.framework.ui.PlayerDataBinder sınıfını kullanır.