首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在YTPlayerView内UICollectionViewCell内滚动停止视频播放?

如何在YTPlayerView内UICollectionViewCell内滚动停止视频播放?
EN

Stack Overflow用户
提问于 2016-05-17 09:36:13
回答 1查看 1.9K关注 0票数 4

我正在使用YTPlayerView on UICollectionView(水平滚动),每次屏幕上都可以看到一个项目。我在自定义单元格中添加了一个UIView,并在标识检查器中将类名更改为YTPlayerView

对于YTPlayerView,我启用了AutoPlay,它运行得很好。但是,当我滚动到下一个或上一个项目时,我想要停止该播放器。我尝试通过使用didEndDisplayingCell获取自定义单元格对象来阻止播放机进入“NSIndexPath”。但是带有自定义单元格对象的YTPlayerView实例在'didEndDisplayingCell‘中返回(null)。所以我无法停止播放视频。当滚动到下一个/ prev项目时,我如何停止播放视频?

我有3个不同的自定义UICollectionView单元来显示文本、图像和视频(YTPlayerView或AVPlayer)。

编辑I试图通过保存以前可见的单元格索引路径在“cellForItemAtIndexPath”中获取自定义的视频单元格对象。而且我能够获得自定义的单元对象,但是当我试图获取YTPlayerView的实例时,它将返回YTPlayerView的新对象。

有人能建议我如何正确地处理UICollectionView上的youtube视频吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-19 08:52:42

好的,

现在我已经理解了这个问题,但是当我尝试自我时,我在- (void)collectionView:(UICollectionView *)collectionView didEndDisplayingCell:(UICollectionViewCell *)cell forItemAtIndexPath:(NSIndexPath *)indexPath委托中得到了一个完全有效的单元格引用。

不应该是空的。每次单元格消失时,您都应该得到这个结果,在那里您应该检查隐藏的单元格的类型!

如果单元格是YouTube单元的类型,则只停止视频播放。以下是一个粗略的示例:

代码语言:javascript
复制
- (void)collectionView:(UICollectionView *)collectionView didEndDisplayingCell:(UICollectionViewCell *)cell forItemAtIndexPath:(NSIndexPath *)indexPath {
    if ([cell isKindOfClass:[YouTubeVideoCell class]]) {
        YouTubeVideoCell *youtubeCell = (YouTubeVideoCell*)cell;
        [youtubeCell stopVideo];
    }
}

其中YouTubeVideoCell应该是自定义的YTPlayerView单元格子类,而stopVideo应该是单元格的公共方法,在其中您可以停止YTPlayerView视频。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37272405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档