在 AVPlayerViewController 中禁用手势识别器

Posted

技术标签:

【中文标题】在 AVPlayerViewController 中禁用手势识别器【英文标题】:Disable gesture recognizer in AVPlayerViewController 【发布时间】:2018-01-31 08:58:40 【问题描述】:

AVPlayerViewController 中,有一个功能可以停止播放视频并通过滑动其视图关闭AVPlayerViewController

我想禁用此功能。我想我需要禁用手势识别器!?

但我不知道如何为玩家做到这一点。

【问题讨论】:

您使用的是AVPlayerController吗? 我正在使用 AVPlayerViewController。不知道是不是一样的? @MilanNosáľ 我现在没有时间,但我会在今天晚些时候看看它 谢谢@MilanNosáľ :) 你可以分享你已经拥有的代码吗? 【参考方案1】:

我最近偶然发现了一个类似的问题。您可以从AVPlayerViewControllercontentView 访问手势识别器。

如果您只想保留点击手势识别器,您可能需要使用如下函数:

extension AVPlayerViewController 
    func disableGestureRecognition() 
        let contentView = view.value(forKey: "contentView") as? UIView
        contentView?.gestureRecognizers = contentView?.gestureRecognizers?.filter  $0 is UITapGestureRecognizer 
    

【讨论】:

为我工作,谢谢?? 但是使用私有财产很危险。QQ【参考方案2】:

删除手势对我不起作用。无需任何操作即可添加新的UIPanGestureRecognizer

extension AVPlayerViewController 
    func disableGesture() 
        let panGesture = UIPanGestureRecognizer(target: self, action: nil)
        self.view.addGestureRecognizer(panGesture)
    

【讨论】:

以上是关于在 AVPlayerViewController 中禁用手势识别器的主要内容,如果未能解决你的问题,请参考以下文章

iOS:AVPlayerViewController 视图未删除

在 AVPlayerViewController 中点击播放按钮时执行操作

如何在 SwiftUI 中呈现全屏 AVPlayerViewController

如何在 UITableViewCell 上正确显示一个 AVPlayerViewController?

如何在解雇后停止播放 AVPlayerViewController 作为 UIViewRepresentable?

如何拦截在AVPlayerViewController中点击完成按钮?