如何使用UICollectionview播放Facebook风格的视频

Har*_*ani 12 video objective-c ios avplayer swift

我正在尝试UICollectionview使用ZOWVideoPlayer在Cell中播放视频.视频播放效果很好,但目前我的收藏视频正在播放所有可见视频.我想只播放一个完全可见的视频.这意味着当前视频未通过滚动处理裁剪(像素不在屏幕外,但完全可见).

我还添加了代码来检查scrollview委托方法中的完整可见单元格,但随后我的collectionview卡住了1或2秒然后移动,所以请帮助我.

请先阅读问题,然后进行投票.

这是检查可见单元格的代码

- (void)checkVisibilityOfCell:(CustomCell *)cell inScrollView:(UIScrollView *)aScrollView {
    @try {
        CGRect cellRect = [aScrollView convertRect:cell.frame toView:aScrollView.superview];
        if (cell.videoPlayer) {
            if (CGRectContainsRect(aScrollView.frame, cellRect)){
                //Play Video
            }
            else{
                //Pause Video
            }
        }
    } @catch (NSException *exception) {

    } @finally {

    }
}
Run Code Online (Sandbox Code Playgroud)

Mah*_*rma 1

我怀疑你的方法被多次调用。因为您只是检查玩家是否存在。为什么不添加另一个对玩家状态的检查呢?所以如果玩家正在玩,就忽略它吧。

if (CGRectContainsRect(aScrollView.frame, cellRect) && !isPlaying) {
Run Code Online (Sandbox Code Playgroud)

isPlaying -> 您可以添加用于存储玩家当前状态的枚举

希望这是有道理的;)