2017-10-09 85 views
0

我想以编程方式将AVPlayerViewController视图添加到iPad的外部窗口。问题是,当添加它,玩家看法说:“这视频播放在电视上”将AVPlayerViewController视图添加到外部窗口

示例代码:

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

如果要控制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) 

让我知道,如果这有助于!或其他任何东西都需要。