about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorSamuel Newman <mozzius@protonmail.com>2024-08-14 20:21:14 +0100
committerGitHub <noreply@github.com>2024-08-14 20:21:14 +0100
commit21e214c23579e5ca45fed3ec563d4010e37562a2 (patch)
tree87f6151ee2d9988f8af79449e0463c735d667b9f /src
parent26d3777ecc7192835f4b14a9fad775d8044e29f9 (diff)
downloadvoidsky-21e214c23579e5ca45fed3ec563d4010e37562a2.tar.zst
[Video] set audio category to ambient every time a new player is made (#4934)
* set auto category to ambient every time a new player is made

* mute on foregrounding

* remember previous state

---------

Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>
Co-authored-by: Hailey <me@haileyok.com>
Diffstat (limited to 'src')
-rw-r--r--src/view/com/composer/videos/VideoPreview.tsx2
-rw-r--r--src/view/com/util/post-embeds/VideoEmbedInner/VideoEmbedInnerNative.tsx3
-rw-r--r--src/view/com/util/post-embeds/VideoPlayerContext.tsx7
3 files changed, 11 insertions, 1 deletions
diff --git a/src/view/com/composer/videos/VideoPreview.tsx b/src/view/com/composer/videos/VideoPreview.tsx
index 8e2a22852..6956c8c4f 100644
--- a/src/view/com/composer/videos/VideoPreview.tsx
+++ b/src/view/com/composer/videos/VideoPreview.tsx
@@ -16,8 +16,8 @@ export function VideoPreview({
 }) {
   const player = useVideoPlayer(video.uri, player => {
     player.loop = true
+    player.muted = true
     player.play()
-    player.volume = 0
   })
 
   return (
diff --git a/src/view/com/util/post-embeds/VideoEmbedInner/VideoEmbedInnerNative.tsx b/src/view/com/util/post-embeds/VideoEmbedInner/VideoEmbedInnerNative.tsx
index 11fff4796..fa4943876 100644
--- a/src/view/com/util/post-embeds/VideoEmbedInner/VideoEmbedInnerNative.tsx
+++ b/src/view/com/util/post-embeds/VideoEmbedInner/VideoEmbedInnerNative.tsx
@@ -28,6 +28,9 @@ export function VideoEmbedInnerNative() {
   useEffect(() => {
     try {
       if (isAppFocused === 'active' && isScreenFocused && !player.playing) {
+        PlatformInfo.setAudioCategory(AudioCategory.Ambient)
+        PlatformInfo.setAudioActive(false)
+        player.muted = true
         player.play()
       } else if (player.playing) {
         player.pause()
diff --git a/src/view/com/util/post-embeds/VideoPlayerContext.tsx b/src/view/com/util/post-embeds/VideoPlayerContext.tsx
index 20ebb6d2f..95511099e 100644
--- a/src/view/com/util/post-embeds/VideoPlayerContext.tsx
+++ b/src/view/com/util/post-embeds/VideoPlayerContext.tsx
@@ -3,6 +3,10 @@ import type {VideoPlayer} from 'expo-video'
 import {useVideoPlayer as useExpoVideoPlayer} from 'expo-video'
 
 import {logger} from '#/logger'
+import {
+  AudioCategory,
+  PlatformInfo,
+} from '../../../../../modules/expo-bluesky-swiss-army'
 
 const VideoPlayerContext = React.createContext<VideoPlayer | null>(null)
 
@@ -16,6 +20,9 @@ export function VideoPlayerProvider({
   // eslint-disable-next-line @typescript-eslint/no-shadow
   const player = useExpoVideoPlayer(source, player => {
     try {
+      PlatformInfo.setAudioCategory(AudioCategory.Ambient)
+      PlatformInfo.setAudioActive(false)
+
       player.loop = true
       player.muted = true
       player.play()