0

すべてのセルにインスタンスがUITableviewあります。AVPlayer私の要件は、目に見えるセルでのみビデオをストリーミングすることです。そのため、目に見えないセルにプレーヤー インスタンスは必要ありません。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;
  }

しかし、まだ見えない細胞からの音声が聞こえます。この同じコードを使用して、別の画面に移動したときにビデオを一時停止していますが、音声はまだ聞こえます。これを修正するにはどうすればよいですか?

4

1 に答える 1

0

次のように、ローカル通知を介して一時停止機能を処理することもできます。

  • ビデオの再生を開始したときに、セルにローカル通知用のオブザーバーを追加します。
  • そして、その通知のセレクターで、プレーヤーを一時停止して通知を削除するコードを記述します
  • その後、didEndDisplayingCell で、その通知を投稿してその動画を一時停止します。
于 2015-07-31T14:30:35.713 に答える