2016-08-31 3 views
1

Я пишу приложение с помощью Swift для просмотра камер наблюдения через HLS. У меня есть основной список устройств, и я могу переходить к просмотру Live и отображать поток, однако мне нужно переместить AVPlayerLayer, и мне трудно понять это. Вот мой текущий код:Позиция AVPlayerLayer в слое UIView

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 пунктов ниже верхней, потому что у меня есть заголовок для каждого вида сцены.

Спасибо!

ответ

2

Так получилось, что вы не можете разместить дополнительный слой в представлении в определенном положении. Вот решение:

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() 

Мне нужно было установить определенную высоту игрока, а затем позицию.

0

Я не вижу, где вы связываете PlayerLayer с представлением и/или добавляете его как подкласс/слой к чему-либо? Вам нужно будет добавить его в качестве подуровня.

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, как вы предполагали, вы хотели сделать в своем вопросе.

Смежные вопросы