video: stop video in post when it disappears from view
Changelog-Fixes: Stop video when it disappears from view
This commit is contained in:
committed by
William Casarin
parent
0b5d68c0b8
commit
df20b67fc1
@@ -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 {
|
||||||
|
|||||||
Reference in New Issue
Block a user