菜鸟教程小白 发表于 2022-12-11 18:22:49

ios - 制作像回旋镖一样的视频循环效果


                                            <p><p>我正在尝试从 mp4 文件制作视频循环。就像 instagram 应用程序的回旋镖一样,我有这个代码 </p>

<pre><code>class ViewController: UIViewController {

    var avPlayer: AVPlayer!
    var avPlayerLayer: AVPlayerLayer!
    var paused: Bool = false
    var reverse: Bool = true

    override func viewDidLoad() {
      super.viewDidLoad()
      let theURL = Bundle.main.url(forResource:&#34;vidio&#34;, withExtension: &#34;mp4&#34;)

      avPlayer = AVPlayer(url: theURL!)
      avPlayerLayer = AVPlayerLayer(player: avPlayer)
      avPlayerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill
      avPlayer.volume = 0
      avPlayer.actionAtItemEnd = .none

      avPlayerLayer.frame = view.layer.bounds
      view.backgroundColor = .clear
      view.layer.insertSublayer(avPlayerLayer, at: 0)

      NotificationCenter.default.addObserver(self,
                                             selector: #selector(playerItemDidReachEnd(notification:)),
                                             name: NSNotification.Name.AVPlayerItemDidPlayToEndTime,
                                             object: avPlayer.currentItem)
    }

    func playerItemDidReachEnd(notification: Notification) {

      guard reverse else {
            avPlayer.seek(to: kCMTimeZero)
            avPlayer.rate = 1.0
            reverse = true
            print(&#34;normal&#34;)
            return
      }

      print(&#34;reversa&#34;)

      avPlayer.seek(to: avPlayer.currentItem!.duration,
                  toleranceBefore: kCMTimeZero,
                  toleranceAfter: kCMTimeZero)
      avPlayer.rate = -1.0

      reverse = false
    }

    override func viewDidAppear(_ animated: Bool) {
      super.viewDidAppear(animated)
      avPlayer.play()
      paused = false
    }

    override func viewDidDisappear(_ animated: Bool) {
      super.viewDidDisappear(animated)
      avPlayer.pause()
      paused = true
    }
}
</code></pre>

<p>但是当视频反转时,它看起来并不流畅,并且反转不是从视频的最后部分开始的。任何想法如何解决这个问题?
我希望视频看起来像在回旋镖应用循环中一样流畅</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我建议使用图像而不是视频,因为您可以创建一组图像,然后循环遍历它们以获得相同的效果,但难度较小。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 制作像回旋镖一样的视频循环效果,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/45359634/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/45359634/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 制作像回旋镖一样的视频循环效果