如何在 UI 中添加视频 Swift
How to add a video in the UI in Swift
我希望能够将视频(称为 "Logo-Animation4.mp4")添加到 Swift 的 UI 中,就像您可以将 UI 图片添加到 UIImageView.
现在,我尝试只在视图上放置一个 AVPlayer,但它带有默认的 iOS AVPlayer,其中包含常规的全屏、控件和我没有的音量内容想。我只想让视频在 UI 中播放,而无需任何方式让用户与之互动。
我考虑过使用常规 UIImageView 的动画功能为视频制作动画,但我的视频并没有那么短,而且很难获取每一帧并将其输入到代码。
我应该怎么做?
要实现您的要求,您需要使用 AVPlayerLayer
添加一个 UIView 插座
@IBOutlet weak var videoView: UIView!
导入 AVFoundation
创建玩家变量
var player : AVPlayer!
var avPlayerLayer : AVPlayerLayer!
将以下代码添加到您的 viewDidLoad
guard let path = Bundle.main.path(forResource: "Logo-Animation4", ofType:"mp4") else {
debugPrint("Logo-Animation4.mp4 not found")
return
}
player = AVPlayer(url: URL(fileURLWithPath: path))
avPlayerLayer = AVPlayerLayer(player: player)
avPlayerLayer.videoGravity = AVLayerVideoGravity.resize
videoView.layer.addSublayer(avPlayerLayer)
player.play()
添加此方法
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
avPlayerLayer.frame = videoView.layer.bounds
}
我希望能够将视频(称为 "Logo-Animation4.mp4")添加到 Swift 的 UI 中,就像您可以将 UI 图片添加到 UIImageView.
现在,我尝试只在视图上放置一个 AVPlayer,但它带有默认的 iOS AVPlayer,其中包含常规的全屏、控件和我没有的音量内容想。我只想让视频在 UI 中播放,而无需任何方式让用户与之互动。
我考虑过使用常规 UIImageView 的动画功能为视频制作动画,但我的视频并没有那么短,而且很难获取每一帧并将其输入到代码。
我应该怎么做?
要实现您的要求,您需要使用 AVPlayerLayer
添加一个 UIView 插座
@IBOutlet weak var videoView: UIView!
导入 AVFoundation
创建玩家变量
var player : AVPlayer! var avPlayerLayer : AVPlayerLayer!
将以下代码添加到您的 viewDidLoad
guard let path = Bundle.main.path(forResource: "Logo-Animation4", ofType:"mp4") else { debugPrint("Logo-Animation4.mp4 not found") return } player = AVPlayer(url: URL(fileURLWithPath: path)) avPlayerLayer = AVPlayerLayer(player: player) avPlayerLayer.videoGravity = AVLayerVideoGravity.resize videoView.layer.addSublayer(avPlayerLayer) player.play()
添加此方法
override func viewDidLayoutSubviews() { super.viewDidLayoutSubviews() avPlayerLayer.frame = videoView.layer.bounds }