在 AVPlayerViewController 中将 AVPlayer 设为全屏视图,Swift
Make AVPlayer to full screen view in AVPlayerViewController, Swift
我是 swift 的新手,在 AVPlayerViewController.player 进入全屏时遇到问题
ViewController: AVPlayerViewController
这是我在 viewDidAppear 中用来播放视频的代码
let path = NSBundle.mainBundle().pathForResource("video", ofType: "mp4")!
let url = NSURL(fileURLWithPath: path)
let player = AVPlayer(URL: url)
self.player = player
self.showsPlaybackControls = false
self.player!.play()
我正在隐藏 playBackControlls,需要全屏观看视频...
为了将 AVPlayer 添加到视图,我从中创建了一个 CALayer,如下所示:
let playerLayer = AVPlayerLayer(player: player)
然后你需要把这个图层添加到视图中,比如你把那个代码写在一个ViewController中,那么你可以这样做:
self.view.layer.addSublayer(playerLayer)
接下来,确保这一层和父层一样大ViewController:
playerLayer.frame = self.view.layer.bounds
现在,您可以选择任何 these 选项来调整视频大小。在这里,我使用 .resize
假设视频和屏幕的纵横比相同
playerLayer.videoGravity = AVLayerVideoGravity.resize
我建议在不添加额外层的情况下采用以下解决方案:
在你的 ViewController: AVPlayerViewController 在 viewDidLoad()
中设置
videoGravity = .resizeAspectFill
根据文档:
The video gravity determines how the video content is scaled or
stretched within the bounds of the player view controller’s view. The
player view controller supports the following video gravity values:
- resizeAspect
- resizeAspectFill
- resize
The default value is resizeAspect.
我是 swift 的新手,在 AVPlayerViewController.player 进入全屏时遇到问题 ViewController: AVPlayerViewController
这是我在 viewDidAppear 中用来播放视频的代码
let path = NSBundle.mainBundle().pathForResource("video", ofType: "mp4")!
let url = NSURL(fileURLWithPath: path)
let player = AVPlayer(URL: url)
self.player = player
self.showsPlaybackControls = false
self.player!.play()
我正在隐藏 playBackControlls,需要全屏观看视频...
为了将 AVPlayer 添加到视图,我从中创建了一个 CALayer,如下所示:
let playerLayer = AVPlayerLayer(player: player)
然后你需要把这个图层添加到视图中,比如你把那个代码写在一个ViewController中,那么你可以这样做:
self.view.layer.addSublayer(playerLayer)
接下来,确保这一层和父层一样大ViewController:
playerLayer.frame = self.view.layer.bounds
现在,您可以选择任何 these 选项来调整视频大小。在这里,我使用 .resize
假设视频和屏幕的纵横比相同
playerLayer.videoGravity = AVLayerVideoGravity.resize
我建议在不添加额外层的情况下采用以下解决方案:
在你的 ViewController: AVPlayerViewController 在 viewDidLoad()
中设置
videoGravity = .resizeAspectFill
根据文档:
The video gravity determines how the video content is scaled or stretched within the bounds of the player view controller’s view. The player view controller supports the following video gravity values:
- resizeAspect
- resizeAspectFill
- resize
The default value is resizeAspect.