diff --git a/Model/Player/PlayerModel.swift b/Model/Player/PlayerModel.swift index c9a88df7..02815c1f 100644 --- a/Model/Player/PlayerModel.swift +++ b/Model/Player/PlayerModel.swift @@ -21,7 +21,7 @@ final class PlayerModel: ObservableObject { var avPlayerViewController: AVPlayerViewController? #endif - @Published var presentingPlayer = false + @Published var presentingPlayer = false { didSet { pauseOnPlayerDismiss() } } @Published var stream: Stream? @Published var currentRate: Float = 1.0 { didSet { player.rate = currentRate } } @@ -143,6 +143,14 @@ final class PlayerModel: ObservableObject { updateCurrentArtwork() } + private func pauseOnPlayerDismiss() { + if !playingInPictureInPicture, !presentingPlayer { + DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) { + self.pause() + } + } + } + private func insertPlayerItem( _ stream: Stream, for video: Video, diff --git a/Shared/Player/VideoPlayerView.swift b/Shared/Player/VideoPlayerView.swift index bc7e9e26..b6c62b02 100644 --- a/Shared/Player/VideoPlayerView.swift +++ b/Shared/Player/VideoPlayerView.swift @@ -118,11 +118,6 @@ struct VideoPlayerView: View { } #endif } - .onDisappear { - if !player.playingInPictureInPicture { - player.pause() - } - } } func playerPlaceholder(geometry: GeometryProxy) -> some View {