我对Swift和Xcode非常陌生,我试图使用视频作为从一个场景到另一个场景的过渡。我已经弄清楚了大部分代码,但视频的大小与屏幕的大小不匹配,这意味着当转换发生时,背景的大小会发生变化。我可以通过更改AVLayerVideoGravity来修复这个问题,但是文档中的命令给了我错误,而且我还没有找到正确设置它们的方法。我确信这真的很简单,我只是在任何地方都找不到我需要的语法,特别是在最新版本的swift和Xcode中,所以我想我会问一下。这是我的代码。
import UIKit
import AVKit
class MainRoom: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func Backpack(_ sender: Any) {
if let path = Bundle.main.path(forResource: "OpenBackpack", ofType: "avi", inDirectory: "SegueAnimations")
{
let OpenBackpack = AVPlayer(url: URL(fileURLWithPath: path))
let animPlayer = AVPlayerViewController()
animPlayer.player = OpenBackpack
animPlayer.showsPlaybackControls = true
let avPlayerLayer = AVPlayerLayer(player: OpenBackpack)
//Set avlayervideogravity to resizeaspectfill
present(animPlayer, animated: true, completion:
{
OpenBackpack.play()
})
}
}
}谢谢你的帮助!
发布于 2020-02-24 14:06:09
找到了!我误解了另一篇文章中的代码,这很好用
animPlayer.videoGravity = AVLayerVideoGravity.resizeAspectFill
https://stackoverflow.com/questions/60348266
复制相似问题