2016-04-04 12 views
2

Uygulamamda Tüp videoları oynatıyor ve bir videonun ne zaman duraklatıldığını veya bittiğini saptamaya çalışıyorum? .m dosyasında kYTPlayerState işlevini buldum, ancak dönüştürme işleminde sorun var. Burada .... bende neSwift kullanarak YTPlayerState.Ended nasıl tespit edilir?

func playerView(playerView: YTPlayerView!, didChangeToState state: YTPlayerState) 
{ 
    switch (state) { 
    case YTPlayerState.Playing: 
     print("Started playback"); 
     break; 
    case YTPlayerState.Paused: 
     print("Paused playback"); 
     break; 
    case YTPlayerState.Ended: 
     print("Ended playback"); 
     break; 
    default: 
     break; 
    } 
} 

ve .....

if playerView(player , didChangeToState: YTPlayerState.Ended) 
    { 
     /// Do Something.... 
    } 

olduğunu .... Ben viewDidLoad() yerleştirdiğiniz. Ayrıca Type "()" does not conform to protocol "Boolean Type" diyor ki benim ifademde hatayı geri alıyorum. Bunu nasıl düzeltebileceğinizi biliyorsanız veya bir şeyleri dışarı çıkarırsam lütfen yardım edin.

Ben @IBOutlet var player: YTPlayerView!

+0

Hey Charles cevabımı size yardımcı oldu mu? Başka sorularınız varsa lütfen bize bildirin. – JAL

+0

@JAL Evet, Harika çalıştı. Sanırım, diğer olaylarla/izleme protokolleriyle yaptığım için viewWillLoad'daki "if state state" ifadesini karıştırdım ve kullanmaya çalıştım. –

+0

Harika, bunu duyduğuma sevindim! Cevabımı diğer kullanıcılara aynı sorunun cevabını vermek için kabul edildigimi kabul ettim. Başka sorularınız varsa, burada veya başka bir soruyla beni takip etmekte tereddüt etmeyin. Mutlu kodlar! – JAL

cevap

1

playerView:didChangeToState ile bu görünümde oynatıcıyı başlatılıyor olduğum bir temsilci yöntemi, bir geri arama olduğunu. Doğrudan ikinci kod bloğunuzda olduğu gibi çağırmamalısınız. Görüntü denetleyicinize YTPlayerViewDelegate'u viewDidLoad numaralı telefondan (player.delegate = self) playerView:didChangeToState olarak ayarladıysanız, oynatıcı durumu değiştiğinde sizin için otomatik olarak çağrılmalıdır. Sadece durum değişikliği yöntemini uyguladığınızdan emin olun.

func playerView(playerView: YTPlayerView!, didChangeToState state: YTPlayerState) 
{ 
    case YTPlayerState.Ended: 
     // handle ended state 
     break; 
    default: 
     break; 
    } 
} 
+0

Merhaba @JAL, Aynı düşünceyi kullandım ama YTPlayerState.unstarted ve YTPlayerState.queued işlevlerini eklediğimde onların bildirimleri ele alınmıyor. Bunun hakkında bir fikrin var mı? –

İlgili konular