【问题标题】:How to correctly displayed on the UITableViewCell a AVPlayerViewController?如何在 UITableViewCell 上正确显示一个 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];
}

【问题讨论】:

    标签: ios uitableview avplayer avplayerviewcontroller


    【解决方案1】:

    据我所知,AVPlayers 在非全屏时不会显示视频控件。你可以参考this

    相反,您可以向视频播放器添加触摸手势并相应地添加播放暂停按钮。也许定制一点。 还要记住重复使用单元格,否则它们会弄乱您的视频播放。 您可能还想记住搜索栏的位置,以防您重复使用单元格。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-25
      • 2020-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-17
      • 1970-01-01
      相关资源
      最近更新 更多