AVPlayerLayer 在 UIView 层中的位置
Posted
技术标签:
【中文标题】AVPlayerLayer 在 UIView 层中的位置【英文标题】:AVPlayerLayer Position in UIView Layer 【发布时间】:2016-08-31 21:55:08 【问题描述】:我正在使用 Swift 编写一个应用程序来通过 HLS 查看监控摄像头。我有基本的设备列表工作,我可以继续查看实时视图并显示流,但是,我需要移动 AVPlayerLayer,我无法弄清楚这一点。这是我当前的代码:
let player = AVPlayer(URL: url!)
let playerLayer = AVPlayerLayer(player: player)
let view = UIView(frame: CGRectMake(0, 0, screenSize.width, screenSize.height))
self.view.layer.borderWidth = 1
self.view.layer.borderColor = UIColor(red:222/255.0, green:225/255.0, blue:227/255.0, alpha: 1.0).CGColor
self.view.layer.addSublayer(playerLayer)
playerLayer.frame = view.bounds
player.play()
我希望将 AVPlayerLayer 放置在顶部下方 50 点处,因为我为每个视图场景都有一个标题。
谢谢!
【问题讨论】:
【参考方案1】:所以碰巧您不能将子层放置在视图中的特定位置。这是解决方案:
let player = AVPlayer(URL: url!)
let playerController = AVPlayerViewController()
playerController.player = player
playerController.view.frame = CGRectMake(0, 50, screenSize.width, 240)
self.view.addSubview(playerController.view)
self.addChildViewController(playerController)
player.play()
我必须设置播放器的特定高度,然后设置位置。
【讨论】:
【参考方案2】:我没有看到您在哪里将 PlayerLayer 与 View 关联和/或将其作为子视图/图层添加到任何东西?您需要将其添加为子图层。
let player = AVPlayer(URL: url!)
let playerLayer = AVPlayerLayer(player: player)
playerLayer.frame = CGRectMake(0,50,screenSize.width, screenSize.height)
self.view.layer.addSublayer(playerLayer)
player.play()
按照您在问题中建议的方式,我将 Y 位置移动了 50。
【讨论】:
以上是关于AVPlayerLayer 在 UIView 层中的位置的主要内容,如果未能解决你的问题,请参考以下文章
在 AVPlayerLayer 和 AVPlayerViewController 中同步视频
AVPlayerLayer 进入背景后在隐藏控制器中并进入前景并显示后为空白