【问题标题】:Trouble setting AVLayerVideoGravity with the AVKit for Swift使用 AVKit for Swift 设置 AVLayerVideoGravity 时遇到问题
【发布时间】: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 版本,谢谢!

标签: ios swift xcode avkit


【解决方案1】:

找到了!我误解了另一篇文章中的代码,这很好用

animPlayer.videoGravity = AVLayerVideoGravity.resizeAspectFill

【讨论】:

    猜你喜欢
    • 2011-04-01
    • 2012-07-02
    • 1970-01-01
    • 2023-02-15
    • 1970-01-01
    • 2019-11-01
    • 2021-06-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多