about summary refs log tree commit diff
path: root/modules
diff options
context:
space:
mode:
authorHailey <me@haileyok.com>2024-08-09 16:52:23 -0700
committerGitHub <noreply@github.com>2024-08-09 16:52:23 -0700
commit65d6e561d429d6759d1eef674a964d1109a1afeb (patch)
tree083839fab56df7b13afcac312cff8aa22f05e6ac /modules
parentc2131bb0392487f11b0c31fe68fdd3e847d62142 (diff)
downloadvoidsky-65d6e561d429d6759d1eef674a964d1109a1afeb.tar.zst
[Video] Resume background audio whenever muting video audio (#4915)
Diffstat (limited to 'modules')
-rw-r--r--modules/expo-bluesky-swiss-army/ios/PlatformInfo/ExpoPlatformInfoModule.swift21
-rw-r--r--modules/expo-bluesky-swiss-army/src/PlatformInfo/index.native.ts4
-rw-r--r--modules/expo-bluesky-swiss-army/src/PlatformInfo/index.ts8
-rw-r--r--modules/expo-bluesky-swiss-army/src/PlatformInfo/index.web.ts4
4 files changed, 24 insertions, 13 deletions
diff --git a/modules/expo-bluesky-swiss-army/ios/PlatformInfo/ExpoPlatformInfoModule.swift b/modules/expo-bluesky-swiss-army/ios/PlatformInfo/ExpoPlatformInfoModule.swift
index 471f1438b..7fd60e5fa 100644
--- a/modules/expo-bluesky-swiss-army/ios/PlatformInfo/ExpoPlatformInfoModule.swift
+++ b/modules/expo-bluesky-swiss-army/ios/PlatformInfo/ExpoPlatformInfoModule.swift
@@ -13,20 +13,29 @@ public class ExpoPlatformInfoModule: Module {
       try? AVAudioSession.sharedInstance().setCategory(audioCategory)
     }
 
-    Function("setAudioMixWithOthers") { (mixWithOthers: Bool) in
-      var options: AVAudioSession.CategoryOptions
+    Function("setAudioActive") { (active: Bool) in
+      var categoryOptions: AVAudioSession.CategoryOptions
       let currentCategory = AVAudioSession.sharedInstance().category
-      if mixWithOthers {
-        options = [.mixWithOthers]
+
+      if active {
+        categoryOptions = [.mixWithOthers]
+        try? AVAudioSession.sharedInstance().setActive(true)
       } else {
-        options = [.duckOthers]
+        categoryOptions = [.duckOthers]
+        try? AVAudioSession
+          .sharedInstance()
+          .setActive(
+            false,
+            options: [.notifyOthersOnDeactivation]
+          )
       }
+
       try? AVAudioSession
         .sharedInstance()
         .setCategory(
           currentCategory,
           mode: .default,
-          options: options
+          options: categoryOptions
         )
     }
   }
diff --git a/modules/expo-bluesky-swiss-army/src/PlatformInfo/index.native.ts b/modules/expo-bluesky-swiss-army/src/PlatformInfo/index.native.ts
index ba9dddf82..b515206d9 100644
--- a/modules/expo-bluesky-swiss-army/src/PlatformInfo/index.native.ts
+++ b/modules/expo-bluesky-swiss-army/src/PlatformInfo/index.native.ts
@@ -9,9 +9,9 @@ export function getIsReducedMotionEnabled(): boolean {
   return NativeModule.getIsReducedMotionEnabled()
 }
 
-export function setAudioMixWithOthers(mixWithOthers: boolean): void {
+export function setAudioActive(active: boolean): void {
   if (Platform.OS !== 'ios') return
-  NativeModule.setAudioMixWithOthers(mixWithOthers)
+  NativeModule.setAudioActive(active)
 }
 
 export function setAudioCategory(audioCategory: AudioCategory): void {
diff --git a/modules/expo-bluesky-swiss-army/src/PlatformInfo/index.ts b/modules/expo-bluesky-swiss-army/src/PlatformInfo/index.ts
index 5659339fb..81f8c45f4 100644
--- a/modules/expo-bluesky-swiss-army/src/PlatformInfo/index.ts
+++ b/modules/expo-bluesky-swiss-army/src/PlatformInfo/index.ts
@@ -6,11 +6,13 @@ export function getIsReducedMotionEnabled(): boolean {
 }
 
 /**
- * Set whether the app's audio should mix with other apps' audio.
+ * Set whether the app's audio should mix with other apps' audio. Will also resume background music playback when `false`
+ * if it was previously playing.
  * @param mixWithOthers
+ * @see https://developer.apple.com/documentation/avfaudio/avaudiosession/setactiveoptions/1616603-notifyothersondeactivation
  */
-export function setAudioMixWithOthers(mixWithOthers: boolean): void {
-  throw new NotImplementedError({mixWithOthers})
+export function setAudioActive(active: boolean): void {
+  throw new NotImplementedError({active})
 }
 
 /**
diff --git a/modules/expo-bluesky-swiss-army/src/PlatformInfo/index.web.ts b/modules/expo-bluesky-swiss-army/src/PlatformInfo/index.web.ts
index cb64d00ce..61412753c 100644
--- a/modules/expo-bluesky-swiss-army/src/PlatformInfo/index.web.ts
+++ b/modules/expo-bluesky-swiss-army/src/PlatformInfo/index.web.ts
@@ -8,8 +8,8 @@ export function getIsReducedMotionEnabled(): boolean {
   return window.matchMedia('(prefers-reduced-motion: reduce)').matches
 }
 
-export function setAudioMixWithOthers(mixWithOthers: boolean): void {
-  throw new NotImplementedError({mixWithOthers})
+export function setAudioActive(active: boolean): void {
+  throw new NotImplementedError({active})
 }
 
 export function setAudioCategory(audioCategory: AudioCategory): void {