当我执行以下代码时,AVPlayerViewController将显示在单元格上,但当我再次单击播放器时,将执行tableView:(UITableView *)tableView didSelectRowAtIndexPath方法。我想要的是播放视频时,单击在播放器上,将显示或隐藏控件而不是执行tableView:(UITableView *)tableView didSelectRowAtIndexPath
-(void)showVideoInView:(UIView *)view URL:(NSURL *)url {
if (!url || !view) {
return;
}
CGRect frame = CGRectIntegral(view.bounds);
UIViewController *video;
if (@available(iOS 8.0,*)) {
AVPlayerViewController * videoController = [[AVPlayerViewController alloc]init];
videoController.view.frame = frame;
videoController.player = [AVPlayer playerWithURL:url];
if (@available(iOS 10.0,*)) {
videoController.player.automaticallyWaitsToMinimizeStalling = NO;
}
[videoController.player play];
video = videoController;
}else {
MPMoviePlayerViewController *videoController = [[MPMoviePlayerViewController alloc]initWithContentURL:url];
videoController.view.frame = frame;
[[videoController moviePlayer] play];
video = videoController;
}
[view addSubview:video.view];
}
答案 0 :(得分:0)
据我所知,AVPlayers在没有全屏时不会显示视频控件。您可以参考this。
相反,您可以向视频播放器添加触摸手势,并相应地添加播放暂停按钮。也许定制一下。 还记得重复使用其他单元格,它们会让你的视频播放混乱。 如果您重复使用单元格,您可能还需要记住搜索栏位置。