尝试使用AVKit的AVPlayer播放没有播放控件的视频:
private let player = AVPlayer(url: URL(fileURLWithPath: Bundle.main.path(forResource: "videoToPlay", ofType: "mp4")!))
player.showsPlaybackControls = false
Run Code Online (Sandbox Code Playgroud)
上述结果会产生一条错误消息,指出声明必须用“;”分隔。我也尝试过:
VideoPlayer(player: player)
.onAppear {
player.showsPlaybackControls = false
}
Run Code Online (Sandbox Code Playgroud)
这会导致不同的错误。
关于使用 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) 我似乎无法停止视频,只能暂停,但这会导致视频从暂停的地方开始,而不是像我希望的那样在用户下次播放视频时重新开始。
VStack {
VideoPlayer(player: player)
.edgesIgnoringSafeArea(.all)
.onAppear {
player.play()
}
.onDisappear {
player.pause()
}
}
Run Code Online (Sandbox Code Playgroud)
我如何才能阻止视频消失,以便每次播放时都会重置?
我在尝试查找视频的结束时间时遇到错误
import SwiftUI
import AVKit
struct ContentViewC: View {
private let player = AVPlayer(url: URL(fileURLWithPath: Bundle.main.path(forResource: "videoToPlay", ofType: "mp4")!))
// throw multiple errors
NotificationCenter.default.addObserver(self, selector: #selector(playerDidFinishPlaying), name: .AVPlayerItemDidPlayToEndTime, object: nil)
func playerDidFinishPlaying(note: NSNotification) {
print("video finished")
// how to change view here?
}
var body: some View {
VStack {
AVPlayerControllerRepresented(player: player)
.edgesIgnoringSafeArea(.all)
.onAppear {
player.play()
}
.onDisappear {
player.pause()
player.seek(to: .zero)
}
}
.background(Color(.black))
.edgesIgnoringSafeArea(.all)
}
}
Run Code Online (Sandbox Code Playgroud)
解决后,如何更改 func playerDidFinishPlaying 中的视图?
我的应用程序有一个“HomeView”,它有三个按钮,单击时,它们会导航到一个将播放视频的新视图。在新视图的视频结束时,我想导航回此“HomeView”
import SwiftUI
struct ContentView: View {
var …Run Code Online (Sandbox Code Playgroud)