Skip to content

Commit 588cab9

Browse files
authored
feat: update react-native-webrtc to 125.0.10 and add default volume setting (#251)
* feat: update react-native-webrtc to 125.0.10 and add default volume setting * chore: revert switch camera example to old code
1 parent 14275ef commit 588cab9

File tree

13 files changed

+75
-35
lines changed

13 files changed

+75
-35
lines changed

android/src/main/java/com/livekit/reactnative/LivekitReactNativeModule.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import com.livekit.reactnative.audio.AudioSwitchManager
1414
import com.livekit.reactnative.audio.processing.AudioSinkManager
1515
import com.livekit.reactnative.audio.processing.MultibandVolumeProcessor
1616
import com.livekit.reactnative.audio.processing.VolumeProcessor
17+
import com.oney.WebRTCModule.WebRTCModuleOptions
1718
import org.webrtc.audio.WebRtcAudioTrackHelper
1819
import kotlin.time.Duration.Companion.milliseconds
1920

@@ -194,6 +195,11 @@ class LivekitReactNativeModule(reactContext: ReactApplicationContext) : ReactCon
194195
// Keep: Required for RN built in Event Emitter Calls.
195196
}
196197

198+
@ReactMethod
199+
fun setDefaultAudioTrackVolume(volume: Double) {
200+
WebRTCModuleOptions.getInstance().defaultTrackVolume = volume
201+
}
202+
197203
override fun invalidate() {
198204
LiveKitReactNative.invalidate(reactApplicationContext)
199205
}

ci/ios/Podfile.lock

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,29 @@ PODS:
77
- hermes-engine (0.74.2):
88
- hermes-engine/Pre-built (= 0.74.2)
99
- hermes-engine/Pre-built (0.74.2)
10-
- livekit-react-native (2.5.1):
10+
- livekit-react-native (2.7.5):
11+
- DoubleConversion
12+
- glog
13+
- hermes-engine
1114
- livekit-react-native-webrtc
15+
- RCT-Folly (= 2024.01.01.00)
16+
- RCTRequired
17+
- RCTTypeSafety
18+
- React-Codegen
1219
- React-Core
13-
- livekit-react-native-webrtc (125.0.8):
20+
- React-debug
21+
- React-Fabric
22+
- React-featureflags
23+
- React-graphics
24+
- React-ImageManager
25+
- React-NativeModulesApple
26+
- React-RCTFabric
27+
- React-rendererdebug
28+
- React-utils
29+
- ReactCommon/turbomodule/bridging
30+
- ReactCommon/turbomodule/core
31+
- Yoga
32+
- livekit-react-native-webrtc (125.0.10):
1433
- React-Core
1534
- WebRTC-SDK (~> 125.6422.07)
1635
- RCT-Folly (2024.01.01.00):
@@ -1361,8 +1380,8 @@ SPEC CHECKSUMS:
13611380
fmt: 4c2741a687cc09f0634a2e2c72a838b99f1ff120
13621381
glog: c5d68082e772fa1c511173d6b30a9de2c05a69a2
13631382
hermes-engine: 01d3e052018c2a13937aca1860fbedbccd4a41b7
1364-
livekit-react-native: 08264d81497fe9d18eb513e1db05d0539ddb9417
1365-
livekit-react-native-webrtc: c456181c7c6f9f2b0a79ea14d0d3c97215266ba0
1383+
livekit-react-native: dddab6768c9f3a823299c2a041676d966ad737b5
1384+
livekit-react-native-webrtc: eadea4c155d858c41ee25a44ef91b5788d074b4b
13661385
RCT-Folly: 02617c592a293bd6d418e0a88ff4ee1f88329b47
13671386
RCTDeprecation: b03c35057846b685b3ccadc9bfe43e349989cdb2
13681387
RCTRequired: 194626909cfa8d39ca6663138c417bc6c431648c
@@ -1416,4 +1435,4 @@ SPEC CHECKSUMS:
14161435

