/ / Perdere il lettore Youtube quando scorre fuori dalla vista a causa delle celle riutilizzabili nella vista tabella - iOS, swift, tableview, swift4, ytplayerview

Perdi il player di YouTube quando scorre fuori vista a causa delle celle riutilizzabili nella vista tabella - ios, swift, tableview, swift4, ytplayerview

Sto costruendo un instagram come feed di notizie. Ogni post è una canzone in streaming di Spotify o un video di Youtube che viene riprodotto nella sua visualizzazione YTplayer. Se riproduco una cella video e poi scorro il feed, il video continua a essere riprodotto anche se non riesci a vederlo. A questo punto, se scorro fino a un post di Spotify e premo play, voglio che il video interrompa la riproduzione. Non sono in grado di farlo. Ho provato a tenere traccia dell'ultima cella video riprodotta e a interrompere l'istanza di YTplayer, ma la cella viene riutilizzata da quel punto e non esiste. Quindi non posso farlo in quel modo. Qualcuno ha qualche idea su come posso farlo?

La mia classe di celle Custom tableview ha la vista YTplayer, carico solo alcune delle celle con ID video di YouTube, che diventano le celle video di Youtube quando viene caricata la vista tabella.

risposte:

0 per risposta № 1

Penso che tu debba implementare

func tableView(_ tableView: UITableView,
didEndDisplaying cell: UITableViewCell,
forRowAt indexPath: IndexPath) {

// access the playing video of the cell and stop it

}

0 per risposta № 2

L'ho risolto. Subito dopo il mio dequeueReusableCell controllo se la cella contiene un post video. Per fare questo uso un flag di stringa che ho impostato nel post. In tal caso, dichiaro il mio controller di tableview come delegato della riproduzione. Da lì in poi, se gioco quella cella e scorro fino a una cella spotify e gioco quella, uso player.stopVideo () per fermare il lettore Youtube.