将 AVPlayerViewController 视图添加到外部窗口

mat*_*eok 1 ios avplayer swift 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()
Run Code Online (Sandbox Code Playgroud)

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

小智 5

如果你想控制 AVPlayerViewController 的大小,你可以使用 layer 或者你可以将它添加为 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()
Run Code Online (Sandbox Code Playgroud)

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

使用 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)
Run Code Online (Sandbox Code Playgroud)

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