gpt4 book ai didi

swift - AVPlayer 内容模式

转载 作者:搜寻专家 更新时间:2023-11-01 07:16:45 27 4
gpt4 key购买 nike

我有一个 AVPlayer,并将其用作我的 UIView 中的背景作为美学。为了初始化和实例化它,我做了

override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)

guard let path = Bundle.main.path(forResource: "Background", ofType:"mp4") else {
debugPrint("Background.mp4 not found")
return
}

let player = AVPlayer(url: URL(fileURLWithPath: path))
let playerLayer = AVPlayerLayer(player: player)

playerLayer.frame = self.view.bounds
player.actionAtItemEnd = .none
player.volume = 0.0

//chage content mode ** TODO **

self.view.layer.addSublayer(playerLayer)
player.play()

}

当我运行它时,视频按预期播放,但是 AVPlayer 默认将内容模式设置为 fitToWidth。我在 playerplayerLayer 的所有方法中搜索了某种更改内容类型的方法,但无济于事。

我想要的不是fitToWidth,而是fitToHeight

有什么想法吗?感谢您的关注!

最佳答案

我能想到一些非常简单的方法来做到这一点。获取视频内容后,使用 AVPlayerLayer 中的 videoRect 方法提取视频图像的帧。然后根据图像的大小调整 View 的大小,使高度达到您想要的程度,宽度是视频高度与 View 高度之比的比例。

关于swift - AVPlayer 内容模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41786501/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com