0

我在每个单元格中都有UITableview一个AVPlayer实例。我的要求是仅在可见单元格中流式传输视频,因此我不希望在不可见单元格中出现任何播放器实例。在cellForRowAtIndexPath中调用 Play 方法。这是我删除 AVPlayer 的代码

- (void)tableView:(UITableView *)tableView didEndDisplayingCell: (UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath*)indexPath
 {
    if (![ _feedsTableView.indexPathsForVisibleRows containsObject:indexPath]) {
        NSLog(@"index of visible cell  %ld",(long)indexPath.row);
        LTHomeFeedCell * cell = (LTHomeFeedCell*)[_feedsTableView cellForRowAtIndexPath:indexPath ];
        [ cell.avMoviePlayer pause ];
        cell.avMoviePlayer = [ AVPlayer playerWithURL:[NSURL URLWithString:@""] ];
        cell.avMoviePlayer = nil;
  }

但是,我仍然听到来自隐形细胞的声音。当我移动到不同的屏幕时,我正在使用相同的代码暂停视频,但我仍然听到音频。我该如何解决?

4

1 回答 1

0

您也可以通过本地通知处理暂停功能,如下所示:

  • 当您开始播放视频时,为单元格中的本地通知添加观察者。
  • 在该通知的选择器中,编写代码以暂停播放器并删除通知
  • 之后在 didEndDisplayingCell 中,发布该通知以暂停该视频。
于 2015-07-31T14:30:35.713 回答