about summary refs log tree commit diff
path: root/modules
diff options
context:
space:
mode:
authorHailey <me@haileyok.com>2024-08-09 03:05:12 -0700
committerGitHub <noreply@github.com>2024-08-09 11:05:12 +0100
commitcb574b7be3757c25063957ff561bae6f1be7577f (patch)
tree5a351be0e58bf36be131af489d83903e7e65e142 /modules
parenta4f0c9c753ec8844eda094080d81fbba566de7df (diff)
downloadvoidsky-cb574b7be3757c25063957ff561bae6f1be7577f.tar.zst
[Videos] Add iOS function to set `AVAudioSession.CategoryOptions` to `.mixWithOthers` (#4905)
* audio mixing pref

* lint
Diffstat (limited to 'modules')
-rw-r--r--modules/expo-bluesky-swiss-army/ios/PlatformInfo/ExpoPlatformInfoModule.swift10
-rw-r--r--modules/expo-bluesky-swiss-army/src/PlatformInfo/index.native.ts6
-rw-r--r--modules/expo-bluesky-swiss-army/src/PlatformInfo/index.ts4
-rw-r--r--modules/expo-bluesky-swiss-army/src/PlatformInfo/index.web.ts6
4 files changed, 26 insertions, 0 deletions
diff --git a/modules/expo-bluesky-swiss-army/ios/PlatformInfo/ExpoPlatformInfoModule.swift b/modules/expo-bluesky-swiss-army/ios/PlatformInfo/ExpoPlatformInfoModule.swift
index 4a1e6d7e7..ff1148a0b 100644
--- a/modules/expo-bluesky-swiss-army/ios/PlatformInfo/ExpoPlatformInfoModule.swift
+++ b/modules/expo-bluesky-swiss-army/ios/PlatformInfo/ExpoPlatformInfoModule.swift
@@ -7,5 +7,15 @@ public class ExpoPlatformInfoModule: Module {
     Function("getIsReducedMotionEnabled") {
       return UIAccessibility.isReduceMotionEnabled
     }
+
+    Function("setAudioMixWithOthers") { (mixWithOthers: Bool) in
+      var options: AVAudioSession.CategoryOptions
+      if mixWithOthers {
+        options = [.mixWithOthers]
+      } else {
+        options = []
+      }
+      try? AVAudioSession.sharedInstance().setCategory(AVAudioSession.Category.playback, mode: .default, options: options)
+    }
   }
 }
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 e05f173d6..949bd78a2 100644
--- a/modules/expo-bluesky-swiss-army/src/PlatformInfo/index.native.ts
+++ b/modules/expo-bluesky-swiss-army/src/PlatformInfo/index.native.ts
@@ -1,3 +1,4 @@
+import {Platform} from 'react-native'
 import {requireNativeModule} from 'expo-modules-core'
 
 const NativeModule = requireNativeModule('ExpoPlatformInfo')
@@ -5,3 +6,8 @@ const NativeModule = requireNativeModule('ExpoPlatformInfo')
 export function getIsReducedMotionEnabled(): boolean {
   return NativeModule.getIsReducedMotionEnabled()
 }
+
+export function setAudioMixWithOthers(mixWithOthers: boolean): void {
+  if (Platform.OS !== 'ios') return
+  NativeModule.setAudioMixWithOthers(mixWithOthers)
+}
diff --git a/modules/expo-bluesky-swiss-army/src/PlatformInfo/index.ts b/modules/expo-bluesky-swiss-army/src/PlatformInfo/index.ts
index 9b9b7fc0c..2665748b0 100644
--- a/modules/expo-bluesky-swiss-army/src/PlatformInfo/index.ts
+++ b/modules/expo-bluesky-swiss-army/src/PlatformInfo/index.ts
@@ -3,3 +3,7 @@ import {NotImplementedError} from '../NotImplemented'
 export function getIsReducedMotionEnabled(): boolean {
   throw new NotImplementedError()
 }
+
+export function setAudioMixWithOthers(mixWithOthers: boolean): void {
+  throw new NotImplementedError({mixWithOthers})
+}
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 c7ae6b7cd..917c97396 100644
--- a/modules/expo-bluesky-swiss-army/src/PlatformInfo/index.web.ts
+++ b/modules/expo-bluesky-swiss-army/src/PlatformInfo/index.web.ts
@@ -1,6 +1,12 @@
+import {NotImplementedError} from '../NotImplemented'
+
 export function getIsReducedMotionEnabled(): boolean {
   if (typeof window === 'undefined') {
     return false
   }
   return window.matchMedia('(prefers-reduced-motion: reduce)').matches
 }
+
+export function setAudioMixWithOthers(mixWithOthers: boolean): void {
+  throw new NotImplementedError({mixWithOthers})
+}