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ılanCastReceiverOptions
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'deCommandAndControlManager
), ve medya etkinliklerini tetikler. Oyuncular için yapılandırma (MPL'decast.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:
TextTracksManager
: Medya metin parçalarını yönetme.AudioTracksManager
- Ses parçalarını yönetin.QueueManager
: Sırayı yönetin.BreakManager
- reklamları yönetme.
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.