iOS Gönderen Uygulaması'nı Cast SDK v2'den Cast Uygulama Çerçevesi'ne (CAF) taşıma

Aşağıdaki prosedür, iOS gönderen uygulamanızı Cast SDK'sından dönüştürmenizi sağlar temel alınan v2'den CAF Sender'a GCKCastContext singleton.

Giriş

  • CAF Sender, hâlâ Google Cast geliştirici web sitesi ve CocoaPods (ör. v2).
  • Politikalara uyma sorumluluğunu üstlenen yeni sınıflar kontrol listesini inceleyin.
  • CAF Sender, Cast kullanıcı deneyimi şartlarına uygun widget'lar sağlar; v2 herhangi bir kullanıcı arayüzü bileşeni sağlamamış ve hakkında daha fazla bilgi edinin.
  • CAF Sender tasarımı, Cast Android SDK'sı tasarımıyla tutarlıdır.
  • CAF Sender, v2 gibi bit kodunu destekler.
  • CAF'de altyazı, sürüm 2'ye benzer.

Bağımlılıklar

CAF Sender, iOS 8 ve sonraki sürümleri destekler.

Başlatma

CAF'de Cast çerçevesi için açık bir başlatma adımı gereklidir. Bu ilk adım olarak GCKCastContext tekli anahtar kelime, uygun bir GCKCastOptions uygulama kimliğini ve diğer global seçenekleri vardır. Bu işlem genellikle AppDelegate içinde yapılır. -[application:didFinishLaunchingWithOptions:] yöntemi:

GCKCastOptions *options = [[GCKCastOptions alloc]
    initWithReceiverApplicationID:applicationID];
[GCKCastContext setSharedInstanceWithOptions:options];

Bu adım v2'de gerekli değildi.

Cihaz bulma

CAF'de keşif süreci Google Ads tarafından arka plana gittiğinde arka planda çalışır. tıklayın. v2'deki GCKDeviceScanner ve GCKFilterCriteria sınıfları desteği sonlandırılmıştır ve kullanılmamalıdır.

Yayınla düğmesi ve Yayınla iletişim kutusu

CAF'de Yayınla düğmesi ve iletişim kutusu çerçeve tarafından sağlanır. Oyuncular düğmesi şu şekilde örneklendirilebilir ve gezinme çubuğuna eklenebilir:

GCKUICastButton *castButton =
    [[GCKUICastButton alloc] initWithFrame:CGRectMake(0, 0, 24, 24)];
castButton.tintColor = [UIColor whiteColor];
self.navigationItem.rightBarButtonItem =
    [[UIBarButtonItem alloc] initWithCustomView:castButton];

Yayınla düğmesi film şeridine de eklenebilir.

Bir kullanıcı düğmeye dokunduğunda, Yayınla iletişim kutusu otomatik olarak görüntülenir.

Cihaz kontrolü

CAF'de cihaz kontrolü büyük ölçüde çerçeve tarafından yönetilir. Gönderen uygulamanın cihaza bağlanma ve ilk olarak Web Alıcısı uygulaması. v2 sınıfı GCKDeviceManager kullanımdan kaldırılmıştır ve kullanmayın. Gönderen ve Web Alıcı arasındaki etkileşim artık bir "oturum". CAF GCKSessionManager oturum yaşam döngüsünü ele alır ve Kullanıcının hareketlerine yanıt olarak oturumları otomatik olarak başlatır ve durdurur: oturum Kullanıcı Yayın iletişim kutusunda bir Yayın cihazı seçtiğinde ve sonlandırıldığında başlatılır Kullanıcı "Yayını Durdur"a dokunduğunda düğmesini tıklayın veya uygulaması sonlandırılır. Gönderen uygulamaya oturum hakkında bildirim gönderilebilir yaşam döngüsü olaylarını bir GCKSessionManagerListener şununla: GCKSessionManager. İlgili içeriği oluşturmak için kullanılan GCKSessionManagerListener protokolü, tüm oturum yaşam döngüsü etkinlikleri için geri çağırma yöntemlerini tanımlar.

İlgili içeriği oluşturmak için kullanılan GCKCastSession sınıfı, yayın cihazı içeren bir oturumu temsil eder. Sınıf ses kapatma durumunu kontrol eden yöntemler içerir. aşağıdaki yöntemler kullanılarak v2'de GCKDeviceManager.

v2'de GCKDeviceManagerDelegate protokol tarafından sağlanan değişiklik bildirimleri ses düzeyi, sesi kapatma durumu, bekleme durumu vb. cihaz durumuna ayarlar. CAF'de ses düzeyi/sesi durumu değişikliği bildirimleri geri arama aracılığıyla gönderilir sırasındaki GCKSessionManagerListener protokolü; bu dinleyiciler de GCKSessionManager. Kalan tüm cihaz durumu bildirimleri GCKCastDeviceStatusListener protokolü; bu dinleyiciler de GCKCastSession.

Yeniden bağlanma mantığı

CAF, v2'de olduğu gibi geçici kablosuz sinyal kaybı veya diğer ağ hatalarından dolayı kaybedilir. Bu artık pek çok farklı görev bulunur. bir oturum "askıya alınmış" bağlantı koptu ve tekrar "bağlı" durumuna geçecek eyalet Bağlantı yeniden kurulur. Bu çerçeve, yeniden pazarlamayla Bu işlemin bir parçası olarak tüm Yayın kanallarını yeniden bağlamanız gerekir.

