Ada*_*ex3 5 xcode avfoundation uiimageview swift
我希望能够将视频(称为“Logo-Animation4.mp4”)添加到 Swift 的 UI 中,就像您可以在 UIImageView 中添加 UIImage 一样。

现在,我已经尝试将 AVPlayer 放在视图上,但它提供了默认的 iOS AVPlayer,其中包含我不想要的常规全屏、控件和音量内容。我只希望视频在 UI 中播放,而没有任何方式让用户与之交互。
我想过使用常规 UIImageView 的动画功能为视频制作动画,但我的视频并没有那么短,而且很难获取每一帧并将其输入到代码中。
我该怎么做呢?
要实现您的要求,您需要使用 AVPlayerLayer
添加一个 UIView 插座
@IBOutlet weak var videoView: UIView!
Run Code Online (Sandbox Code Playgroud)导入 AVFoundation
创建玩家变量
var player : AVPlayer!
var avPlayerLayer : AVPlayerLayer!
Run Code Online (Sandbox Code Playgroud)将以下代码添加到您的 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()
Run Code Online (Sandbox Code Playgroud)添加这个方法
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
avPlayerLayer.frame = videoView.layer.bounds
}
Run Code Online (Sandbox Code Playgroud)