ContainerView和ContainerViewContr

2019-11-20  本文已影响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()
 }
上一篇下一篇

猜你喜欢

热点阅读