【发布时间】:2021-08-27 10:49:28
【问题描述】:
我正在尝试让VideoPlayer 与视频控制器一起自动播放,但我似乎无法弄清楚!我应该怎么办?我对 SwiftUI 还很陌生。
struct VideoView: View {
// MARK: - PROPERTIES
//: BINDING
@Binding var videoView: Bool
//: STATE
@State var player = AVPlayer()
@State var isplaying = true
@State var showcontrols = true
//: VAR
var allowsPictureInPicturePlayback : Bool = true
var wrkflw: Wrkflw
// MARK: - BODY
var body: some View {
VideoPlayer(wrkflw: wrkflw, player: $player)
.edgesIgnoringSafeArea(.all)
.onAppear {
player.play()
}
}
}
标记:- 视频控制器
struct VideoPlayer : UIViewControllerRepresentable {
var wrkflw: Wrkflw
@Binding var player : AVPlayer
func makeUIViewController(context: Context) -> UIViewController {
let player = AVPlayer(url: wrkflw.wrkvideo)
let controller = AVPlayerViewController()
controller.player = player
controller.showsPlaybackControls = true
controller.exitsFullScreenWhenPlaybackEnds = true
controller.allowsPictureInPicturePlayback = true
return controller
}
func updateUIViewController(_ uiViewController: UIViewController, context: Context) {
}
}
【问题讨论】:
-
您在
AVPlayer的不同实例 上调用play- 查看您如何在VideoView中创建一个,然后创建另一个在makeUIViewController里面?如果您要这样调用play(),它们必须是相同的实例。 -
是的,我明白了。无论我是从 VideoView 还是 makeUIViewController 中取出实例,结论都是一样的。你有什么建议?