Arka planda çalışması gereken bir AVQueuePlayer
tabanlı ses akışı oynatıcım var. Oyuncu, tüm listeyi bitirene kadar çalışmaya devam etmelidir. Ağ bağlantısı kötüye giderse, duraklatmak zorunda kalacak, ancak ağ bağlantısı geri geldiğinde otomatik olarak devam etmelidir. Bunun için Ağ etkin olduğunda (ve oynatılmaya hazır olduğunda) AVQueuePlayer/AVPlayerItem'den nasıl geri arama yapılır?
AVPlayerItem.status
AVPlayerItem.playbackLikelyToKeepUp
AVPlayer.currentItem
AVPlayer.status
AVPlayer.error
izliyorum O. Örneğin, ağ bağlantısı geçici hatadan kurtarırsa, currentAVPlayerItem.status
'un player'ma bildirilecek olan AVPlayerStatusItemReadyToPlay
olmasını bekliyorum ve bu noktada [AVQueuePlayer play]
yayınlayabilirim.
Bu mekanizma (mantık) bazı durumlarda çalışıyor gibi görünüyor, ancak çok sık sık çevrimdışı ortamda, AVPlayerItem.status
, AVQueuePlayer
öğesinin otomatik olarak atladığı görünüyor AVPlayerItemStatusFailed
olur. Sonuç olarak, sıra boş olacak ve AVPlayerItem
'dan geri arama yapılamaz.
AVPlayer
'daki bazı özelliklerin ağ bağlantısı bozulduğunda/kurtarıldıklarında değişeceğini umuyorum, ancak hiçbir şey değişmiyor gibi görünüyor (status
, error
vb.).
Açıkçası, Reachability
izleyebiliriz, ancak uygulama arka planda çalışırken çalışmaz.
Ağın ne zaman geri geldiğini ve AVQueuePlayer
'un bu durumda yeniden oynatılabileceğini nasıl bilebilirim?
Sadece bu alanda bir acemi olmak olabilir. Eğer herkes bana geçici ağ bağlantısı sorunları ile tamamen durmadan sürekli AVQueuePlayer
oynama deneyimine nasıl ulaştığı hakkında genel bir fikir verebilirse, bu harika bir yardım olur! devam etmek için yeterli bir tampon olduğunu bir kez
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(AVPlayerItemPlaybackStalledNotification:)
name:AVPlayerItemPlaybackStalledNotification object:playerItem];
, bunu sizin gibi sesler playbackLikelyToKeepUp
gönderilen bir bildirim almalısınız: öğenin tampon tamamını değil dosyasını oynatmaya bittiğinde
Aynı sorunu yaşıyor. Buna bir çözüm buldunuz mu? – adamsfamily