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:
Kaydırarak Cast çerçevesinin mini kumandanın düzenini yönetmesine izin verin mevcut görünüm denetleyicinize
GCKUICastContainerViewController
birGCKUIMiniMediaControlsViewController
simgesini tıklayın.Mini kumandayı aşağıdaki kodu kullanarak doğrudan mevcut görüntüleme denetleyicinize ekleyin:
-[createMiniMediaControlsViewController]
. oluşturmak içinGCKUIMiniMediaControlsViewController
kapsayıcı görünümü denetleyicisine alt görünüm olarak eklemelidir.
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.