iOS SwiftUI 视频自动播放

dev*_*vlo 9 ios swift swiftui

我正在开发一个 iOS 应用程序,该应用程序在一个视图上有一组按钮,当点击其中一个按钮时,该应用程序将导航到视频的新视图并应自动播放视频。该视频目前无法自动播放,但会点击播放,我的理解是视频应该使用下面的代码自动播放。感谢任何帮助(这是我第一次构建 iOS 应用程序)。

let player = AVPlayer(url: URL(fileURLWithPath: Bundle.main.path(forResource: "videoToPlay", ofType: "mp4")!))

VideoPlayer(player: player)
  .edgesIgnoreSafeArea(.all)
  .onAppear() {
    player.play()
}
Run Code Online (Sandbox Code Playgroud)

小智 8

从工作表自动播放时我遇到了同样的问题。我通过在 onAppear 中加载视频项并在视图出现后播放它来解决这个问题,如下所示:

var player = AVPlayer()

VideoPlayer(player: player)
    .onAppear{
      if player.currentItem == nil {
            let item = AVPlayerItem(url: URL(string: url)!)
            player.replaceCurrentItem(with: item)
        }
        DispatchQueue.main.asyncAfter(deadline: .now() + 0.5, execute: {
            player.play()
        })
    }
Run Code Online (Sandbox Code Playgroud)


Jam*_*iam 1

你是对的,下面的代码确实可以工作,但由于.onAppearSwiftUI 中的工作方式,其行为可能不符合你的预期。除非您的视频位于某种形式的惰性视图内,并且在滚动之前一直处于屏幕外,否则.onAppear将在视图的初始渲染时运行。

您没有说明您的用例,但我建议您可以使用计时器或某种 UIKit 适应来实现某些目标。祝你好运!