我陷入了一个大问题。 我有一个tableview,其中有videoplayer - AVPlayer 我有10个单元格,每个都播放视频。但问题是,当我 滚动tableview播放器重新初始化和视频播放 start。我想阻止这种重新初始化并播放像twitter这样的视频 当我们离开的时候玩哪个代码应该尝试?我尝试了多个代码,但没有成功
Code is here
if (Arr_avPlayer.count > indexPath.row){
Cell_TVC * cell = (Cell_TVC *)[Arr_avPlayer
objectAtIndex:indexPath.row];
return cell;
}
// Cell_TVC *cell = (Cell_TVC *)[tableView
dequeueReusableCellWithIdentifier:@"Cell_TVC"
forIndexPath:indexPath];
**Cell_TVC *cell = [[Cell_TVC alloc] init];**
// Cell_TVC *cell = [tableView
dequeueReusableCellWithIdentifier:@"Cell_TVC"];
// if (!cell) {
// cell = [[Cell_TVC
alloc]initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:@"Cell_TVC"];
//
// }
AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:[NSURL
fileURLWithPath:[self filepath:[myIntegers
objectAtIndex:indexPath.row]]] options:nil];
cell.avPlayerItem = [[AVPlayerItem alloc] initWithAsset:asset];
cell.avPlayer = [[AVPlayer alloc]
initWithPlayerItem:cell.avPlayerItem];
cell.avPlayerLayer = [[AVPlayerLayer alloc] init];
cell.avPlayerLayer = [AVPlayerLayer
playerLayerWithPlayer:cell.avPlayer];
cell.lblTime.text = @"0.0";
CGRect contentViewFrame = cell.contentView.frame;
contentViewFrame.origin.x = 0;
contentViewFrame.origin.y = 25;
contentViewFrame.size.width = APP_width;
contentViewFrame.size.height = APP_width * 0.55;
cell.contentView.frame = contentViewFrame;
cell.contentView.backgroundColor = [UIColor redColor];
UILabel *lbl = [[UILabel
alloc]initWithFrame:CGRectMake((cell.contentView.frame.size.width / 2
) - 100, contentViewFrame.size.height + 10, 200, 100)];
//lbl.text = [NSString stringWithFormat:@"%02f:%02f", dMinutes11,
dSeconds11];
lbl.tag = indexPath.row;
[cell.avPlayerLayer setFrame:cell.contentView.frame];
[cell.contentView.layer addSublayer:cell.avPlayerLayer];
[Arr_avPlayer insertObject:cell atIndex:indexPath.row];
[cell.contentView addSubview:lbl];
if i write the cell like below
Cell_TVC *cell = [[Cell_TVC alloc] init];
i am not able to acess the property of cell and when i use like
below
if (!cell)
{
cell = [[Cell_TVC
alloc]initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:@"Cell_TVC"];
}
播放器索引更改和视频获取更改其索引 如何解决这个问题?
答案 0 :(得分:0)
如果您正在使用UItableview,其行为明显。 UItableview不要将所有单元格保留在内存中。当单元格从屏幕上消失时,tableview将其删除并在向下/向上滚动时再次添加(当新单元格出现在屏幕上时)。 您无法更改UItableview的此行为。
有可用的丑陋解决方案:哪个是将您的tableview调整为height = HeightOfCell * numberOfCell.
,但不建议这样做。因为这可能会造成记忆问题。
更好的解决方案是跟踪寻求时间。您可以使用didEndDisplayingCell存储Player中当前搜索时间的值,该值将删除。当再次出现该索引路径的单元格(cellforrow)时,您可以搜索玩家存储的值。