在 AVPlayerViewController 全屏视图上呈现 UIView

Posted

技术标签:

【中文标题】在 AVPlayerViewController 全屏视图上呈现 UIView【英文标题】:Presenting UIView on AVPlayerViewController Fullscreen View 【发布时间】:2020-03-23 20:33:28 【问题描述】:

问题:我需要在 AVPlayer 之上添加一个 UIView,使其仍然是用户交互的。当我尝试将其添加为覆盖内容时,任何用户交互按钮都将不再触发(因为它位于视频控制层后面)。

想要的效果:我希望能够在 AVPlayer 顶部添加一个 UIView,以便它始终保持在整个视图的顶部,即使它进入全屏模式也是如此。

示例代码

var view = UIView = 
  let view = UIView()
  view.frame = CGRect(x: 0, y: 0, width: 100, height: 100)
  view.backgroundColor = .red
  return view


var player = AVPlayer(url: http://somewhere.com/video.format)
let controller = AVPlayerViewController()
controller.player = player

【问题讨论】:

【参考方案1】:

显然,解决此问题的最佳方法是在 AVPlayerController 中添加一个可触摸元素,它将任何触摸事件重定向到相应的选择器。

【讨论】:

以上是关于在 AVPlayerViewController 全屏视图上呈现 UIView的主要内容,如果未能解决你的问题,请参考以下文章

iOS:AVPlayerViewController 视图未删除

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

如何在 SwiftUI 中呈现全屏 AVPlayerViewController

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

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

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