如上图,是一个竖视频页面,可以上下滑动,当当前视频从屏幕中滑出的时候,需要将播放页面移除,并暂停播放
这里需要注意的是,偶尔的情况下,当前屏幕中的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;
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)