14171436
PODFILE CHECKSUM: 7e787510e5e3fbe259a5a7507ea2e7e1b1ff65ef
14181437

1419-
COCOAPODS: 1.13.0
1438+
COCOAPODS: 1.16.2

ci/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
},
1313
"dependencies": {
1414
"@livekit/react-native": "*",
15-
"@livekit/react-native-webrtc": "^125.0.9",
15+
"@livekit/react-native-webrtc": "^125.0.10",
1616
"livekit-client": "^2.9.8",
1717
"react": "18.2.0",
1818
"react-native": "0.74.2"

ci/yarn.lock

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2174,16 +2174,16 @@ __metadata:
21742174
languageName: node
21752175
linkType: hard
21762176

2177-
"@livekit/react-native-webrtc@npm:^125.0.9":
2178-
version: 125.0.9
2179-
resolution: "@livekit/react-native-webrtc@npm:125.0.9"
2177+
"@livekit/react-native-webrtc@npm:^125.0.10":
2178+
version: 125.0.10
2179+
resolution: "@livekit/react-native-webrtc@npm:125.0.10"
21802180
dependencies:
21812181
base64-js: 1.5.1
21822182
debug: 4.3.4
21832183
event-target-shim: 6.0.2
21842184
peerDependencies:
21852185
react-native: ">=0.60.0"
2186-
checksum: bcc67353c6887c059e555957d35bf470b3f5daae45a7ce4039369ced9c8d9beaf23d115ad30ae339606f49170e866caa0f88a4a2813d1e2b8d3eead0c7ce321a
2186+
checksum: e40d4742e8b2819653b96979309b167c753f77b953b6ca29b0c48a5aa3169706e36981e95da78c90ec5c1c9b22f225c31fb1d5ed531295e6c996bbbdb64a9a72
21872187
languageName: node
21882188
linkType: hard
21892189

@@ -3872,7 +3872,7 @@ __metadata:
38723872
"@babel/preset-env": ^7.20.0
38733873
"@babel/runtime": ^7.20.0
38743874
"@livekit/react-native": "*"
3875-
"@livekit/react-native-webrtc": ^125.0.9
3875+
"@livekit/react-native-webrtc": ^125.0.10
38763876
"@react-native/babel-preset": 0.74.84
38773877
"@react-native/eslint-config": 0.74.84
38783878
"@react-native/metro-config": 0.74.84

example/ios/Podfile.lock

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ PODS:
2929
- ReactCommon/turbomodule/bridging
3030
- ReactCommon/turbomodule/core
3131
- Yoga
32-
- livekit-react-native-webrtc (125.0.9):
32+
- livekit-react-native-webrtc (125.0.10):
3333
- React-Core
3434
- WebRTC-SDK (~> 125.6422.07)
3535
- RCT-Folly (2024.01.01.00):
@@ -1426,7 +1426,7 @@ SPEC CHECKSUMS:
14261426
glog: fdfdfe5479092de0c4bdbebedd9056951f092c4f
14271427
hermes-engine: 01d3e052018c2a13937aca1860fbedbccd4a41b7
14281428
livekit-react-native: dddab6768c9f3a823299c2a041676d966ad737b5
1429-
livekit-react-native-webrtc: 8f554b78de521a0f4e919a1180bc993775aed93a
1429+
livekit-react-native-webrtc: eadea4c155d858c41ee25a44ef91b5788d074b4b
14301430
RCT-Folly: 02617c592a293bd6d418e0a88ff4ee1f88329b47
14311431
RCTDeprecation: b03c35057846b685b3ccadc9bfe43e349989cdb2
14321432
RCTRequired: 194626909cfa8d39ca6663138c417bc6c431648c

example/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
"postinstall": "patch-package"
1111
},
1212
"dependencies": {
13-
"@livekit/react-native-webrtc": "^125.0.9",
13+
"@livekit/react-native-webrtc": "^125.0.10",
1414
"@react-native-async-storage/async-storage": "^1.17.10",
1515
"@react-navigation/native": "^6.0.8",
1616
"@react-navigation/native-stack": "^6.5.0",

example/src/RoomPage.tsx

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ import {
3939
import { startCallService, stopCallService } from './callservice/CallService';
4040
import Toast from 'react-native-toast-message';
4141

42-
import { LocalVideoTrack, Track } from 'livekit-client';
42+
import { Track } from 'livekit-client';
4343

4444
export const RoomPage = ({
4545
navigation,
@@ -219,13 +219,7 @@ const RoomView = ({ navigation, e2ee }: RoomViewProps) => {
219219
return;
220220
}
221221

222-
const localCameraTrack = cameraTrack.videoTrack;
223-
if (localCameraTrack instanceof LocalVideoTrack) {
224-
localCameraTrack.restartTrack({
225-
deviceId: newDevice.deviceId,
226-
facingMode: facingModeStr,
227-
});
228-
}
222+
await room.switchActiveDevice('videoinput', newDevice.deviceId);
229223
}}
230224
screenShareEnabled={isScreenShareEnabled}
231225
setScreenShareEnabled={(enabled: boolean) => {

example/yarn.lock

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2172,16 +2172,16 @@ __metadata:
21722172
languageName: node
21732173
linkType: hard
21742174

2175-
"@livekit/react-native-webrtc@npm:^125.0.9":
2176-
version: 125.0.9
2177-
resolution: "@livekit/react-native-webrtc@npm:125.0.9"
2175+
"@livekit/react-native-webrtc@npm:^125.0.10":
2176+
version: 125.0.10
2177+
resolution: "@livekit/react-native-webrtc@npm:125.0.10"
21782178
dependencies:
21792179
base64-js: 1.5.1
21802180
debug: 4.3.4
21812181
event-target-shim: 6.0.2
21822182
peerDependencies:
21832183
react-native: ">=0.60.0"
2184-
checksum: bcc67353c6887c059e555957d35bf470b3f5daae45a7ce4039369ced9c8d9beaf23d115ad30ae339606f49170e866caa0f88a4a2813d1e2b8d3eead0c7ce321a
2184+
checksum: e40d4742e8b2819653b96979309b167c753f77b953b6ca29b0c48a5aa3169706e36981e95da78c90ec5c1c9b22f225c31fb1d5ed531295e6c996bbbdb64a9a72
21852185
languageName: node
21862186
linkType: hard
21872187

@@ -6128,7 +6128,7 @@ __metadata:
61286128
"@babel/core": ^7.20.0
61296129
"@babel/preset-env": ^7.20.0
61306130
"@babel/runtime": ^7.20.0
6131-
"@livekit/react-native-webrtc": ^125.0.9
6131+
"@livekit/react-native-webrtc": ^125.0.10
61326132
"@react-native-async-storage/async-storage": ^1.17.10
61336133
"@react-native/babel-preset": 0.74.84
61346134
"@react-native/eslint-config": 0.74.84

ios/LiveKitReactNativeModule.swift

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,14 @@ public class LivekitReactNativeModule: RCTEventEmitter {
225225
return nil
226226
}
227227

228+
@objc(setDefaultAudioTrackVolume:)
229+
public func setDefaultAudioTrackVolume(_ volume: NSNumber) -> Any? {
230+
let options = WebRTCModuleOptions.sharedInstance()
231+
options.defaultTrackVolume = volume.doubleValue
232+
233+
return nil
234+
}
235+
228236
override public func supportedEvents() -> [String]! {
229237
return [
230238
LKEvents.kEventVolumeProcessed,

ios/LivekitReactNativeModule.m

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ @interface RCT_EXTERN_MODULE(LivekitReactNativeModule, RCTEventEmitter)
88
RCT_EXTERN_METHOD(startAudioSession)
99
RCT_EXTERN_METHOD(stopAudioSession)
1010

11+
RCT_EXTERN_METHOD(setDefaultAudioTrackVolume:(nonnull NSNumber *) volume)
12+
1113
RCT_EXTERN_METHOD(showAudioRoutePicker)
1214
RCT_EXTERN_METHOD(getAudioOutputsWithResolver:(RCTPromiseResolveBlock)resolve
1315
withRejecter:(RCTPromiseRejectBlock)reject)

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@
5757
"@babel/preset-env": "^7.20.0",
5858
"@babel/runtime": "^7.20.0",
5959
"@commitlint/config-conventional": "^16.2.1",
60-
"@livekit/react-native-webrtc": "^125.0.8",
60+
"@livekit/react-native-webrtc": "^125.0.10",
6161
"@react-native/babel-preset": "0.74.84",
6262
"@react-native/eslint-config": "0.74.84",
6363
"@react-native/metro-config": "0.74.84",
@@ -84,7 +84,7 @@
8484
"typescript": "5.0.4"
8585
},
8686
"peerDependencies": {
87-
"@livekit/react-native-webrtc": "^125.0.9",
87+
"@livekit/react-native-webrtc": "^125.0.10",
8888
"livekit-client": "^2.9.0",
8989
"react": "*",
9090
"react-native": "*"

src/audio/AudioSession.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,17 @@ export default class AudioSession {
254254
await LiveKitModule.stopAudioSession();
255255
};
256256

257+
/**
258+
* Set default audio track volume when new tracks are subscribed.
259+
* Does **not** affect any existing tracks.
260+
*
261+
* @param volume A number between 0.0 and 1.0, where 0.0 represents 0% volume and
262+
* 1.0 represents full volume.
263+
*/
264+
static setDefaultRemoteAudioTrackVolume = async (volume: number) => {
265+
await LiveKitModule.setDefaultAudioTrackVolume(volume);
266+
};
267+
257268
/**
258269
* Gets the available audio outputs for use with {@link selectAudioOutput}.
259270
*

yarn.lock

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2433,16 +2433,16 @@ __metadata:
24332433
languageName: node
24342434
linkType: hard
24352435

2436-
"@livekit/react-native-webrtc@npm:^125.0.8":
2437-
version: 125.0.8
2438-
resolution: "@livekit/react-native-webrtc@npm:125.0.8"
2436+
"@livekit/react-native-webrtc@npm:^125.0.10":
2437+
version: 125.0.10
2438+
resolution: "@livekit/react-native-webrtc@npm:125.0.10"
24392439
dependencies:
24402440
base64-js: 1.5.1
24412441
debug: 4.3.4
24422442
event-target-shim: 6.0.2
24432443
peerDependencies:
24442444
react-native: ">=0.60.0"
2445-
checksum: addf528f9d5fdc18b5f03134cec9d0adc1f0837d727af3117c9da04c56a709875be8d1e360fb65409297a8137bb2c6933fc8aaf527da49fc86764f4ab55e5cb6
2445+
checksum: e40d4742e8b2819653b96979309b167c753f77b953b6ca29b0c48a5aa3169706e36981e95da78c90ec5c1c9b22f225c31fb1d5ed531295e6c996bbbdb64a9a72
24462446
languageName: node
24472447
linkType: hard
24482448

@@ -2455,7 +2455,7 @@ __metadata:
24552455
"@babel/runtime": ^7.20.0
24562456
"@commitlint/config-conventional": ^16.2.1
24572457
"@livekit/components-react": ^2.8.1
2458-
"@livekit/react-native-webrtc": ^125.0.8
2458+
"@livekit/react-native-webrtc": ^125.0.10
24592459
"@react-native/babel-preset": 0.74.84
24602460
"@react-native/eslint-config": 0.74.84
24612461
"@react-native/metro-config": 0.74.84
@@ -2489,7 +2489,7 @@ __metadata:
24892489
web-streams-polyfill: ^4.1.0
24902490
well-known-symbols: ^4.1.0
24912491
peerDependencies:
2492-
"@livekit/react-native-webrtc": ^125.0.9
2492+
"@livekit/react-native-webrtc": ^125.0.10
24932493
livekit-client: ^2.9.0
24942494
react: "*"
24952495
react-native: "*"

0 commit comments

Comments
 (0)