调整背景视频的大小 - SWIFT
Resize background video - SWIFT
我在 swift 中创建了一个背景视频。但无论如何,视频都太小了。它没有像预期的那样覆盖整个屏幕。
这是目前的结果。我要做的是覆盖整个屏幕。
private func setupView()
{
let path = URL(fileURLWithPath: Bundle.main.path(forResource: "mydogwalkvideo", ofType: ".mp4")!)
let player = AVPlayer(url: path)
let newLayer = AVPlayerLayer(player: player)
newLayer.frame = self.videoView.frame
self.videoView.layer.addSublayer(newLayer)
newLayer.videoGravity = AVLayerVideoGravity.resizeAspectFill //It's set to resize aspect to fill
player.play()
player.actionAtItemEnd = AVPlayer.ActionAtItemEnd.none
NotificationCenter.default.addObserver(self, selector: #selector(ViewController.videoDidPlayToEnd(notification:)), name: NSNotification.Name(rawValue: "AVPlayerItemDidPlayToEndTimeNotification"), object: player.currentItem)
}
@objc func videoDidPlayToEnd(notification: Notification)
{
let player: AVPlayerItem = notification.object as! AVPlayerItem
player.seek(to: CMTime.zero)
}
附加信息:
视频尺寸通常为 1920x1080
您需要在方法内更新框架 viewDidLayoutSubviews
override func viewDidLayoutSubviews() {
self.newLayer.frame = self.view.bounds
self.videoView.frame = self.view.bounds
}
我在 swift 中创建了一个背景视频。但无论如何,视频都太小了。它没有像预期的那样覆盖整个屏幕。
这是目前的结果。我要做的是覆盖整个屏幕。
private func setupView()
{
let path = URL(fileURLWithPath: Bundle.main.path(forResource: "mydogwalkvideo", ofType: ".mp4")!)
let player = AVPlayer(url: path)
let newLayer = AVPlayerLayer(player: player)
newLayer.frame = self.videoView.frame
self.videoView.layer.addSublayer(newLayer)
newLayer.videoGravity = AVLayerVideoGravity.resizeAspectFill //It's set to resize aspect to fill
player.play()
player.actionAtItemEnd = AVPlayer.ActionAtItemEnd.none
NotificationCenter.default.addObserver(self, selector: #selector(ViewController.videoDidPlayToEnd(notification:)), name: NSNotification.Name(rawValue: "AVPlayerItemDidPlayToEndTimeNotification"), object: player.currentItem)
}
@objc func videoDidPlayToEnd(notification: Notification)
{
let player: AVPlayerItem = notification.object as! AVPlayerItem
player.seek(to: CMTime.zero)
}
附加信息:
视频尺寸通常为 1920x1080
您需要在方法内更新框架 viewDidLayoutSubviews
override func viewDidLayoutSubviews() {
self.newLayer.frame = self.view.bounds
self.videoView.frame = self.view.bounds
}