Quindi so che AVPlayerItemDidPlayToEndTimeNotification
viene inviato quando un film "has played to its end time".Cosa fa scattare esattamente AVPlayerItemDidPlayToEndTimeNotification?
La mia domanda è: come fa il giocatore a sapere se un oggetto raggiunge la sua ora di fine? Stavo riproducendo un live stream generato da un generatore di terze parti. Mantiene aggiornato l'M3U8 e crea nuovi file TS, che lo streaming live dovrebbe fare. Ma a un certo punto il mio giocatore riceve uno AVPlayerItemDidPlayToEndTimeNotification
e quindi invoca i miei metodi di uscita e chiude. Tuttavia, il generatore di stream di terze parti continua a funzionare correttamente. Posso riavviare il lettore e guardare i flussi. Dal momento che l'elemento di gioco è un flusso dal vivo, playerItem.duration
non è un numero durata leggibile, che fa trovare l'ora di fine più simile a una magia nera per me ...
molto confuso su come fa il giocatore pensa che sia fine. La mia ipotesi è forse che il file TS fosse problematico e ha fatto credere al giocatore che l'intera esecuzione fosse finita? Ma se è così, il giocatore dovrebbe cambiare il suo stato per dire sth invece di giocare silenziosamente?
P.S. Ho anche provato diversi modi, come fare a meno della lista m3u8, o smettere di generarne di nuovi in modo che il giocatore possa giocare m3u8 corrente e giocare oltre gli ultimi ts, nulla ha reso la magia AVPlayerItemDidPlayToEndTimeNotification
succedere ....
I registrato la notifica come segue: [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playerItemDidReachEnd:) name:AVPlayerItemDidPlayToEndTimeNotification object:self.playerItem];
Sei sicuro che non è solo auto-aggancio in un nuovo flusso in uscita? – CodaFi
"Che cosa fa scattare esattamente AVPlayerItemDidPlayToEndTimeNotification?" - inserire un breakpoint in un metodo che è registrato per esso, eseguire in debuggger, attendere il punto di interruzione da colpire, 'backtrace',' frame 1', profitto. –
@CodaFi Grazie per aver risposto! Sì, sono sicuro, il giocatore smette di giocare e non legge nulla dal server da cui proviene l'm3u8. – Ooops