代码之家  ›  专栏  ›  技术社区  ›  Adalex3

如何在Swift的UI中添加视频

  •  4
  • Adalex3  · 技术社区  · 7 年前

    我希望能够在Swift的UI中添加视频(称为“Logo-Animation4.mp4”),就像您可以在UIImageView中添加UIImage一样。

    UIImageView

    现在,我尝试在视图上放置一个AVPlayer,但它提供了默认的iOS AVPlayer,其中包含我不想要的常规全屏、控件和音量内容。我只想在UI中播放视频,而不想让用户与之交互。

    我曾想过使用常规UIImageView的动画功能制作视频动画,但我的视频没有那么短,很难获得每一帧,并将其输入到代码中。

    我该怎么做呢?

    1 回复  |  直到 7 年前
        1
  •  4
  •   Aryan Sharma    6 年前

    要实现您的要求,您需要使用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
      }