如何在 UITableViewCell 上正确显示一个 AVPlayerViewController?
Posted
技术标签:
【中文标题】如何在 UITableViewCell 上正确显示一个 AVPlayerViewController?【英文标题】:How to correctly displayed on the UITableViewCell a AVPlayerViewController? 【发布时间】:2018-04-09 02:19:59 【问题描述】:当我执行以下代码时,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];
【问题讨论】:
【参考方案1】:据我所知,AVPlayers 在非全屏时不会显示视频控件。你可以参考this。
相反,您可以向视频播放器添加触摸手势并相应地添加播放暂停按钮。也许定制一点。 还要记住重复使用单元格,否则它们会弄乱您的视频播放。 您可能还想记住搜索栏的位置,以防您重复使用单元格。
【讨论】:
以上是关于如何在 UITableViewCell 上正确显示一个 AVPlayerViewController?的主要内容,如果未能解决你的问题,请参考以下文章
点击 UITableViewCell 时如何正确显示 UINavigationController?
iOS:在 UITableViewCell 中显示所需 UITextField 的正确方法