将AVPlayerViewController视图添加到外部窗口

时间:2017-10-09 18:39:20

标签: ios swift avplayer avplayerviewcontroller

我想以编程方式将一个AVPlayerViewController视图从iPad添加到外部窗口。问题在于,添加它时,播放器视图显示"此视频正在电视上播放"

示例代码:

let player = AVPlayer(url: someUrl)
//these two properties seem to have no effect
//player.usesExternalPlaybackWhileExternalScreenIsActive = true/false
//player.allowsExternalPlayback = true/false
let viewController = AVPlayerViewController()
viewController.player = player
viewController.view.frame = frame
externalWindow.addSubview(viewController.view)
player.play()

有没有办法将自己的视频视图添加到外部窗口,以便我可以决定大小?

1 个答案:

答案 0 :(得分:1)

如果要控制AVPlayerViewController的大小,可以使用该层,也可以将其添加为childViewController

使用图层

let videoURL = URL(url to your file)
let player = AVPlayer(url: videoURL!)
let playerLayer = AVPlayerLayer(player: player)
playerLayer.frame = self.view.bounds
self.view.layer.addSublayer(playerLayer)
player.play()

在上面的代码中,框架可以根据要求进行调整。

使用ChildViewController:

let videoURL = URL(fileURLWithPath: videoPath)
let player = AVPlayer(url: videoURL)
let playerViewController = AVPlayerViewController()
playerViewController.view.frame = CGRect(give the appropriate size)
playerViewController.player = player  

self.addChildViewController(playerViewController)
self.view.addSubview(playerViewController.view)
playerViewController.didMove(toParentViewController: self)

如果这有帮助,请告诉我!或其他任何需要。