美文网首页
ContainerView和ContainerViewContr

ContainerView和ContainerViewContr

作者: 纳兰沫 | 来源:发表于2019-11-20 11:19 被阅读0次
    AVPlayer是自由度比较高的 如果想自定义播放器的 可以考虑使用
    let player = AVPlayer(url: Bundle.main.url(forResource: "Warcraft", withExtension: "mp4")!)
    let playerLayer = AVPlayerLayer(player: player)
    playerLayer.frame = videoView.bounds
    videoView.layer.addSublayer(playerLayer)
    //自动播放
    player.play()
    // player.replaceCurrentItem(with: AVPlayerItem(url: )) 切换其他的视频
    
    用AVPlayerViewController,可以显示系统自带的各种控件(播放,暂停,快进快退等)
    let player = AVPlayer(url: Bundle.main.url(forResource: "Warcraft", withExtension: "mp4")!)
    let playerVC = AVPlayerViewController()
    playerVC.player = player //设定player属性
    //1.添加子控制器
    addChild(playerVC)
    ////2.给子控制器的根视图设定frame或约束,并把它添加到容器视图(videoView)的视图层级(hierarchy)中
    playerVC.view.frame = videoView.bounds
    videoView.addSubview(playerVC.view)
    //3.保证子控制器的生命周期函数正常执行
    playerVC.didMove(toParent: self)
    

    safeArea的frame是要在全部显示之后才会设置好 约束是早就好了 所以 使用safeArea的frame必须在viewDidLayoutSubviews方法里面 (因为只执行一次)

    移除控制器
    func removeContainerView(child: UIViewController){
          child.willMove(toParent: nil)
          child.view.removeFromSuperview()
          child.removeFromParent()
     }
    

    相关文章

      网友评论

          本文标题:ContainerView和ContainerViewContr

          本文链接:https://www.haomeiwen.com/subject/agnnictx.html