如何在 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

  1. 添加一个 UIView 插座

    @IBOutlet weak var videoView: UIView!
    
  2. 导入 AVFoundation

  3. 创建玩家变量

    var player : AVPlayer!
    var avPlayerLayer : AVPlayerLayer!
    
  4. 将以下代码添加到您的 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()
    
  5. 添加此方法

    override func viewDidLayoutSubviews() {
        super.viewDidLayoutSubviews()
        avPlayerLayer.frame = videoView.layer.bounds
    }