From 21e48bb2d80a5becf3ffdecb1415322e7eae3f14 Mon Sep 17 00:00:00 2001 From: Hailey Date: Wed, 4 Sep 2024 08:00:53 -0700 Subject: [PATCH] [Video] Tweak playback handling (#5127) --- src/view/com/util/post-embeds/VideoEmbed.tsx | 31 +++++++++++++------ .../VideoEmbedInner/VideoEmbedInnerNative.tsx | 5 ++- 2 files changed, 26 insertions(+), 10 deletions(-) diff --git a/src/view/com/util/post-embeds/VideoEmbed.tsx b/src/view/com/util/post-embeds/VideoEmbed.tsx index 55ac1882..03838b66 100644 --- a/src/view/com/util/post-embeds/VideoEmbed.tsx +++ b/src/view/com/util/post-embeds/VideoEmbed.tsx @@ -18,7 +18,8 @@ import * as VideoFallback from './VideoEmbedInner/VideoFallback' export function VideoEmbed({embed}: {embed: AppBskyEmbedVideo.View}) { const t = useTheme() - const {activeSource, setActiveSource} = useActiveVideoNative() + const {activeSource, setActiveSource, player} = useActiveVideoNative() + const [isFullscreen, setIsFullscreen] = React.useState(false) const isActive = embed.playlist === activeSource const {_} = useLingui() @@ -31,6 +32,20 @@ export function VideoEmbed({embed}: {embed: AppBskyEmbedVideo.View}) { ) const gate = useGate() + const onChangeStatus = (isVisible: boolean) => { + if (isVisible) { + setActiveSource(embed.playlist) + if (!player.playing) { + player.play() + } + } else if (!isFullscreen) { + player.muted = true + if (player.playing) { + player.pause() + } + } + } + if (!gate('video_view_on_posts')) { return null } @@ -54,15 +69,13 @@ export function VideoEmbed({embed}: {embed: AppBskyEmbedVideo.View}) { a.my_xs, ]}> - { - if (isVisible) { - setActiveSource(embed.playlist) - } - }}> + {isActive ? ( - + ) : ( <> void }) { const {_} = useLingui() const {player} = useActiveVideoNative() const ref = useRef(null) - const [isFullscreen, setIsFullscreen] = useState(false) const enterFullscreen = useCallback(() => { ref.current?.enterFullscreen()