diff --git a/js/app/package.json b/js/app/package.json index d631648c1..dabdcefa5 100644 --- a/js/app/package.json +++ b/js/app/package.json @@ -115,7 +115,7 @@ "react-native-webview": "13.16.0", "react-use-websocket": "^4.13.0", "reanimated-color-picker": "^4.0.0", - "rtcaudiodevice": "git+https://github.com/streamplace/RTCAudioDevice.git#918e08a0f6f0818fb495a0db0b696b44d11d1336", + "rtcaudiodevice": "git+https://github.com/streamplace/RTCAudioDevice.git#38bf55484ca14366e4322c565aa4ed025107734b", "sdp-transform": "^2.15.0", "stream-http": "^3.2.0", "streamplace": "workspace:*", diff --git a/js/config-react-native-webrtc/package.json b/js/config-react-native-webrtc/package.json index 221aac9ed..bea60d59e 100644 --- a/js/config-react-native-webrtc/package.json +++ b/js/config-react-native-webrtc/package.json @@ -9,7 +9,7 @@ "dependencies": { "@config-plugins/react-native-webrtc": "10.0.0", "react-native-webrtc": "git+https://github.com/streamplace/react-native-webrtc.git#74fa32266e3a2fee180f5e01bb8753af2a92d9d3", - "rtcaudiodevice": "git+https://github.com/streamplace/RTCAudioDevice.git#918e08a0f6f0818fb495a0db0b696b44d11d1336" + "rtcaudiodevice": "git+https://github.com/streamplace/RTCAudioDevice.git#38bf55484ca14366e4322c565aa4ed025107734b" }, "devDependencies": { "typescript": "~5.3.3" diff --git a/js/config-react-native-webrtc/src/config-react-native-webrtc.ts b/js/config-react-native-webrtc/src/config-react-native-webrtc.ts index 7f961f398..98abb5747 100644 --- a/js/config-react-native-webrtc/src/config-react-native-webrtc.ts +++ b/js/config-react-native-webrtc/src/config-react-native-webrtc.ts @@ -102,23 +102,15 @@ const iosDelegateReplacements = [ to: () => ` self.initialProps = @{}; ////RTC PATCH//// - RTCAudioSessionConfiguration* config = [RTCAudioSessionConfiguration webRTCConfiguration]; - - AVAudioSession * session = [AVAudioSession sharedInstance]; - // Set audio to use phone speaker instead of headset speaker - [session setCategory:AVAudioSessionCategoryPlayAndRecord - withOptions:AVAudioSessionCategoryOptionDefaultToSpeaker | AVAudioSessionCategoryOptionAllowBluetooth - error:nil]; - [session setActive:YES error:nil]; - + // AVAudioSession configuration is owned by AUAudioUnitRTCAudioDevice's + // AudioSessionCoordinator, which derives it from playback/recording state. + // Do not configure the session here. id device; device = [[AUAudioUnitRTCAudioDevice alloc] init]; WebRTCModuleOptions *options = [WebRTCModuleOptions sharedInstance]; options.loggingSeverity = RTCLoggingSeverityWarning; options.audioDevice = device; - // Enable stereo audio - options.enableStereoOutput = YES; ////END RTC PATCH//// `, }, @@ -127,17 +119,9 @@ const iosDelegateReplacements = [ from: " let delegate = ReactNativeDelegate()", to: () => ` // WebRTC Configuration - let config = RTCAudioSessionConfiguration.webRTC() - - let session = AVAudioSession.sharedInstance() - do { - try session.setCategory(.playAndRecord, - options: [.defaultToSpeaker, .allowBluetooth]) - try session.setActive(true) - } catch { - print("Failed to configure audio session: \(error)") - } - + // AVAudioSession configuration is owned by AUAudioUnitRTCAudioDevice's + // AudioSessionCoordinator, which derives it from playback/recording state. + // Do not configure the session here. let device = AUAudioUnitRTCAudioDevice() let options = WebRTCModuleOptions.sharedInstance() diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 90a93b9ea..6741a3a6c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -315,8 +315,8 @@ importers: specifier: ^4.0.0 version: 4.2.0(expo@55.0.6)(react-native-gesture-handler@2.30.0(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.0.8)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0))(react-native-reanimated@4.2.2(react-native-worklets@0.7.4(@babel/core@7.29.0)(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.0.8)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0))(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.0.8)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0))(react-native@0.83.2(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.0.8)(react@19.2.0)(utf-8-validate@5.0.10))(react@19.2.0) rtcaudiodevice: - specifier: git+https://github.com/streamplace/RTCAudioDevice.git#918e08a0f6f0818fb495a0db0b696b44d11d1336 - version: https://codeload.github.com/streamplace/RTCAudioDevice/tar.gz/918e08a0f6f0818fb495a0db0b696b44d11d1336 + specifier: git+https://github.com/streamplace/RTCAudioDevice.git#38bf55484ca14366e4322c565aa4ed025107734b + version: https://codeload.github.com/streamplace/RTCAudioDevice/tar.gz/38bf55484ca14366e4322c565aa4ed025107734b sdp-transform: specifier: ^2.15.0 version: 2.15.0 @@ -548,8 +548,8 @@ importers: specifier: git+https://github.com/streamplace/react-native-webrtc.git#74fa32266e3a2fee180f5e01bb8753af2a92d9d3 version: https://codeload.github.com/streamplace/react-native-webrtc/tar.gz/74fa32266e3a2fee180f5e01bb8753af2a92d9d3(react-native@0.83.4(@babel/core@7.29.0)(@types/react@19.2.14)(bufferutil@4.0.8)(react@19.2.4)(utf-8-validate@5.0.10)) rtcaudiodevice: - specifier: git+https://github.com/streamplace/RTCAudioDevice.git#918e08a0f6f0818fb495a0db0b696b44d11d1336 - version: https://codeload.github.com/streamplace/RTCAudioDevice/tar.gz/918e08a0f6f0818fb495a0db0b696b44d11d1336 + specifier: git+https://github.com/streamplace/RTCAudioDevice.git#38bf55484ca14366e4322c565aa4ed025107734b + version: https://codeload.github.com/streamplace/RTCAudioDevice/tar.gz/38bf55484ca14366e4322c565aa4ed025107734b devDependencies: typescript: specifier: ~5.3.3 @@ -8467,6 +8467,7 @@ packages: eslint@9.39.4: resolution: {integrity: sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. hasBin: true peerDependencies: jiti: '*' @@ -13298,8 +13299,8 @@ packages: resolution: {integrity: sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==} engines: {node: 6.* || >= 7.*} - rtcaudiodevice@https://codeload.github.com/streamplace/RTCAudioDevice/tar.gz/918e08a0f6f0818fb495a0db0b696b44d11d1336: - resolution: {tarball: https://codeload.github.com/streamplace/RTCAudioDevice/tar.gz/918e08a0f6f0818fb495a0db0b696b44d11d1336} + rtcaudiodevice@https://codeload.github.com/streamplace/RTCAudioDevice/tar.gz/38bf55484ca14366e4322c565aa4ed025107734b: + resolution: {tarball: https://codeload.github.com/streamplace/RTCAudioDevice/tar.gz/38bf55484ca14366e4322c565aa4ed025107734b} version: 0.0.1 rtl-detect@1.1.2: @@ -32238,7 +32239,7 @@ snapshots: rsvp@4.8.5: {} - rtcaudiodevice@https://codeload.github.com/streamplace/RTCAudioDevice/tar.gz/918e08a0f6f0818fb495a0db0b696b44d11d1336: {} + rtcaudiodevice@https://codeload.github.com/streamplace/RTCAudioDevice/tar.gz/38bf55484ca14366e4322c565aa4ed025107734b: {} rtl-detect@1.1.2: {} -- 2.51.2 From c42f526997771626408e4dd1c559c5d592d8c93c Mon Sep 17 00:00:00 2001 From: Eli Mallon Date: Wed, 2 Sep 2026 07:31:20 -0700 Subject: [PATCH 3/3] app: bump runtime to v0.12.0 --- js/app/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/app/package.json b/js/app/package.json index dabdcefa5..b543458a6 100644 --- a/js/app/package.json +++ b/js/app/package.json @@ -2,7 +2,7 @@ "name": "@streamplace/app", "main": "./src/entrypoint.tsx", "version": "0.11.29", - "runtimeVersion": "0.10.0", + "runtimeVersion": "0.12.0", "scripts": { "start": "npx expo start -c --port 38081", "android": "expo run:android --no-bundler",