【发布时间】:2016-09-13 08:01:13
【问题描述】:
我在UICollectionView(水平滚动)中使用YTPlayerView,屏幕上一次可见一个项目。我在自定义单元格中添加了一个UIView,并在身份检查器中将类名更改为YTPlayerView。
对于YTPlayerView,我启用了自动播放,并且播放良好。但是,当我滚动到下一个或上一个项目时,我想停止播放器。我尝试通过使用NSIndexPath 获取自定义单元格对象来停止“didEndDisplayingCell”中的播放器。但是具有自定义单元格对象的YTPlayerView 实例在“didEndDisplayingCell”中返回(null)。所以我无法停止视频播放。滚动到下一个/上一个项目时如何停止视频播放?
我有 3 个不同的自定义 UICollectionView 单元格来显示文本、图像和视频(YTPlayerView 或 AVPlayer)。
编辑
我试图通过保存以前的可见单元格索引路径来获取“cellForItemAtIndexPath”中的自定义视频单元格对象。而且我能够获取自定义单元格对象,但是当我尝试获取YTPlayerView 的实例时,它正在返回YTPlayerView 的新对象。
谁能建议我在UICollectionView 中处理 youtube 视频的正确方法。
【问题讨论】:
-
在你的
UICollectionViewCell,在prepareForReuse,你能阻止播放器吗? -
你有自定义的
UICollectionViewCell类吗?如果是,您可以覆盖prepareForReuse。 -
prepareForReuse没有被调用,因为我有 3 个不同的单元格 1)图像 2)文本 3)Youtube 视频。你能建议任何其他选择吗@Larme -
如果您将 YouTube 视频单元格子类化,prepareForReuse 将会被调用
-
是的,如果我连续有 Youtube 视频(自定义视频单元格)没有任何文本或图像单元格,
prepareForReuse会被调用。YTPlayerView如果下一个/上一个单元格也显示 youtube 视频,则自动停止上一个视频,否则它不会停止播放。 @Lefteris
标签: ios objective-c youtube-api ytplayerview