video: stop video in post when it disappears from view

Changelog-Fixes: Stop video when it disappears from view
This commit is contained in:
gladiusKatana
2023-06-08 19:44:40 -04:00
committed by William Casarin
parent 0b5d68c0b8
commit df20b67fc1

View File

@@ -43,12 +43,14 @@ struct DamusVideoPlayer: View {
} }
var body: some View { var body: some View {
GeometryReader { geo in
let localFrame = geo.frame(in: .local)
let localCenter = CGPoint(x: localFrame.midX, y: localFrame.midY)
let globalCenter = geo.frame(in: .global).origin.applying(.init(translationX: localCenter.x, y: localCenter.y))
let centerY = globalCenter.y
ZStack(alignment: .bottomTrailing) { ZStack(alignment: .bottomTrailing) {
VideoPlayer(url: url, model: model) VideoPlayer(url: url, model: model)
.onAppear {
model.start()
}
if model.has_audio == true { if model.has_audio == true {
MuteIcon MuteIcon
.zIndex(11.0) .zIndex(11.0)
@@ -63,6 +65,13 @@ struct DamusVideoPlayer: View {
} }
video_size = size video_size = size
} }
.onChange(of: centerY) { _ in
let screenHeight = UIScreen.main.bounds.height
let screenMidY = screenHeight / 2
let tol = 0.20 * screenHeight /// tolerance - can vary to taste ie., % of screen height of a centered box in which video plays
model.play = centerY > screenMidY - tol && centerY < screenMidY + tol /// video plays when inside tolerance box
}
}
} }
} }
struct DamusVideoPlayer_Previews: PreviewProvider { struct DamusVideoPlayer_Previews: PreviewProvider {