Ios 将ViewController作为覆盖嵌入AVPlayerController

Ios 将ViewController作为覆盖嵌入AVPlayerController,ios,swift,autolayout,avplayer,avplayerviewcontroller,Ios,Swift,Autolayout,Avplayer,Avplayerviewcontroller,我的问题:我正在尝试将ViewController(带有图像和按钮)嵌入到AVPlayerController中,类似于YouTube在他们的视频上显示广告的方式(在视频的底部,并将保持不变) 我的方法:我有以下测试代码 让AVPC=avplayervewcontroller() avpc!。player=self.contentPlayer avpc!。view.frame=f self.addChild(avpc!) 让adView=UIView() adView.frame=CGRect(

我的问题:我正在尝试将ViewController(带有图像和按钮)嵌入到AVPlayerController中,类似于YouTube在他们的视频上显示广告的方式(在视频的底部,并将保持不变)

我的方法:我有以下测试代码

让AVPC=avplayervewcontroller()
avpc!。player=self.contentPlayer
avpc!。view.frame=f
self.addChild(avpc!)
让adView=UIView()
adView.frame=CGRect(x:,y:,宽度:300,高度:70)
AVPC.contentOverlayView.addSubview(adView)
结果:当AVPlayerController最小化时,我的视图将正确计算其大小。但是,当我进入全屏视图时,它要么会越界,要么根本不工作

Mock

您应该看看,有一些用于代码较少的自动布局的工具,如

下面是一个不使用任何库处理它的示例方法

class ViewController: UIViewController {

    let adView: UIView = {
        let view = UIView()
        view.backgroundColor = .red
        return view
    }()

    func playVideo() {
        let videoURL = URL(string: "http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4")
        let player = AVPlayer(url: videoURL!)
        let playerViewController = AVPlayerViewController()
        playerViewController.player = player
        playerViewController.contentOverlayView?.addSubview(adView)

        adView.translatesAutoresizingMaskIntoConstraints = false
        adView.heightAnchor.constraint(equalToConstant: 100).isActive = true
        adView.bottomAnchor.constraint(equalTo: adView.superview!.bottomAnchor, constant: -20).isActive = true
        adView.leadingAnchor.constraint(equalTo: adView.superview!.leadingAnchor, constant: 40).isActive = true
        adView.trailingAnchor.constraint(equalTo: adView.superview!.trailingAnchor, constant: -40).isActive = true

        self.present(playerViewController, animated: true) {
            playerViewController.player!.play()
        }
    }
}

您需要为
adView
设置自动布局,以根据您的播放器大小进行更改