需求

如上图,是一个竖视频页面,可以上下滑动,当当前视频从屏幕中滑出的时候,需要将播放页面移除,并暂停播放
代码
这里需要注意的是,偶尔的情况下,当前屏幕中的cell也会执行这个方法,所以这里需要添加一个判断,判断cell是否在屏幕中
- (void)tableView:(UITableView *)tableView didEndDisplayingCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
/*
这里是修复快速滑动的时候展示上一个播放画面的问题
在cell 滚出屏幕的时候将播放画面
移除,因为不将播放画面移除的话,在快速滚动的情况下,
刚刚滚动到一个cell的时候,会有一瞬间展示的上一个视频的播放画面
*/
CGRect rect = [self.tableView convertRect:cell.frame toView:self.view];
/*
CGRectEqualToRect(rect, self.view.bounds) ,发现偶发的情况会有当前正在展示的cell也会执行这个方法
导致将要开始播放的时候停止播放,这里添加一个判断cell 是否在屏幕中
**/
if (self.currentIndex == indexPath.row && !CGRectEqualToRect(rect, self.view.bounds)) {
[self.player.currentPlayerManager.view removeFromSuperview];
[self.controlView pause];
self.currentIndex = -10;
}
}

该博客主要讨论了在竖视频页面上下滑动时如何正确处理播放页面的移除和暂停。当视频从屏幕中滑出,代码会移除播放视图并暂停播放。但遇到一个问题,即当前显示的cell也可能错误地执行此方法,导致视频播放异常。为解决这个问题,博主添加了一个判断,确保只有不在屏幕中的cell才会执行播放页面的移除操作。
1万+

被折叠的 条评论
为什么被折叠?



