无法阻止AVPlayer流式传输

时间:2015-07-31 11:55:18

标签: ios objective-c avplayer avplayerlayer avplayerview

我在每个单元格中都有UITableviewAVPlayer个实例。我的要求是仅在可见单元格中流式传输视频,因此我不希望在不可见单元格中有任何播放器实例。 Play方法在 cellForRowAtIndexPath 中调用。  这是我删除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;
  }

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

1 个答案:

答案 0 :(得分:0)

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

  • 开始播放视频时,在单元格中为本地通知添加观察者。
  • 在该通知的选择器中,编写代码以暂停播放器并删除通知
  • 在didEndDisplayingCell之后,发布该通知以暂停该视频。