Ayrıca, CAF'ye otomatik oturum devam ettirme özelliği de eklenir. Gönderen Uygulama arka plana gönderildiğinde veya sonlandırılırsa (hızlıca kaydırarak veya kilitlenmeden dolayı değişse bile) Cast oturumu devam ederken çerçeve, gönderen uygulama Ön planda veya yeniden başlatıldığında; bu işlem, GCKSessionManager Bu kullanıcı, kayıtlı tüm cihazlarda uygun geri çağırmaları GCKSessionManagerListener sağlar.

Özel kanal kaydı

v2'de, özel kanallar ( GCKCastChannel alt sınıf veya a GCKGenericChannel ve yetki verilen kullanıcılar) GCKDeviceManager. CAF'de özel kanallar bunun yerine GCKCastSession kullanır. Kayıt işlemi GCKSessionManagerListener -[sessionManager:didStartCastSession:] geri çağırma yöntemini kullanın. Medya uygulamalarında, verilerin her zaman açık bir şekilde kaydettirmek GCKMediaControlChannel; daha ayrıntılı bilgi için aşağıdaki bölüme bakın.

Medya kontrolü

v2 sınıfı GCKMediaControlChannel desteği sonlandırılmıştır ve kullanılmamalıdır. CAF'de ise yerini yeni GCKRemoteMediaClient sınıfını kullanabilirsiniz. Bu nesneyi açıkça başlatmanız veya kaydetmeniz gerekmez. "the" çerçeve, nesneyi otomatik olarak örneklendirir ve temeldeki Web Alıcı uygulaması bağlanıyorsa oturum başlangıç zamanında medya kanalı etiketi de medya ad alanını destekler.

İlgili içeriği oluşturmak için kullanılan GCKRemoteMediaClient şununla erişilebilir: -[remoteMediaClient] öğesinin özelliği GCKCastSession nesnesini tanımlayın.

v2'de, GCKMediaControlChannel sayısal bir istek kimliği ve GCKMediaControlChannelDelegate istek tamamlama hakkında bildirim gönderirken veya başarısız olur.

CAF'de, yayınlanan tüm medya talepleri GCKRemoteMediaClient şunu döndürür: GCKRequest nesne; bu nesne ilişkilendirilmiş bir GCKRequestDelegate protokolü Bu, talebin ilerlemesini ve nihai sonucunu izlemek için kullanılabilir.

v2 GCKMediaControlChannel; Web Alıcısı'nda medya oynatıcı durumunda yapılan değişikliklerle ilgili bildirim gönderir ile GCKMediaControlChannelDelegate. CAF'de ise GCKRemoteMediaClient GCKRemoteMediaClientListener protokolü. GCKRemoteMediaClient; birden fazla gönderen bileşeninin oturumla ilişkilendirilen tek bir GCKRemoteMediaClient örneği.

Sürüm 2'de, gönderen uygulamanın, kullanıcıyı Google'a ait olmayan arayüzü, Web Alıcısı'ndaki medya oynatıcı durumuyla senkronize edilmiştir. CAF'de ise GCKUIMediaController bu sorumluluğun çoğunu üstlenir. bkz. codelab eğiticisi dokümanlarına göz atabilirsiniz.

Tanıtım yer paylaşımı

V2, tanıtım amaçlı yer paylaşımı kullanıcı arayüzü.

CAF ekleme sınıfı GCKCastContext bir yöntemle -[presentCastInstructionsViewControllerOnce] bir gönderen uygulamasının, ilk gösterildiğinde Yayınla düğmesini vurgulamak için kullanabileceği değer teslim eder.

Mini kumanda

v2'de sıfırdan mini kumanda kullanmanız gerekir. gönderen uygulaması.

CAF'de bu çerçeve bir kontrol çubuğu sağlar. GCKUIMiniMediaControlsViewController Bunlara kalıcı olarak göstermek istediğiniz sahnelere kontrol eder. Mini kumandayı gönderen uygulamasına iki şekilde ekleyebilirsiniz:

Genişletilmiş denetleyici

v2'de, sıfırdan yeni bir genişletilmiş denetleyici uygulamanız gerekir. gönderen uygulaması.

CAF reklamları GCKUIMediaController Genişletilmiş denetleyiciyi daha kolay bir şekilde uygulamak için kullanabilirsiniz.

CAF, önceden oluşturulmuş genişletilmiş bir denetleyici widget'ı ekler GCKUIExpandedMediaControlsViewController veya uygulamanıza eklemeniz yeterlidir. Artık özel bir genişletilmiş GCKUIMediaController kullanıyor.

Hata ayıklama günlük kaydı

İlgili içeriği oluşturmak için kullanılan GCKLogger ve GCKLoggerDelegate v2'deki sınıflar, bazı değişiklikler ve geliştirmelerle CAF'ye aktarılmıştır.

İlgili içeriği oluşturmak için kullanılan GCKLoggerDelegate -[logFromFunction:message:] yöntemi amacıyla kullanımdan kaldırılmıştır -[logMessage:fromFunction:].

Çerçeve günlük mesajları artık uygun bir GCKLoggerFilter atamadan önce -[filter] özelliği GCKLogger single'ı ile başlayabilirsiniz.

Örnek uygulamalar

Öneriler için codelabs ve CAF için yazılan örnek uygulamalar.