由于表格视图中可重复使用的单元格,Youtube播放器在滚出视图时丢失

时间:2018-04-27 23:52:01

标签: ios swift tableview swift4 ytplayerview

我正在构建一个像新闻源一样的Instagram。每个帖子都是一个spotify流媒体歌曲或Youtube视频在其自己的YTplayer视图中播放。如果我播放视频单元格然后滚动浏览源,即使您看不到它,视频也会继续播放。此时,如果我滚动到spotify帖子并点击播放,我希望视频停止播放。我无法做到这一点。我试图跟踪上次播放的#39;视频单元并停止YTplayer实例,但该点重用该单元并且不存在。所以我无法这样做。有没有人对我如何做到这一点有任何想法?

我的自定义tableview单元格类具有YTplayer视图,我只加载了一些带有YouTube视频ID的单元格,这些单元格在加载表格视图时成为Youtube视频单元格。

2 个答案:

答案 0 :(得分:0)

我认为你需要实施

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

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

}

答案 1 :(得分:0)

我解决了。在我的dequeueReusableCell之后,我检查单元格是否包含视频帖子。我使用我在帖子中设置的字符串标志来执行此操作。如果是,我将我的tableview控制器声明为其回放委托。从那里开始,如果我播放那个单元格并滚动到一个spotify单元并播放那个单元格,我使用player.stopVideo()来停止Youtube播放器。