// // VideoPlayerView.swift // Werkout_ios // // Created by Trey Tartt on 6/27/23. // import SwiftUI import AVKit import Combine struct VideoPlayerView: View { @Environment(\.dismiss) var dismiss @Binding var avPlayer: AVPlayer var showDoneButton = true var pub = NotificationCenter.default.publisher(for: .AVPlayerItemDidPlayToEndTime) var body: some View { VStack { if self.showDoneButton { Button(action: { dismiss() }, label: { Text("Done") }) .padding() .frame(maxWidth: .infinity) .background(Color(uiColor: UIColor(red: 0.11, green: 0.11, blue: 0.12, alpha: 1))) } VideoPlayer(player: avPlayer) .onAppear{ _ = try? AVAudioSession.sharedInstance().setCategory(AVAudioSession.Category.playback, mode: .default, options: .mixWithOthers) avPlayer.play() } } .background(.black) .onReceive(pub) { (output) in avPlayer.pause() avPlayer.seek(to: .zero) _ = try? AVAudioSession.sharedInstance().setCategory(AVAudioSession.Category.playback, mode: .default, options: .mixWithOthers) avPlayer.play() } .onChange(of: avPlayer, perform: { newValue in avPlayer.play() }) } } //struct VideoPlayerView_Previews: PreviewProvider { // static let exercise = PreviewData.parseExercises().first! // // static var previews: some View { // VideoPlayerView(url: Bundle.main.url(forResource: "Straight_Leg_Sit_Up", withExtension: "mp4")!) // } //}