@stream-io/video-react-native-sdk 1.27.4 → 1.28.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/android/src/main/java/com/streamvideo/reactnative/audio/AudioDeviceManager.kt +19 -11
  3. package/android/src/main/java/com/streamvideo/reactnative/audio/utils/AudioFocusUtil.kt +23 -9
  4. package/android/src/main/java/com/streamvideo/reactnative/callmanager/StreamInCallManagerModule.kt +48 -14
  5. package/dist/commonjs/index.js +2 -0
  6. package/dist/commonjs/index.js.map +1 -1
  7. package/dist/commonjs/modules/call-manager/CallManager.js +5 -0
  8. package/dist/commonjs/modules/call-manager/CallManager.js.map +1 -1
  9. package/dist/commonjs/utils/internal/registerSDKGlobals.js +34 -0
  10. package/dist/commonjs/utils/internal/registerSDKGlobals.js.map +1 -0
  11. package/dist/commonjs/utils/push/setupIosCallKeepEvents.js +44 -0
  12. package/dist/commonjs/utils/push/setupIosCallKeepEvents.js.map +1 -1
  13. package/dist/commonjs/version.js +1 -1
  14. package/dist/module/index.js +2 -0
  15. package/dist/module/index.js.map +1 -1
  16. package/dist/module/modules/call-manager/CallManager.js +5 -0
  17. package/dist/module/modules/call-manager/CallManager.js.map +1 -1
  18. package/dist/module/utils/internal/registerSDKGlobals.js +28 -0
  19. package/dist/module/utils/internal/registerSDKGlobals.js.map +1 -0
  20. package/dist/module/utils/push/setupIosCallKeepEvents.js +44 -0
  21. package/dist/module/utils/push/setupIosCallKeepEvents.js.map +1 -1
  22. package/dist/module/version.js +1 -1
  23. package/dist/typescript/index.d.ts.map +1 -1
  24. package/dist/typescript/modules/call-manager/CallManager.d.ts +2 -0
  25. package/dist/typescript/modules/call-manager/CallManager.d.ts.map +1 -1
  26. package/dist/typescript/modules/call-manager/types.d.ts +1 -0
  27. package/dist/typescript/modules/call-manager/types.d.ts.map +1 -1
  28. package/dist/typescript/utils/internal/registerSDKGlobals.d.ts +2 -0
  29. package/dist/typescript/utils/internal/registerSDKGlobals.d.ts.map +1 -0
  30. package/dist/typescript/utils/push/setupIosCallKeepEvents.d.ts.map +1 -1
  31. package/dist/typescript/version.d.ts +1 -1
  32. package/ios/StreamInCallManager.m +4 -0
  33. package/ios/StreamInCallManager.swift +213 -88
  34. package/package.json +7 -7
  35. package/src/index.ts +2 -0
  36. package/src/modules/call-manager/CallManager.ts +5 -0
  37. package/src/modules/call-manager/native-module.d.ts +11 -0
  38. package/src/modules/call-manager/types.ts +1 -0
  39. package/src/utils/internal/registerSDKGlobals.ts +30 -0
  40. package/src/utils/push/setupIosCallKeepEvents.ts +49 -0
  41. package/src/version.ts +1 -1
  42. package/android/src/main/java/com/streamvideo/reactnative/audio/utils/AudioSetupStoreUtil.kt +0 -41
