我正在开发一个 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)
你是对的,下面的代码确实可以工作,但由于.onAppearSwiftUI 中的工作方式,其行为可能不符合你的预期。除非您的视频位于某种形式的惰性视图内,并且在滚动之前一直处于屏幕外,否则.onAppear将在视图的初始渲染时运行。
您没有说明您的用例,但我建议您可以使用计时器或某种 UIKit 适应来实现某些目标。祝你好运!
| 归档时间: |
|
| 查看次数: |
6146 次 |
| 最近记录: |