将 AVPlayerViewController 视图添加到外部 window

add AVPlayerViewController view to external window

我想以编程方式将 AVPlayerViewController 视图从 iPad 添加到外部 window。问题是添加它时,播放器视图显示 "This video is playing on the TV"

示例代码:

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

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

如果你想控制 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()

上面代码中的frame可以根据需要调整。

使用 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)

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