package/CHANGELOG.md CHANGED
@@ -2,6 +2,31 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ ## [1.28.1](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-1.28.0...@stream-io/video-react-native-sdk-1.28.1) (2026-01-26)
6
+
7
+ ### Dependency Updates
8
+
9
+ - `@stream-io/video-client` updated to version `1.41.1`
10
+ - `@stream-io/video-react-bindings` updated to version `1.13.1`
11
+
12
+ ### Bug Fixes
13
+
14
+ - always forward callkit audio events to webrtc ([#2089](https://github.com/GetStream/stream-video-js/issues/2089)) ([767041a](https://github.com/GetStream/stream-video-js/commit/767041a54dfaaa87145cbdc931a336dbe4fee821))
15
+ - use multiple settings to determine default audio device RN-338 ([#2096](https://github.com/GetStream/stream-video-js/issues/2096)) ([19cf136](https://github.com/GetStream/stream-video-js/commit/19cf13651112b647903587a84a70a555fc68fc9c)), closes [2BSettingsPriority.swift#L19](https://github.com/GetStream/2BSettingsPriority.swift/issues/L19)
16
+
17
+ ## [1.28.0](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-1.27.4...@stream-io/video-react-native-sdk-1.28.0) (2026-01-20)
18
+
19
+ ### Dependency Updates
20
+
21
+ - `@stream-io/noise-cancellation-react-native` updated to version `0.5.0`
22
+ - `@stream-io/video-filters-react-native` updated to version `0.10.0`
23
+ - `@stream-io/video-client` updated to version `1.41.0`
24
+ - `@stream-io/video-react-bindings` updated to version `1.13.0`
25
+
26
+ ### Features
27
+
28
+ - stereo audio output support RN-332 ([#2038](https://github.com/GetStream/stream-video-js/issues/2038)) ([2938037](https://github.com/GetStream/stream-video-js/commit/2938037d18e70ccf112a089eb3ec44cb034aed1d))
29
+
5
30
  ## [1.27.4](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-1.27.3...@stream-io/video-react-native-sdk-1.27.4) (2026-01-16)
6
31
 
7
32
  ### Dependency Updates
@@ -31,7 +31,6 @@ import com.streamvideo.reactnative.audio.utils.AudioDeviceEndpointUtils
31
31
  import com.streamvideo.reactnative.audio.utils.AudioFocusUtil
32
32
  import com.streamvideo.reactnative.audio.utils.AudioManagerUtil
33
33
  import com.streamvideo.reactnative.audio.utils.AudioManagerUtil.Companion.getAvailableAudioDevices
34
- import com.streamvideo.reactnative.audio.utils.AudioSetupStoreUtil
35
34
  import com.streamvideo.reactnative.audio.utils.CallAudioRole
36
35
  import com.streamvideo.reactnative.callmanager.ProximityManager
37
36
  import com.streamvideo.reactnative.callmanager.StreamInCallManagerModule
@@ -90,6 +89,8 @@ class AudioDeviceManager(
90
89
  @EndpointType
91
90
  private var userSelectedAudioDevice: Int? = null
92
91
 
92
+ var enableStereo: Boolean = false
93
+
93
94
  private val mAudioManager =
94
95
  mReactContext.getSystemService(Context.AUDIO_SERVICE) as AudioManager
95
96
 
@@ -99,7 +100,6 @@ class AudioDeviceManager(
99
100
  private var audioFocusLost = false
100
101
 
101
102
  private var audioFocusUtil = AudioFocusUtil(mAudioManager, this)
102
- private var audioSetupStoreUtil = AudioSetupStoreUtil(mReactContext, mAudioManager, this)
103
103
 
104
104
  var callAudioRole: CallAudioRole = CallAudioRole.Communicator
105
105
 
@@ -113,33 +113,38 @@ class AudioDeviceManager(
113
113
  mAudioManager.registerAudioDeviceCallback(this, null)
114
114
  }
115
115
 
116
+ fun setup() {
117
+ if (callAudioRole == CallAudioRole.Communicator) {
118
+ mAudioManager.mode = AudioManager.MODE_IN_COMMUNICATION
119
+ } else {
120
+ // Audio routing is handled automatically by the system in normal media mode
121
+ // and bluetooth microphones may not work on some devices.
122
+ mAudioManager.mode = AudioManager.MODE_NORMAL
123
+ }
124
+ audioFocusUtil.setup(callAudioRole, mReactContext)
125
+ }
126
+
116
127
  fun start(activity: Activity) {
117
128
  runInAudioThread {
129
+ setup()
118
130
  userSelectedAudioDevice = null
119
131
  selectedAudioDeviceEndpoint = null
120
- audioSetupStoreUtil.storeOriginalAudioSetup()
121
132
  if (callAudioRole == CallAudioRole.Communicator) {
122
133
  // Audio routing is manually controlled by the SDK in communication media mode
123
134
  // and local microphone can be published
124
- mAudioManager.mode = AudioManager.MODE_IN_COMMUNICATION
125
135
  activity.volumeControlStream = AudioManager.STREAM_VOICE_CALL
126
136
  bluetoothManager.start()
127
137
  mAudioManager.registerAudioDeviceCallback(this, null)
128
138
  updateAudioDeviceState()
129
139
  proximityManager.start()
130
140
  } else {
131
- // Audio routing is handled automatically by the system in normal media mode
132
- // and bluetooth microphones may not work on some devices.
133
- mAudioManager.mode = AudioManager.MODE_NORMAL
134
141
  activity.volumeControlStream = AudioManager.USE_DEFAULT_STREAM_TYPE
135
142
  }
136
-
137
- audioSetupStoreUtil.storeOriginalAudioSetup()
138
143
  audioFocusUtil.requestFocus(callAudioRole, mReactContext)
139
144
  }
140
145
  }
141
146
 
142
- fun stop() {
147
+ fun stop(activity: Activity) {
143
148
  runInAudioThread {
144
149
  if (callAudioRole == CallAudioRole.Communicator) {
145
150
  if (Build.VERSION.SDK_INT >= 31) {
@@ -147,10 +152,13 @@ class AudioDeviceManager(
147
152
  } else {
148
153
  mAudioManager.setSpeakerphoneOn(false)
149
154
  }
155
+ callAudioRole = CallAudioRole.Communicator
156
+ enableStereo = false
157
+ defaultAudioDevice = AudioDeviceEndpoint.TYPE_SPEAKER
150
158
  bluetoothManager.stop()
151
159
  proximityManager.stop()
152
160
  }
153
- audioSetupStoreUtil.restoreOriginalAudioSetup()
161
+ activity.volumeControlStream = AudioManager.USE_DEFAULT_STREAM_TYPE
154
162
  audioFocusUtil.abandonFocus()
155
163
  }
156
164
  }
@@ -4,6 +4,7 @@ import android.media.AudioAttributes
4
4
  import android.media.AudioFocusRequest
5
5
  import android.media.AudioManager
6
6
  import android.os.Build
7
+ import androidx.annotation.RequiresApi
7
8
  import com.facebook.react.bridge.ReactContext
8
9
  import com.oney.WebRTCModule.WebRTCModule
9
10
  import org.webrtc.audio.JavaAudioDeviceModule
@@ -25,18 +26,31 @@ class AudioFocusUtil(
25
26
  private lateinit var request: AudioFocusRequest
26
27
 
27
28
 
29
+ @RequiresApi(26)
30
+ private fun getAudioAttributes(mode: CallAudioRole): AudioAttributes {
31
+ return AudioAttributes.Builder()
32
+ .setUsage(if (mode == CallAudioRole.Communicator) AudioAttributes.USAGE_VOICE_COMMUNICATION else AudioAttributes.USAGE_MEDIA)
33
+ .setContentType(if (mode == CallAudioRole.Communicator) AudioAttributes.CONTENT_TYPE_SPEECH else AudioAttributes.CONTENT_TYPE_MUSIC)
34
+ .build()
35
+ }
36
+
37
+ private fun setup(audioAttributes: AudioAttributes, reactContext: ReactContext) {
38
+ val webRTCModule = reactContext.getNativeModule(WebRTCModule::class.java)!!
39
+ val adm = webRTCModule.audioDeviceModule as JavaAudioDeviceModule
40
+ WebRtcAudioTrackHelper.setAudioOutputAttributes(adm, audioAttributes)
41
+ }
42
+
43
+ fun setup(mode: CallAudioRole, reactContext: ReactContext) {
44
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
45
+ val audioAttributes = getAudioAttributes(mode)
46
+ setup(audioAttributes, reactContext)
47
+ }
48
+ }
28
49
 
29
50
  fun requestFocus(mode: CallAudioRole, reactContext: ReactContext) {
30
51
  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
31
- val audioAttributes = AudioAttributes.Builder()
32
- .setUsage(if (mode == CallAudioRole.Communicator) AudioAttributes.USAGE_VOICE_COMMUNICATION else AudioAttributes.USAGE_MEDIA)
33
- .setContentType(if (mode == CallAudioRole.Communicator) AudioAttributes.CONTENT_TYPE_SPEECH else AudioAttributes.CONTENT_TYPE_MUSIC)
34
- .build()
35
-
36
- // 1. set audio attributes to webrtc
37
- val webRTCModule = reactContext.getNativeModule(WebRTCModule::class.java)!!
38
- val adm = webRTCModule.audioDeviceModule as JavaAudioDeviceModule
39
- WebRtcAudioTrackHelper.setAudioOutputAttributes(adm, audioAttributes)
52
+ val audioAttributes = getAudioAttributes(mode)
53
+ setup(audioAttributes, reactContext)
40
54
 
41
55
  // 2. request the audio focus with the audio attributes
42
56
  request = AudioFocusRequest.Builder(AudioManager.AUDIOFOCUS_GAIN_TRANSIENT)
@@ -80,6 +80,24 @@ class StreamInCallManagerModule(reactContext: ReactApplicationContext) :
80
80
  }
81
81
  }
82
82
 
83
+ @ReactMethod
84
+ fun setEnableStereoAudioOutput(enabled: Boolean) {
85
+ AudioDeviceManager.runInAudioThread {
86
+ if (audioManagerActivated) {
87
+ Log.e(TAG, "setEnableStereoAudioOutput(): AudioManager is already activated and so enabling stereo audio output cannot be changed")
88
+ return@runInAudioThread
89
+ }
90
+ mAudioDeviceManager.enableStereo = enabled
91
+ }
92
+ }
93
+
94
+ @ReactMethod
95
+ fun setup() {
96
+ AudioDeviceManager.runInAudioThread {
97
+ mAudioDeviceManager.setup()
98
+ }
99
+ }
100
+
83
101
  @ReactMethod
84
102
  fun start() {
85
103
  AudioDeviceManager.runInAudioThread {
@@ -99,10 +117,12 @@ class StreamInCallManagerModule(reactContext: ReactApplicationContext) :
99
117
  AudioDeviceManager.runInAudioThread {
100
118
  if (audioManagerActivated) {
101
119
  Log.d(TAG, "stop() mAudioDeviceManager")
102
- mAudioDeviceManager.stop()
120
+ reactApplicationContext.currentActivity?.let {
121
+ mAudioDeviceManager.stop(it)
122
+ audioManagerActivated = false
123
+ }
103
124
  setMicrophoneMute(false)
104
125
  setKeepScreenOn(false)
105
- audioManagerActivated = false
106
126
  }
107
127
  }
108
128
  }
@@ -124,11 +144,16 @@ class StreamInCallManagerModule(reactContext: ReactApplicationContext) :
124
144
  @Suppress("unused")
125
145
  @ReactMethod
126
146
  fun setForceSpeakerphoneOn(enable: Boolean) {
127
- if (mAudioDeviceManager.callAudioRole !== CallAudioRole.Communicator) {
128
- Log.e(TAG, "setForceSpeakerphoneOn() is not supported when audio role is not Communicator")
129
- return
147
+ AudioDeviceManager.runInAudioThread {
148
+ if (mAudioDeviceManager.callAudioRole !== CallAudioRole.Communicator) {
149
+ Log.e(
150
+ TAG,
151
+ "setForceSpeakerphoneOn() is not supported when audio role is not Communicator"
152
+ )
153
+ return@runInAudioThread
154
+ }
155
+ mAudioDeviceManager.setSpeakerphoneOn(enable)
130
156
  }
131
- mAudioDeviceManager.setSpeakerphoneOn(enable)
132
157
  }
133
158
 
134
159
  @ReactMethod
@@ -152,23 +177,32 @@ class StreamInCallManagerModule(reactContext: ReactApplicationContext) :
152
177
  @Suppress("unused")
153
178
  @ReactMethod
154
179
  fun chooseAudioDeviceEndpoint(endpointDeviceName: String) {
155
- if (mAudioDeviceManager.callAudioRole !== CallAudioRole.Communicator) {
156
- Log.e(TAG, "chooseAudioDeviceEndpoint() is not supported when audio role is not Communicator")
157
- return
180
+ AudioDeviceManager.runInAudioThread {
181
+ if (mAudioDeviceManager.callAudioRole !== CallAudioRole.Communicator) {
182
+ Log.e(
183
+ TAG,
184
+ "chooseAudioDeviceEndpoint() is not supported when audio role is not Communicator"
185
+ )
186
+ return@runInAudioThread
187
+ }
188
+ mAudioDeviceManager.switchDeviceFromDeviceName(
189
+ endpointDeviceName
190
+ )
158
191
  }
159
- mAudioDeviceManager.switchDeviceFromDeviceName(
160
- endpointDeviceName
161
- )
162
192
  }
163
193
 
164
194
  @ReactMethod
165
195
  fun muteAudioOutput() {
166
- mAudioDeviceManager.muteAudioOutput()
196
+ AudioDeviceManager.runInAudioThread {
197
+ mAudioDeviceManager.muteAudioOutput()
198
+ }
167
199
  }
168
200
 
169
201
  @ReactMethod
170
202
  fun unmuteAudioOutput() {
171
- mAudioDeviceManager.unmuteAudioOutput()
203
+ AudioDeviceManager.runInAudioThread {
204
+ mAudioDeviceManager.unmuteAudioOutput()
205
+ }
172
206
  }
173
207
 
174
208
 
@@ -26,6 +26,7 @@ require("intl-pluralrules");
26
26
  var _reactNativeWebrtc = require("@stream-io/react-native-webrtc");
27
27
  var _Logger = _interopRequireDefault(require("@stream-io/react-native-webrtc/src/Logger"));
28
28
  var _reactNative = require("react-native");
29
+ var _registerSDKGlobals = require("./utils/internal/registerSDKGlobals");
29
30
  var _videoClient = require("@stream-io/video-client");
30
31
  Object.keys(_videoClient).forEach(function (key) {
31
32
  if (key === "default" || key === "__esModule") return;
@@ -160,6 +161,7 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
160
161
  // Reference: https://github.com/react-native-webrtc/react-native-webrtc/blob/16cff1523da457dbcc27bb0744ee2bad3a987c41/Documentation/BasicUsage.md#registering-globals
161
162
  if (_reactNative.Platform.OS !== 'web') {
162
163
  (0, _reactNativeWebrtc.registerGlobals)();
164
+ (0, _registerSDKGlobals.registerSDKGlobals)();
163
165
  }
164
166
 
165
167
  // only enable warning and error logs from webrtc library
@@ -1 +1 @@
1
- {"version":3,"names":["_setClientDetails","require","_reactNativeWebrtc","_Logger","_interopRequireDefault","_reactNative","_videoClient","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_videoReactBindings","_components","_contexts","_hooks","_theme","_utils","_translations","_callManager","_StreamVideo","_StreamCall","_NoiseCancellation","e","__esModule","default","Platform","OS","registerGlobals","Logger","enable","ROOT_PREFIX","setClientDetails"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_setClientDetails","require","_reactNativeWebrtc","_Logger","_interopRequireDefault","_reactNative","_registerSDKGlobals","_videoClient","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_videoReactBindings","_components","_contexts","_hooks","_theme","_utils","_translations","_callManager","_StreamVideo","_StreamCall","_NoiseCancellation","e","__esModule","default","Platform","OS","registerGlobals","registerSDKGlobals","Logger","enable","ROOT_PREFIX","setClientDetails"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
@@ -86,6 +86,8 @@ class CallManager {
86
86
  * @param config.deviceEndpointType The default audio device endpoint type to set. It can be one of the following:
87
87
  * - `'speaker'`: (Default) For normal video or voice calls.
88
88
  * - `'earpiece'`: For voice-only mobile call type scenarios.
89
+ *
90
+ * @param config.enableStereoAudioOutput Whether to enable stereo audio output. Only supported for listener audio role.
89
91
  */
90
92
  start = config => {
91
93
  NativeManager.setAudioRole(config?.audioRole ?? 'communicator');
@@ -93,6 +95,9 @@ class CallManager {
93
95
  const type = config.deviceEndpointType ?? 'speaker';
94
96
  NativeManager.setDefaultAudioDeviceEndpointType(type);
95
97
  }
98
+ if (config?.audioRole === 'listener' && config.enableStereoAudioOutput) {
99
+ NativeManager.setEnableStereoAudioOutput(true);
100
+ }
96
101
  NativeManager.start();
97
102
  };
98
103
 
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","NativeManager","NativeModules","StreamInCallManager","invariant","condition","message","Error","AndroidCallManager","getAudioDeviceStatus","Platform","OS","selectAudioDevice","endpointName","chooseAudioDeviceEndpoint","addAudioDeviceChangeListener","onChange","eventEmitter","NativeEventEmitter","s","addListener","remove","IOSCallManager","showDeviceSelector","showAudioRoutePicker","SpeakerManager","setMute","mute","muteAudioOutput","unmuteAudioOutput","setForceSpeakerphoneOn","force","CallManager","android","ios","speaker","start","config","setAudioRole","audioRole","type","deviceEndpointType","setDefaultAudioDeviceEndpointType","stop","logAudioState","exports"],"sourceRoot":"../../../../src","sources":["modules/call-manager/CallManager.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","NativeManager","NativeModules","StreamInCallManager","invariant","condition","message","Error","AndroidCallManager","getAudioDeviceStatus","Platform","OS","selectAudioDevice","endpointName","chooseAudioDeviceEndpoint","addAudioDeviceChangeListener","onChange","eventEmitter","NativeEventEmitter","s","addListener","remove","IOSCallManager","showDeviceSelector","showAudioRoutePicker","SpeakerManager","setMute","mute","muteAudioOutput","unmuteAudioOutput","setForceSpeakerphoneOn","force","CallManager","android","ios","speaker","start","config","setAudioRole","audioRole","type","deviceEndpointType","setDefaultAudioDeviceEndpointType","enableStereoAudioOutput","setEnableStereoAudioOutput","stop","logAudioState","exports"],"sourceRoot":"../../../../src","sources":["modules/call-manager/CallManager.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.registerSDKGlobals = registerSDKGlobals;
7
+ var _reactNative = require("react-native");
8
+ const StreamInCallManagerNativeModule = _reactNative.NativeModules.StreamInCallManager;
9
+ const streamRNVideoSDKGlobals = {
10
+ callManager: {
11
+ setup: ({
12
+ defaultDevice
13
+ }) => {
14
+ StreamInCallManagerNativeModule.setDefaultAudioDeviceEndpointType(defaultDevice);
15
+ StreamInCallManagerNativeModule.setup();
16
+ },
17
+ start: () => {
18
+ StreamInCallManagerNativeModule.start();
19
+ },
20
+ stop: () => {
21
+ StreamInCallManagerNativeModule.stop();
22
+ }
23
+ }
24
+ };
25
+
26
+ // Note: The global type declaration for `streamRNVideoSDK` is defined in
27
+ // @stream-io/video-client/src/types.ts and is automatically available when
28
+ // importing from the client package.
29
+ function registerSDKGlobals() {
30
+ if (!global.streamRNVideoSDK) {
31
+ global.streamRNVideoSDK = streamRNVideoSDKGlobals;
32
+ }
33
+ }
34
+ //# sourceMappingURL=registerSDKGlobals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","StreamInCallManagerNativeModule","NativeModules","StreamInCallManager","streamRNVideoSDKGlobals","callManager","setup","defaultDevice","setDefaultAudioDeviceEndpointType","start","stop","registerSDKGlobals","global","streamRNVideoSDK"],"sourceRoot":"../../../../src","sources":["utils/internal/registerSDKGlobals.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAEA,MAAMC,+BAA+B,GAAGC,0BAAa,CAACC,mBAAmB;AAEzE,MAAMC,uBAAgD,GAAG;EACvDC,WAAW,EAAE;IACXC,KAAK,EAAEA,CAAC;MAAEC;IAAc,CAAC,KAAK;MAC5BN,+BAA+B,CAACO,iCAAiC,CAC/DD,aACF,CAAC;MACDN,+BAA+B,CAACK,KAAK,CAAC,CAAC;IACzC,CAAC;IACDG,KAAK,EAAEA,CAAA,KAAM;MACXR,+BAA+B,CAACQ,KAAK,CAAC,CAAC;IACzC,CAAC;IACDC,IAAI,EAAEA,CAAA,KAAM;MACVT,+BAA+B,CAACS,IAAI,CAAC,CAAC;IACxC;EACF;AACF,CAAC;;AAED;AACA;AACA;AACO,SAASC,kBAAkBA,CAAA,EAAG;EACnC,IAAI,CAACC,MAAM,CAACC,gBAAgB,EAAE;IAC5BD,MAAM,CAACC,gBAAgB,GAAGT,uBAAuB;EACnD;AACF","ignoreList":[]}
@@ -9,6 +9,7 @@ var _videoClient = require("@stream-io/video-client");
9
9
  var _libs = require("./libs");
10
10
  var _utils = require("./internal/utils");
11
11
  var _reactNative = require("react-native");
12
+ var _reactNativeWebrtc = require("@stream-io/react-native-webrtc");
12
13
  var _pushLogoutCallback = require("../internal/pushLogoutCallback");
13
14
  /**
14
15
  * This hook is used to listen to callkeep events and do the necessary actions
@@ -52,6 +53,33 @@ function setupIosCallKeepEvents(pushConfig) {
52
53
  iosCallkeepRejectCall(call_cid, callUUID, pushConfig);
53
54
  });
54
55
  }
56
+
57
+ /**
58
+ * CallKeep / CallKit audio-session events -> WebRTC (iOS)
59
+ *
60
+ * iOS CallKit is the authority that *activates* and *deactivates* the underlying `AVAudioSession`
61
+ * when a call is answered/ended from the system UI (lock screen, Call UI, Bluetooth, etc).
62
+ *
63
+ * WebRTC on iOS wraps `AVAudioSession` with `RTCAudioSession` and its AudioDeviceModule relies on
64
+ * being notified of those lifecycle transitions to correctly start/stop audio I/O and keep its
65
+ * internal activation state consistent (e.g. activation count, playout/recording start).
66
+ *
67
+ * If these callbacks don’t reach WebRTC, answering via the native dialer UI can result in:
68
+ * - no microphone capture / one-way audio
69
+ * - silent playout until the app forces an audio reconfiguration
70
+ * - flaky audio routing (speaker/earpiece/Bluetooth) across subsequent calls
71
+ *
72
+ * We forward CallKeep’s `didActivateAudioSession` / `didDeactivateAudioSession` events to WebRTC’s
73
+ * `RTCAudioSession.audioSessionDidActivate()` / `audioSessionDidDeactivate()` methods.
74
+ */
75
+ function didActivateAudioSession() {
76
+ logger.debug('didActivateAudioSession');
77
+ _reactNativeWebrtc.RTCAudioSession.audioSessionDidActivate();
78
+ }
79
+ function didDeactivateAudioSession() {
80
+ logger.debug('didDeactivateAudioSession');
81
+ _reactNativeWebrtc.RTCAudioSession.audioSessionDidDeactivate();
82
+ }
55
83
  function didDisplayIncomingCall(callUUID, payload) {
56
84
  const voipPushNotification = (0, _libs.getVoipPushNotificationLib)();
57
85
  // @ts-expect-error - call_cid is not part of RNCallKeepEventPayload
@@ -90,6 +118,16 @@ function setupIosCallKeepEvents(pushConfig) {
90
118
  }) => {
91
119
  didDisplayIncomingCall(callUUID, payload);
92
120
  });
121
+ const {
122
+ remove: removeDidActivateAudioSession
123
+ } = callkeep.addEventListener('didActivateAudioSession', () => {
124
+ didActivateAudioSession();
125
+ });
126
+ const {
127
+ remove: removeDidDeactivateAudioSession
128
+ } = callkeep.addEventListener('didDeactivateAudioSession', () => {
129
+ didDeactivateAudioSession();
130
+ });
93
131
  const {
94
132
  remove: removeDidLoadWithEvents
95
133
  } = callkeep.addEventListener('didLoadWithEvents', events => {
@@ -107,6 +145,10 @@ function setupIosCallKeepEvents(pushConfig) {
107
145
  answerCall(data.callUUID);
108
146
  } else if (name === 'RNCallKeepPerformEndCallAction') {
109
147
  endCall(data.callUUID);
148
+ } else if (name === 'RNCallKeepDidActivateAudioSession') {
149
+ didActivateAudioSession();
150
+ } else if (name === 'RNCallKeepDidDeactivateAudioSession') {
151
+ didDeactivateAudioSession();
110
152
  }
111
153
  });
112
154
  });
@@ -114,6 +156,8 @@ function setupIosCallKeepEvents(pushConfig) {
114
156
  removeAnswerCall();
115
157
  removeEndCall();
116
158
  removeDisplayIncomingCall();
159
+ removeDidActivateAudioSession();
160
+ removeDidDeactivateAudioSession();
117
161
  removeDidLoadWithEvents();
118
162
  });
119
163
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_rxSubjects","require","_videoClient","_libs","_utils","_reactNative","_pushLogoutCallback","setupIosCallKeepEvents","pushConfig","Platform","OS","ios","pushProviderName","android","incomingCallChannel","videoLoggerSystem","getLogger","debug","logger","callkeep","getCallKeepLib","getCallCid","callUUID","call_cid","NativeModules","StreamVideoReactNative","getIncomingCallCid","voipPushNotificationCallCId","RxUtils","getCurrentValue","voipPushNotificationCallCId$","next","undefined","answerCall","then","iosCallkeepAcceptCall","endCall","iosCallkeepRejectCall","didDisplayIncomingCall","payload","voipPushNotification","getVoipPushNotificationLib","AppState","currentState","processCallFromPushInBackground","voipCallkeepCallOnForegroundMap$","uuid","cid","onVoipNotificationCompleted","remove","removeAnswerCall","addEventListener","removeEndCall","removeDisplayIncomingCall","removeDidLoadWithEvents","events","Array","isArray","length","forEach","event","name","data","setPushLogoutCallback","callUUIDFromCallkeep","shouldProcessCallFromCallkeep","clearPushWSEventSubscriptions","voipCallkeepAcceptedCallOnNativeDialerMap$","pushAcceptedIncomingCallCId$","removeIncomingCall"],"sourceRoot":"../../../../src","sources":["utils/push/setupIosCallKeepEvents.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_rxSubjects","require","_videoClient","_libs","_utils","_reactNative","_reactNativeWebrtc","_pushLogoutCallback","setupIosCallKeepEvents","pushConfig","Platform","OS","ios","pushProviderName","android","incomingCallChannel","videoLoggerSystem","getLogger","debug","logger","callkeep","getCallKeepLib","getCallCid","callUUID","call_cid","NativeModules","StreamVideoReactNative","getIncomingCallCid","voipPushNotificationCallCId","RxUtils","getCurrentValue","voipPushNotificationCallCId$","next","undefined","answerCall","then","iosCallkeepAcceptCall","endCall","iosCallkeepRejectCall","didActivateAudioSession","RTCAudioSession","audioSessionDidActivate","didDeactivateAudioSession","audioSessionDidDeactivate","didDisplayIncomingCall","payload","voipPushNotification","getVoipPushNotificationLib","AppState","currentState","processCallFromPushInBackground","voipCallkeepCallOnForegroundMap$","uuid","cid","onVoipNotificationCompleted","remove","removeAnswerCall","addEventListener","removeEndCall","removeDisplayIncomingCall","removeDidActivateAudioSession","removeDidDeactivateAudioSession","removeDidLoadWithEvents","events","Array","isArray","length","forEach","event","name","data","setPushLogoutCallback","callUUIDFromCallkeep","shouldProcessCallFromCallkeep","clearPushWSEventSubscriptions","voipCallkeepAcceptedCallOnNativeDialerMap$","pushAcceptedIncomingCallCId$","removeIncomingCall"],"sourceRoot":"../../../../src","sources":["utils/push/setupIosCallKeepEvents.ts"],"mappings":"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","ignoreList":[]}
@@ -4,5 +4,5 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.version = void 0;
7
- const version = exports.version = '1.27.4';
7
+ const version = exports.version = '1.28.1';
8
8
  //# sourceMappingURL=version.js.map
@@ -8,12 +8,14 @@ import 'intl-pluralrules';
8
8
  import { registerGlobals } from '@stream-io/react-native-webrtc';
9
9
  import Logger from '@stream-io/react-native-webrtc/src/Logger';
10
10
  import { Platform } from 'react-native';
11
+ import { registerSDKGlobals } from './utils/internal/registerSDKGlobals';
11
12
 
12
13
  // We're registering globals, because our video JS client is serving SDKs that use browser based webRTC functions.
13
14
  // This will result in creation of 2 global objects: `window` and `navigator`
14
15
  // Reference: https://github.com/react-native-webrtc/react-native-webrtc/blob/16cff1523da457dbcc27bb0744ee2bad3a987c41/Documentation/BasicUsage.md#registering-globals
15
16
  if (Platform.OS !== 'web') {
16
17
  registerGlobals();
18
+ registerSDKGlobals();
17
19
  }
18
20
 
19
21
  // only enable warning and error logs from webrtc library
@@ -1 +1 @@
1
- {"version":3,"names":["setClientDetails","registerGlobals","Logger","Platform","OS","enable","ROOT_PREFIX","StreamVideo","StreamCall"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,0BAA0B;AAC3D;AACA,OAAO,wBAAwB;AAC/B;AACA,OAAO,gCAAgC;AACvC;AACA,OAAO,kBAAkB;AACzB,SAASC,eAAe,QAAQ,gCAAgC;AAChE,OAAOC,MAAM,MAAM,2CAA2C;AAC9D,SAASC,QAAQ,QAAQ,cAAc;;AAEvC;AACA;AACA;AACA,IAAIA,QAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;EACzBH,eAAe,CAAC,CAAC;AACnB;;AAEA;AACAC,MAAM,CAACG,MAAM,CAAC,GAAGH,MAAM,CAACI,WAAW,eAAe,CAAC;AAEnD,cAAc,yBAAyB;AACvC,cAAc,iCAAiC;AAC/C,cAAc,cAAc;AAC5B,cAAc,YAAY;AAC1B,cAAc,SAAS;AACvB,cAAc,SAAS;AACvB,cAAc,SAAS;AACvB,cAAc,gBAAgB;AAC9B,cAAc,wBAAwB;;AAEtC;AACA;AACA,SAASC,WAAW,QAAQ,yBAAyB;AACrD,SAASC,UAAU,QAAQ,wBAAwB;AACnD,cAAc,+BAA+B;AAE7CR,gBAAgB,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["setClientDetails","registerGlobals","Logger","Platform","registerSDKGlobals","OS","enable","ROOT_PREFIX","StreamVideo","StreamCall"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,0BAA0B;AAC3D;AACA,OAAO,wBAAwB;AAC/B;AACA,OAAO,gCAAgC;AACvC;AACA,OAAO,kBAAkB;AACzB,SAASC,eAAe,QAAQ,gCAAgC;AAChE,OAAOC,MAAM,MAAM,2CAA2C;AAC9D,SAASC,QAAQ,QAAQ,cAAc;AACvC,SAASC,kBAAkB,QAAQ,qCAAqC;;AAExE;AACA;AACA;AACA,IAAID,QAAQ,CAACE,EAAE,KAAK,KAAK,EAAE;EACzBJ,eAAe,CAAC,CAAC;EACjBG,kBAAkB,CAAC,CAAC;AACtB;;AAEA;AACAF,MAAM,CAACI,MAAM,CAAC,GAAGJ,MAAM,CAACK,WAAW,eAAe,CAAC;AAEnD,cAAc,yBAAyB;AACvC,cAAc,iCAAiC;AAC/C,cAAc,cAAc;AAC5B,cAAc,YAAY;AAC1B,cAAc,SAAS;AACvB,cAAc,SAAS;AACvB,cAAc,SAAS;AACvB,cAAc,gBAAgB;AAC9B,cAAc,wBAAwB;;AAEtC;AACA;AACA,SAASC,WAAW,QAAQ,yBAAyB;AACrD,SAASC,UAAU,QAAQ,wBAAwB;AACnD,cAAc,+BAA+B;AAE7CT,gBAAgB,CAAC,CAAC","ignoreList":[]}
@@ -80,6 +80,8 @@ export class CallManager {
80
80
  * @param config.deviceEndpointType The default audio device endpoint type to set. It can be one of the following:
81
81
  * - `'speaker'`: (Default) For normal video or voice calls.
82
82
  * - `'earpiece'`: For voice-only mobile call type scenarios.
83
+ *
84
+ * @param config.enableStereoAudioOutput Whether to enable stereo audio output. Only supported for listener audio role.
83
85
  */
84
86
  start = config => {
85
87
  NativeManager.setAudioRole(config?.audioRole ?? 'communicator');
@@ -87,6 +89,9 @@ export class CallManager {
87
89
  const type = config.deviceEndpointType ?? 'speaker';
88
90
  NativeManager.setDefaultAudioDeviceEndpointType(type);
89
91
  }
92
+ if (config?.audioRole === 'listener' && config.enableStereoAudioOutput) {
93
+ NativeManager.setEnableStereoAudioOutput(true);
94
+ }
90
95
  NativeManager.start();
91
96
  };
92
97
 
@@ -1 +1 @@
1
- {"version":3,"names":["NativeEventEmitter","NativeModules","Platform","NativeManager","StreamInCallManager","invariant","condition","message","Error","AndroidCallManager","getAudioDeviceStatus","OS","selectAudioDevice","endpointName","chooseAudioDeviceEndpoint","addAudioDeviceChangeListener","onChange","eventEmitter","s","addListener","remove","IOSCallManager","showDeviceSelector","showAudioRoutePicker","SpeakerManager","setMute","mute","muteAudioOutput","unmuteAudioOutput","setForceSpeakerphoneOn","force","CallManager","android","ios","speaker","start","config","setAudioRole","audioRole","type","deviceEndpointType","setDefaultAudioDeviceEndpointType","stop","logAudioState"],"sourceRoot":"../../../../src","sources":["modules/call-manager/CallManager.ts"],"mappings":"AAAA,SAASA,kBAAkB,EAAEC,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AAG1E,MAAMC,aAAa,GAAGF,aAAa,CAACG,mBAAmB;AAEvD,MAAMC,SAAS,GAAGA,CAACC,SAAkB,EAAEC,OAAe,KAAK;EACzD,IAAI,CAACD,SAAS,EAAE,MAAM,IAAIE,KAAK,CAACD,OAAO,CAAC;AAC1C,CAAC;AAED,MAAME,kBAAkB,CAAC;EAGvB;AACF;AACA;EACEC,oBAAoB,GAAG,MAAAA,CAAA,KAAwC;IAC7DL,SAAS,CAACH,QAAQ,CAACS,EAAE,KAAK,SAAS,EAAE,2BAA2B,CAAC;IACjE,OAAOR,aAAa,CAACO,oBAAoB,CAAC,CAAC;EAC7C,CAAC;;EAED;AACF;AACA;AACA;AACA;EACEE,iBAAiB,GAAIC,YAAoB,IAAW;IAClDR,SAAS,CAACH,QAAQ,CAACS,EAAE,KAAK,SAAS,EAAE,2BAA2B,CAAC;IACjER,aAAa,CAACW,yBAAyB,CAACD,YAAY,CAAC;EACvD,CAAC;;EAED;AACF;AACA;AACA;EACEE,4BAA4B,GAC1BC,QAAwD,IACvC;IACjBX,SAAS,CAACH,QAAQ,CAACS,EAAE,KAAK,SAAS,EAAE,2BAA2B,CAAC;IACjE,IAAI,CAACM,YAAY,KAAK,IAAIjB,kBAAkB,CAACG,aAAa,CAAC;IAC3D,MAAMe,CAAC,GAAG,IAAI,CAACD,YAAY,CAACE,WAAW,CAAC,sBAAsB,EAAEH,QAAQ,CAAC;IACzE,OAAO,MAAME,CAAC,CAACE,MAAM,CAAC,CAAC;EACzB,CAAC;AACH;AAEA,MAAMC,cAAc,CAAC;EACnB;AACF;AACA;EACEC,kBAAkB,GAAGA,CAAA,KAAY;IAC/BjB,SAAS,CAACH,QAAQ,CAACS,EAAE,KAAK,KAAK,EAAE,uBAAuB,CAAC;IACzDR,aAAa,CAACoB,oBAAoB,CAAC,CAAC;EACtC,CAAC;AACH;AAEA,MAAMC,cAAc,CAAC;EACnB;AACF;AACA;EACEC,OAAO,GAAIC,IAAa,IAAW;IACjC,IAAIA,IAAI,EAAE;MACRvB,aAAa,CAACwB,eAAe,CAAC,CAAC;IACjC,CAAC,MAAM;MACLxB,aAAa,CAACyB,iBAAiB,CAAC,CAAC;IACnC;EACF,CAAC;;EAED;AACF;AACA;EACEC,sBAAsB,GAAIC,KAAc,IAAW;IACjD3B,aAAa,CAAC0B,sBAAsB,CAACC,KAAK,CAAC;EAC7C,CAAC;AACH;AAEA,OAAO,MAAMC,WAAW,CAAC;EACvBC,OAAO,GAAG,IAAIvB,kBAAkB,CAAC,CAAC;EAClCwB,GAAG,GAAG,IAAIZ,cAAc,CAAC,CAAC;EAC1Ba,OAAO,GAAG,IAAIV,cAAc,CAAC,CAAC;;EAE9B;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEW,KAAK,GAAIC,MAAkC,IAAW;IACpDjC,aAAa,CAACkC,YAAY,CAACD,MAAM,EAAEE,SAAS,IAAI,cAAc,CAAC;IAC/D,IAAIF,MAAM,EAAEE,SAAS,KAAK,cAAc,EAAE;MACxC,MAAMC,IAAI,GAAGH,MAAM,CAACI,kBAAkB,IAAI,SAAS;MACnDrC,aAAa,CAACsC,iCAAiC,CAACF,IAAI,CAAC;IACvD;IACApC,aAAa,CAACgC,KAAK,CAAC,CAAC;EACvB,CAAC;;EAED;AACF;AACA;EACEO,IAAI,GAAGA,CAAA,KAAY;IACjBvC,aAAa,CAACuC,IAAI,CAAC,CAAC;EACtB,CAAC;;EAED;AACF;AACA;AACA;EACEC,aAAa,GAAGA,CAAA,KAAYxC,aAAa,CAACwC,aAAa,CAAC,CAAC;AAC3D","ignoreList":[]}
1
+ {"version":3,"names":["NativeEventEmitter","NativeModules","Platform","NativeManager","StreamInCallManager","invariant","condition","message","Error","AndroidCallManager","getAudioDeviceStatus","OS","selectAudioDevice","endpointName","chooseAudioDeviceEndpoint","addAudioDeviceChangeListener","onChange","eventEmitter","s","addListener","remove","IOSCallManager","showDeviceSelector","showAudioRoutePicker","SpeakerManager","setMute","mute","muteAudioOutput","unmuteAudioOutput","setForceSpeakerphoneOn","force","CallManager","android","ios","speaker","start","config","setAudioRole","audioRole","type","deviceEndpointType","setDefaultAudioDeviceEndpointType","enableStereoAudioOutput","setEnableStereoAudioOutput","stop","logAudioState"],"sourceRoot":"../../../../src","sources":["modules/call-manager/CallManager.ts"],"mappings":"AAAA,SAASA,kBAAkB,EAAEC,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AAG1E,MAAMC,aAAa,GAAGF,aAAa,CAACG,mBAAmB;AAEvD,MAAMC,SAAS,GAAGA,CAACC,SAAkB,EAAEC,OAAe,KAAK;EACzD,IAAI,CAACD,SAAS,EAAE,MAAM,IAAIE,KAAK,CAACD,OAAO,CAAC;AAC1C,CAAC;AAED,MAAME,kBAAkB,CAAC;EAGvB;AACF;AACA;EACEC,oBAAoB,GAAG,MAAAA,CAAA,KAAwC;IAC7DL,SAAS,CAACH,QAAQ,CAACS,EAAE,KAAK,SAAS,EAAE,2BAA2B,CAAC;IACjE,OAAOR,aAAa,CAACO,oBAAoB,CAAC,CAAC;EAC7C,CAAC;;EAED;AACF;AACA;AACA;AACA;EACEE,iBAAiB,GAAIC,YAAoB,IAAW;IAClDR,SAAS,CAACH,QAAQ,CAACS,EAAE,KAAK,SAAS,EAAE,2BAA2B,CAAC;IACjER,aAAa,CAACW,yBAAyB,CAACD,YAAY,CAAC;EACvD,CAAC;;EAED;AACF;AACA;AACA;EACEE,4BAA4B,GAC1BC,QAAwD,IACvC;IACjBX,SAAS,CAACH,QAAQ,CAACS,EAAE,KAAK,SAAS,EAAE,2BAA2B,CAAC;IACjE,IAAI,CAACM,YAAY,KAAK,IAAIjB,kBAAkB,CAACG,aAAa,CAAC;IAC3D,MAAMe,CAAC,GAAG,IAAI,CAACD,YAAY,CAACE,WAAW,CAAC,sBAAsB,EAAEH,QAAQ,CAAC;IACzE,OAAO,MAAME,CAAC,CAACE,MAAM,CAAC,CAAC;EACzB,CAAC;AACH;AAEA,MAAMC,cAAc,CAAC;EACnB;AACF;AACA;EACEC,kBAAkB,GAAGA,CAAA,KAAY;IAC/BjB,SAAS,CAACH,QAAQ,CAACS,EAAE,KAAK,KAAK,EAAE,uBAAuB,CAAC;IACzDR,aAAa,CAACoB,oBAAoB,CAAC,CAAC;EACtC,CAAC;AACH;AAEA,MAAMC,cAAc,CAAC;EACnB;AACF;AACA;EACEC,OAAO,GAAIC,IAAa,IAAW;IACjC,IAAIA,IAAI,EAAE;MACRvB,aAAa,CAACwB,eAAe,CAAC,CAAC;IACjC,CAAC,MAAM;MACLxB,aAAa,CAACyB,iBAAiB,CAAC,CAAC;IACnC;EACF,CAAC;;EAED;AACF;AACA;EACEC,sBAAsB,GAAIC,KAAc,IAAW;IACjD3B,aAAa,CAAC0B,sBAAsB,CAACC,KAAK,CAAC;EAC7C,CAAC;AACH;AAEA,OAAO,MAAMC,WAAW,CAAC;EACvBC,OAAO,GAAG,IAAIvB,kBAAkB,CAAC,CAAC;EAClCwB,GAAG,GAAG,IAAIZ,cAAc,CAAC,CAAC;EAC1Ba,OAAO,GAAG,IAAIV,cAAc,CAAC,CAAC;;EAE9B;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEW,KAAK,GAAIC,MAAkC,IAAW;IACpDjC,aAAa,CAACkC,YAAY,CAACD,MAAM,EAAEE,SAAS,IAAI,cAAc,CAAC;IAC/D,IAAIF,MAAM,EAAEE,SAAS,KAAK,cAAc,EAAE;MACxC,MAAMC,IAAI,GAAGH,MAAM,CAACI,kBAAkB,IAAI,SAAS;MACnDrC,aAAa,CAACsC,iCAAiC,CAACF,IAAI,CAAC;IACvD;IACA,IAAIH,MAAM,EAAEE,SAAS,KAAK,UAAU,IAAIF,MAAM,CAACM,uBAAuB,EAAE;MACtEvC,aAAa,CAACwC,0BAA0B,CAAC,IAAI,CAAC;IAChD;IACAxC,aAAa,CAACgC,KAAK,CAAC,CAAC;EACvB,CAAC;;EAED;AACF;AACA;EACES,IAAI,GAAGA,CAAA,KAAY;IACjBzC,aAAa,CAACyC,IAAI,CAAC,CAAC;EACtB,CAAC;;EAED;AACF;AACA;AACA;EACEC,aAAa,GAAGA,CAAA,KAAY1C,aAAa,CAAC0C,aAAa,CAAC,CAAC;AAC3D","ignoreList":[]}
@@ -0,0 +1,28 @@
1
+ import { NativeModules } from 'react-native';
2
+ const StreamInCallManagerNativeModule = NativeModules.StreamInCallManager;
3
+ const streamRNVideoSDKGlobals = {
4
+ callManager: {
5
+ setup: ({
6
+ defaultDevice
7
+ }) => {
8
+ StreamInCallManagerNativeModule.setDefaultAudioDeviceEndpointType(defaultDevice);
9
+ StreamInCallManagerNativeModule.setup();
10
+ },
11
+ start: () => {
12
+ StreamInCallManagerNativeModule.start();
13
+ },
14
+ stop: () => {
15
+ StreamInCallManagerNativeModule.stop();
16
+ }
17
+ }
18
+ };
19
+
20
+ // Note: The global type declaration for `streamRNVideoSDK` is defined in
21
+ // @stream-io/video-client/src/types.ts and is automatically available when
22
+ // importing from the client package.
23
+ export function registerSDKGlobals() {
24
+ if (!global.streamRNVideoSDK) {
25
+ global.streamRNVideoSDK = streamRNVideoSDKGlobals;
26
+ }
27
+ }
28
+ //# sourceMappingURL=registerSDKGlobals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["NativeModules","StreamInCallManagerNativeModule","StreamInCallManager","streamRNVideoSDKGlobals","callManager","setup","defaultDevice","setDefaultAudioDeviceEndpointType","start","stop","registerSDKGlobals","global","streamRNVideoSDK"],"sourceRoot":"../../../../src","sources":["utils/internal/registerSDKGlobals.ts"],"mappings":"AACA,SAASA,aAAa,QAAQ,cAAc;AAE5C,MAAMC,+BAA+B,GAAGD,aAAa,CAACE,mBAAmB;AAEzE,MAAMC,uBAAgD,GAAG;EACvDC,WAAW,EAAE;IACXC,KAAK,EAAEA,CAAC;MAAEC;IAAc,CAAC,KAAK;MAC5BL,+BAA+B,CAACM,iCAAiC,CAC/DD,aACF,CAAC;MACDL,+BAA+B,CAACI,KAAK,CAAC,CAAC;IACzC,CAAC;IACDG,KAAK,EAAEA,CAAA,KAAM;MACXP,+BAA+B,CAACO,KAAK,CAAC,CAAC;IACzC,CAAC;IACDC,IAAI,EAAEA,CAAA,KAAM;MACVR,+BAA+B,CAACQ,IAAI,CAAC,CAAC;IACxC;EACF;AACF,CAAC;;AAED;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAAA,EAAG;EACnC,IAAI,CAACC,MAAM,CAACC,gBAAgB,EAAE;IAC5BD,MAAM,CAACC,gBAAgB,GAAGT,uBAAuB;EACnD;AACF","ignoreList":[]}