Ios 滚动时如何停止UICollectionViewCell内的YTPlayerView中的视频播放?

Ios 滚动时如何停止UICollectionViewCell内的YTPlayerView中的视频播放?,ios,objective-c,youtube-api,ytplayerview,Ios,Objective C,Youtube Api,Ytplayerview,我正在使用YTPlayerView内部UICollectionView(水平滚动),屏幕上一次只能看到一个项目。我在自定义单元格中添加了一个UIView,并在Identity inspector中将类名更改为YTPlayerView 对于YTPlayerView,我已经启用了自动播放功能,而且播放效果很好。但是,当我滚动到下一个或上一个项目时,我想停止播放器。我尝试通过使用nsindepath获取自定义单元格对象来停止“didendisplayingcell”中的播放机。但是带有自定义单元格对象

我正在使用
YTPlayerView
内部
UICollectionView
(水平滚动),屏幕上一次只能看到一个项目。我在自定义单元格中添加了一个
UIView
,并在Identity inspector中将类名更改为
YTPlayerView

对于
YTPlayerView
,我已经启用了自动播放功能,而且播放效果很好。但是,当我滚动到下一个或上一个项目时,我想停止播放器。我尝试通过使用
nsindepath
获取自定义单元格对象来停止“didendisplayingcell”中的播放机。但是带有自定义单元格对象的实例在“didEndDisplayingCell”中返回(null)。所以我无法停止视频播放。滚动到下一个/上一个项目时,如何停止视频播放

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

编辑 我试图通过保存以前可见的单元格indexath来获取“cellForItemAtIndexPath”中的自定义视频单元格对象。我可以获取自定义单元格对象,但当我尝试获取
YTPlayerView
的实例时,它会返回
YTPlayerView
的新对象

有谁能给我推荐一下在
UICollectionView
中处理youtube视频的正确方法吗

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

这里不应该是空的。每次一个单元格消失时,您都应该得到这个信息,您应该检查隐藏的单元格的类型

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

- (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视频。

UICollectionViewCell
中,在
prepareforeuse
中,可以停止播放器吗?是否有自定义的
UICollectionViewCell
类?如果是,您可以覆盖
prepareforeuse
prepareforeuse
不被调用,因为我有3个不同的单元格1)图像2)文本3)Youtube视频。如果您将YouTube视频单元格分为子类,您是否可以建议调用任何其他选项@LarmeprepareForReuse是的,
prepareForReuse
如果我连续播放YouTube视频(自定义视频单元格),而没有任何文本或图像单元格,则会调用
YTPlayerView
如果下一个/prev单元格也显示youtube视频,则会自动停止上一个视频,否则不会停止播放@LeftEris我通过
[cell.youTubePlayerView pauseVideo]
停止了视频,而不是
[cell.youTubePlayerView pauseVideo]
youTubePlayerView
是自定义单元格中播放器视图的一个实例@左撇子是双向的。如果你在牢房里公开YTPlayerView,那就太好了!