使用 AVKit for Swift 设置 AVLayerVideoGravity 时遇到问题
Posted
技术标签:
【中文标题】使用 AVKit for Swift 设置 AVLayerVideoGravity 时遇到问题【英文标题】:Trouble setting AVLayerVideoGravity with the AVKit for Swift 【发布时间】:2020-02-22 01:43:11 【问题描述】:我对 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()
)
感谢您的帮助!
【问题讨论】:
如果有人知道如何在视频结束时调用动作,我也很难找到最新的 swift 版本,谢谢! 【参考方案1】:找到了!我误解了另一篇文章中的代码,这很好用
animPlayer.videoGravity = AVLayerVideoGravity.resizeAspectFill
【讨论】:
以上是关于使用 AVKit for Swift 设置 AVLayerVideoGravity 时遇到问题的主要内容,如果未能解决你的问题,请参考以下文章