/ / Perdre le lecteur Youtube lorsqu'il défile en raison de cellules réutilisables dans la vue tableau - ios, swift, tableview, swift4, ytplayerview

Perdre le lecteur Youtube lorsqu'il défile de la vue à cause des cellules réutilisables de la vue tableau - ios, swift, tableview, swift4, ytplayerview

Je construis un Instagram comme un fil de nouvelles. Chaque publication est soit une chanson en streaming Spotify, soit une vidéo Youtube jouée dans sa propre vue YTplayer. Si je lis une cellule vidéo et que je fais ensuite défiler le fil, la vidéo continue de jouer même si vous ne pouvez pas la voir. À ce stade, si je sélectionne une publication Spotify et clique sur Lecture, je souhaite que la vidéo cesse de jouer. Je ne suis pas capable de faire ça. J'ai essayé de garder une trace de la dernière cellule vidéo lue et d'arrêter l'instance de YTplayer, mais la cellule est réutilisée à ce stade et n'existe pas. Je ne peux donc pas le faire de cette façon. Est-ce que quelqu'un a des idées sur la façon dont je peux faire cela?

Ma classe de cellules tableview personnalisée a la vue YTplayer, je ne charge que certaines cellules avec les identifiants de vidéo youtube, qui deviennent les cellules vidéo Youtube lorsque la vue de tableau est chargée.

Réponses:

0 pour la réponse № 1

Je pense que vous devez mettre en œuvre

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

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

}

0 pour la réponse № 2

Je l'ai résolu. Juste après mon dequeueReusableCell, je vérifie si la cellule contient une publication vidéo. J'utilise un indicateur de chaîne que j'ai défini dans l'article pour le faire. Si tel est le cas, je déclare mon contrôleur tableview en tant que son délégué de lecture. À partir de là, si je joue cette cellule et que je fais défiler jusqu'à une cellule Spotify et que je joue celle-ci, j'utilise player.stopVideo () pour arrêter le lecteur Youtube.