Ich habe einen AVQueuePlayer
basierten Audio-Streaming-Player, der im Hintergrund ausgeführt werden muss. Der Player muss weiterlaufen, bis die Wiedergabe der gesamten Liste abgeschlossen ist. Natürlich muss es angehalten werden, wenn die Netzwerkverbindung schlecht wird, aber es sollte automatisch fortgesetzt werden, wenn die Netzwerkverbindung zurückkommt.Wie erhalte ich einen Rückruf von AVQueuePlayer/AVPlayerItem, wenn das Netzwerk aktiv wird (und bereit ist zu spielen)?
Hierzu Ich Überwachung
AVPlayerItem.status
AVPlayerItem.playbackLikelyToKeepUp
AVPlayer.currentItem
AVPlayer.status
AVPlayer.error
KV mit O. Zum Beispiel, wenn die Netzwerkverbindung von einem temporären Fehler erholt, erwarte ich currentAVPlayerItem.status
wird AVPlayerStatusItemReadyToPlay
, die an meinen Player gemeldet werden und ich kann [AVQueuePlayer play]
an diesem Punkt ausgeben.
Dieser Mechanismus (Logik) scheint in einigen Fällen zu funktionieren, aber in der Offline-Umgebung wird AVPlayerItem.status
oft zu AVPlayerItemStatusFailed
, welches Element AVQueuePlayer
automatisch zu überspringen scheint. Als Ergebnis wird die Warteschlange leer und es kann kein Rückruf von AVPlayerItem
empfangen werden.
Ich hatte gehofft, dass einige Immobilien in AVPlayer
ändern wird, wenn die Netzwerkverbindung schlecht geht/erholt sich, aber nichts zu ändern scheint (status
, error
usw.).
Natürlich kann ich Reachability
überwachen, aber das funktioniert nicht, wenn die App im Hintergrund ausgeführt wird.
Wie kann ich wissen, wann das Netzwerk wieder hochfährt und AVQueuePlayer
in dieser Situation wieder spielbar ist?
Ich bin vielleicht gerade ein Anfänger in diesem Bereich. Wenn irgendjemand mir eine allgemeine Vorstellung davon geben kann, wie er/sie kontinuierliche AVQueuePlayer
Spielerfahrung erreicht, ohne durch vorübergehende Probleme mit der Netzwerkverbindung komplett gestoppt zu werden, wäre das eine großartige Hilfe!
Mit dem gleichen Problem. Haben Sie eine Lösung gefunden? – adamsfamily