I'm currently using this in SwiftUI on macOS.
The reason why I'm wrapping this in NSViewRepresentable is that I don't need a playback control in my video. :)
My video plays perfectly but I wonder how can I play it repeatedly until I leave the current View?
Here's my code.
struct AVPlayerViewRepresented: NSViewRepresentable {
var player: AVPlayer
func makeNSView(context: Context) -> some NSView {
let controller = AVPlayerView()
controller.player = player
controller.controlsStyle = .none
return controller
}
func updateNSView(_ nsView: NSViewType, context: Context) {}
}
AVPlayerViewRepresented(player: myPlayer)
.frame(myFrame)
.disabled(true)
.onAppear {
myPlayer.isMuted = true
myPlayer.play()
}
.onDisappear {
myPlayer.pause()
}