@stream-io/video-react-native-sdk 0.3.2 → 0.3.4
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.
- package/CHANGELOG.md +18 -0
- package/dist/commonjs/providers/MediaStreamManagement.js +24 -61
- package/dist/commonjs/providers/MediaStreamManagement.js.map +1 -1
- package/dist/commonjs/version.js +1 -1
- package/dist/module/providers/MediaStreamManagement.js +25 -62
- package/dist/module/providers/MediaStreamManagement.js.map +1 -1
- package/dist/module/version.js +1 -1
- package/dist/typescript/providers/MediaStreamManagement.d.ts.map +1 -1
- package/dist/typescript/version.d.ts +1 -1
- package/package.json +3 -3
- package/src/providers/MediaStreamManagement.tsx +26 -57
- package/src/version.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
|
|
4
4
|
|
|
5
|
+
### [0.3.4](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-0.3.3...@stream-io/video-react-native-sdk-0.3.4) (2023-12-06)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* **react-native:** unnecessary setState in initial device management ([#1211](https://github.com/GetStream/stream-video-js/issues/1211)) ([c9a10c3](https://github.com/GetStream/stream-video-js/commit/c9a10c3938aeddcae0008d4de84a604c873dcbde))
|
|
11
|
+
|
|
12
|
+
### [0.3.3](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-0.3.2...@stream-io/video-react-native-sdk-0.3.3) (2023-12-05)
|
|
13
|
+
|
|
14
|
+
### Dependency Updates
|
|
15
|
+
|
|
16
|
+
* `@stream-io/video-client` updated to version `0.5.1`
|
|
17
|
+
* `@stream-io/video-react-bindings` updated to version `0.3.12`
|
|
18
|
+
|
|
19
|
+
### Features
|
|
20
|
+
|
|
21
|
+
* **client:** speaking while muted in React Native using temporary peer connection ([#1207](https://github.com/GetStream/stream-video-js/issues/1207)) ([9093006](https://github.com/GetStream/stream-video-js/commit/90930063503b6dfb83572dad8a31e45b16bf1685))
|
|
22
|
+
|
|
5
23
|
### [0.3.2](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-0.3.1...@stream-io/video-react-native-sdk-0.3.2) (2023-12-04)
|
|
6
24
|
|
|
7
25
|
|
|
@@ -46,19 +46,6 @@ const MediaStreamManagement = _ref => {
|
|
|
46
46
|
};
|
|
47
47
|
}, [settings === null || settings === void 0 ? void 0 : settings.video.target_resolution.width, settings === null || settings === void 0 ? void 0 : settings.video.target_resolution.height, settings === null || settings === void 0 ? void 0 : settings.video.target_resolution.bitrate]);
|
|
48
48
|
|
|
49
|
-
// Get the target resolution from the default device settings and memoize it
|
|
50
|
-
// Memoization is needed to avoid unnecessary useEffect triggers
|
|
51
|
-
const defaultOnSetting = (0, _react.useMemo)(() => {
|
|
52
|
-
if ((settings === null || settings === void 0 ? void 0 : settings.audio.mic_default_on) === undefined || (settings === null || settings === void 0 ? void 0 : settings.video.camera_default_on) === undefined) {
|
|
53
|
-
return undefined;
|
|
54
|
-
} else {
|
|
55
|
-
return {
|
|
56
|
-
mic_default_on: settings === null || settings === void 0 ? void 0 : settings.audio.mic_default_on,
|
|
57
|
-
camera_default_on: settings === null || settings === void 0 ? void 0 : settings.video.camera_default_on
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
}, [settings === null || settings === void 0 ? void 0 : settings.audio.mic_default_on, settings === null || settings === void 0 ? void 0 : settings.video.camera_default_on]);
|
|
61
|
-
|
|
62
49
|
// Resume/Disable video stream tracks when app goes to background/foreground
|
|
63
50
|
// To save on CPU resources
|
|
64
51
|
(0, _hooks.useAppStateListener)(() => {
|
|
@@ -80,57 +67,33 @@ const MediaStreamManagement = _ref => {
|
|
|
80
67
|
call === null || call === void 0 || (_call$camera3 = call.camera) === null || _call$camera3 === void 0 || _call$camera3.disable();
|
|
81
68
|
}
|
|
82
69
|
});
|
|
83
|
-
|
|
70
|
+
|
|
71
|
+
/*
|
|
72
|
+
* This is the object is used to track the initial audio/video enablement
|
|
73
|
+
* Uses backend settings or the Prop to set initial audio/video enabled
|
|
74
|
+
* Backend settings is applied only if the prop was undefined -- meaning user did not provide any value
|
|
75
|
+
*/
|
|
76
|
+
const {
|
|
84
77
|
initialAudioEnabled,
|
|
85
78
|
initialVideoEnabled
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
(0, _react.useEffect)(() => {
|
|
94
|
-
if (!defaultOnSetting) {
|
|
95
|
-
return;
|
|
79
|
+
} = (0, _react.useMemo)(() => {
|
|
80
|
+
let _initialAudioEnabled;
|
|
81
|
+
let _initialVideoEnabled;
|
|
82
|
+
if (propInitialAudioEnabled !== undefined) {
|
|
83
|
+
_initialAudioEnabled = propInitialAudioEnabled;
|
|
84
|
+
} else if ((settings === null || settings === void 0 ? void 0 : settings.audio.mic_default_on) !== undefined) {
|
|
85
|
+
_initialAudioEnabled = settings === null || settings === void 0 ? void 0 : settings.audio.mic_default_on;
|
|
96
86
|
}
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
if (typeof propInitialVideoEnabled === 'undefined') {
|
|
108
|
-
initVideo = camera_default_on;
|
|
109
|
-
}
|
|
110
|
-
return {
|
|
111
|
-
initialAudioEnabled: initAudio,
|
|
112
|
-
initialVideoEnabled: initVideo
|
|
113
|
-
};
|
|
114
|
-
});
|
|
115
|
-
}, [propInitialAudioEnabled, propInitialVideoEnabled, defaultOnSetting]);
|
|
116
|
-
|
|
117
|
-
// Apply SDK settings to set the initial audio/video enabled state
|
|
118
|
-
(0, _react.useEffect)(() => {
|
|
119
|
-
setInitialDeviceState(prev => {
|
|
120
|
-
let initAudio = prev.initialAudioEnabled;
|
|
121
|
-
if (typeof propInitialAudioEnabled !== 'undefined') {
|
|
122
|
-
initAudio = propInitialAudioEnabled;
|
|
123
|
-
}
|
|
124
|
-
let initVideo = prev.initialVideoEnabled;
|
|
125
|
-
if (typeof propInitialVideoEnabled !== 'undefined') {
|
|
126
|
-
initVideo = propInitialVideoEnabled;
|
|
127
|
-
}
|
|
128
|
-
return {
|
|
129
|
-
initialAudioEnabled: initAudio,
|
|
130
|
-
initialVideoEnabled: initVideo
|
|
131
|
-
};
|
|
132
|
-
});
|
|
133
|
-
}, [propInitialAudioEnabled, propInitialVideoEnabled]);
|
|
87
|
+
if (propInitialVideoEnabled !== undefined) {
|
|
88
|
+
_initialVideoEnabled = propInitialVideoEnabled;
|
|
89
|
+
} else if ((settings === null || settings === void 0 ? void 0 : settings.video.camera_default_on) !== undefined) {
|
|
90
|
+
_initialVideoEnabled = settings === null || settings === void 0 ? void 0 : settings.video.camera_default_on;
|
|
91
|
+
}
|
|
92
|
+
return {
|
|
93
|
+
initialAudioEnabled: _initialAudioEnabled,
|
|
94
|
+
initialVideoEnabled: _initialVideoEnabled
|
|
95
|
+
};
|
|
96
|
+
}, [settings === null || settings === void 0 ? void 0 : settings.audio.mic_default_on, settings === null || settings === void 0 ? void 0 : settings.video.camera_default_on, propInitialAudioEnabled, propInitialVideoEnabled]);
|
|
134
97
|
|
|
135
98
|
// The main logic
|
|
136
99
|
// Enable or Disable the audio/video stream based on the initial state
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_videoReactBindings","_hooks","_reactNative","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","MediaStreamManagement","_ref","initialAudioEnabled","propInitialAudioEnabled","initialVideoEnabled","propInitialVideoEnabled","children","useCall","useCallSettings","useCallStateHooks","settings","targetResolutionSetting","useMemo","_settings$video$targe","_settings$video$targe2","_settings$video$targe3","video","target_resolution","width","undefined","height","bitrate","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_videoReactBindings","_hooks","_reactNative","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","MediaStreamManagement","_ref","initialAudioEnabled","propInitialAudioEnabled","initialVideoEnabled","propInitialVideoEnabled","children","useCall","useCallSettings","useCallStateHooks","settings","targetResolutionSetting","useMemo","_settings$video$targe","_settings$video$targe2","_settings$video$targe3","video","target_resolution","width","undefined","height","bitrate","useAppStateListener","_call$camera","camera","resume","Platform","OS","_NativeModules$Stream","NativeModules","StreamVideoReactNative","isInPiPMode","then","isInPiP","_call$camera2","disable","_call$camera3","_initialAudioEnabled","_initialVideoEnabled","audio","mic_default_on","camera_default_on","useEffect","microphone","enable","selectTargetResolution","createElement","Fragment","exports"],"sourceRoot":"../../../src","sources":["providers/MediaStreamManagement.tsx"],"mappings":"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"}
|
package/dist/commonjs/version.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useEffect, useMemo
|
|
1
|
+
import React, { useEffect, useMemo } from 'react';
|
|
2
2
|
import { useCall, useCallStateHooks } from '@stream-io/video-react-bindings';
|
|
3
3
|
import { useAppStateListener } from '../utils/hooks';
|
|
4
4
|
import { NativeModules, Platform } from 'react-native';
|
|
@@ -38,19 +38,6 @@ export const MediaStreamManagement = _ref => {
|
|
|
38
38
|
};
|
|
39
39
|
}, [settings === null || settings === void 0 ? void 0 : settings.video.target_resolution.width, settings === null || settings === void 0 ? void 0 : settings.video.target_resolution.height, settings === null || settings === void 0 ? void 0 : settings.video.target_resolution.bitrate]);
|
|
40
40
|
|
|
41
|
-
// Get the target resolution from the default device settings and memoize it
|
|
42
|
-
// Memoization is needed to avoid unnecessary useEffect triggers
|
|
43
|
-
const defaultOnSetting = useMemo(() => {
|
|
44
|
-
if ((settings === null || settings === void 0 ? void 0 : settings.audio.mic_default_on) === undefined || (settings === null || settings === void 0 ? void 0 : settings.video.camera_default_on) === undefined) {
|
|
45
|
-
return undefined;
|
|
46
|
-
} else {
|
|
47
|
-
return {
|
|
48
|
-
mic_default_on: settings === null || settings === void 0 ? void 0 : settings.audio.mic_default_on,
|
|
49
|
-
camera_default_on: settings === null || settings === void 0 ? void 0 : settings.video.camera_default_on
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
}, [settings === null || settings === void 0 ? void 0 : settings.audio.mic_default_on, settings === null || settings === void 0 ? void 0 : settings.video.camera_default_on]);
|
|
53
|
-
|
|
54
41
|
// Resume/Disable video stream tracks when app goes to background/foreground
|
|
55
42
|
// To save on CPU resources
|
|
56
43
|
useAppStateListener(() => {
|
|
@@ -72,57 +59,33 @@ export const MediaStreamManagement = _ref => {
|
|
|
72
59
|
call === null || call === void 0 || (_call$camera3 = call.camera) === null || _call$camera3 === void 0 || _call$camera3.disable();
|
|
73
60
|
}
|
|
74
61
|
});
|
|
75
|
-
|
|
62
|
+
|
|
63
|
+
/*
|
|
64
|
+
* This is the object is used to track the initial audio/video enablement
|
|
65
|
+
* Uses backend settings or the Prop to set initial audio/video enabled
|
|
66
|
+
* Backend settings is applied only if the prop was undefined -- meaning user did not provide any value
|
|
67
|
+
*/
|
|
68
|
+
const {
|
|
76
69
|
initialAudioEnabled,
|
|
77
70
|
initialVideoEnabled
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
useEffect(() => {
|
|
86
|
-
if (!defaultOnSetting) {
|
|
87
|
-
return;
|
|
71
|
+
} = useMemo(() => {
|
|
72
|
+
let _initialAudioEnabled;
|
|
73
|
+
let _initialVideoEnabled;
|
|
74
|
+
if (propInitialAudioEnabled !== undefined) {
|
|
75
|
+
_initialAudioEnabled = propInitialAudioEnabled;
|
|
76
|
+
} else if ((settings === null || settings === void 0 ? void 0 : settings.audio.mic_default_on) !== undefined) {
|
|
77
|
+
_initialAudioEnabled = settings === null || settings === void 0 ? void 0 : settings.audio.mic_default_on;
|
|
88
78
|
}
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
if (typeof propInitialVideoEnabled === 'undefined') {
|
|
100
|
-
initVideo = camera_default_on;
|
|
101
|
-
}
|
|
102
|
-
return {
|
|
103
|
-
initialAudioEnabled: initAudio,
|
|
104
|
-
initialVideoEnabled: initVideo
|
|
105
|
-
};
|
|
106
|
-
});
|
|
107
|
-
}, [propInitialAudioEnabled, propInitialVideoEnabled, defaultOnSetting]);
|
|
108
|
-
|
|
109
|
-
// Apply SDK settings to set the initial audio/video enabled state
|
|
110
|
-
useEffect(() => {
|
|
111
|
-
setInitialDeviceState(prev => {
|
|
112
|
-
let initAudio = prev.initialAudioEnabled;
|
|
113
|
-
if (typeof propInitialAudioEnabled !== 'undefined') {
|
|
114
|
-
initAudio = propInitialAudioEnabled;
|
|
115
|
-
}
|
|
116
|
-
let initVideo = prev.initialVideoEnabled;
|
|
117
|
-
if (typeof propInitialVideoEnabled !== 'undefined') {
|
|
118
|
-
initVideo = propInitialVideoEnabled;
|
|
119
|
-
}
|
|
120
|
-
return {
|
|
121
|
-
initialAudioEnabled: initAudio,
|
|
122
|
-
initialVideoEnabled: initVideo
|
|
123
|
-
};
|
|
124
|
-
});
|
|
125
|
-
}, [propInitialAudioEnabled, propInitialVideoEnabled]);
|
|
79
|
+
if (propInitialVideoEnabled !== undefined) {
|
|
80
|
+
_initialVideoEnabled = propInitialVideoEnabled;
|
|
81
|
+
} else if ((settings === null || settings === void 0 ? void 0 : settings.video.camera_default_on) !== undefined) {
|
|
82
|
+
_initialVideoEnabled = settings === null || settings === void 0 ? void 0 : settings.video.camera_default_on;
|
|
83
|
+
}
|
|
84
|
+
return {
|
|
85
|
+
initialAudioEnabled: _initialAudioEnabled,
|
|
86
|
+
initialVideoEnabled: _initialVideoEnabled
|
|
87
|
+
};
|
|
88
|
+
}, [settings === null || settings === void 0 ? void 0 : settings.audio.mic_default_on, settings === null || settings === void 0 ? void 0 : settings.video.camera_default_on, propInitialAudioEnabled, propInitialVideoEnabled]);
|
|
126
89
|
|
|
127
90
|
// The main logic
|
|
128
91
|
// Enable or Disable the audio/video stream based on the initial state
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useMemo","
|
|
1
|
+
{"version":3,"names":["React","useEffect","useMemo","useCall","useCallStateHooks","useAppStateListener","NativeModules","Platform","MediaStreamManagement","_ref","initialAudioEnabled","propInitialAudioEnabled","initialVideoEnabled","propInitialVideoEnabled","children","call","useCallSettings","settings","targetResolutionSetting","_settings$video$targe","_settings$video$targe2","_settings$video$targe3","video","target_resolution","width","undefined","height","bitrate","_call$camera","camera","resume","OS","_NativeModules$Stream","StreamVideoReactNative","isInPiPMode","then","isInPiP","_call$camera2","disable","_call$camera3","_initialAudioEnabled","_initialVideoEnabled","audio","mic_default_on","camera_default_on","microphone","enable","selectTargetResolution","createElement","Fragment"],"sourceRoot":"../../../src","sources":["providers/MediaStreamManagement.tsx"],"mappings":"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"}
|
package/dist/module/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const version = '0.3.
|
|
1
|
+
export const version = '0.3.4';
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaStreamManagement.d.ts","sourceRoot":"","sources":["../../../src/providers/MediaStreamManagement.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"MediaStreamManagement.d.ts","sourceRoot":"","sources":["../../../src/providers/MediaStreamManagement.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAAsB,MAAM,OAAO,CAAC;AAMrE,MAAM,MAAM,wBAAwB,GAAG;IACrC;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB,8GAI/B,kBAAkB,wBAAwB,CAAC,sBA6G7C,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const version = "0.3.
|
|
1
|
+
export declare const version = "0.3.4";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stream-io/video-react-native-sdk",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.4",
|
|
4
4
|
"packageManager": "yarn@3.2.4",
|
|
5
5
|
"main": "dist/commonjs/index.js",
|
|
6
6
|
"module": "dist/module/index.js",
|
|
@@ -45,8 +45,8 @@
|
|
|
45
45
|
"!**/.*"
|
|
46
46
|
],
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"@stream-io/video-client": "^0.5.
|
|
49
|
-
"@stream-io/video-react-bindings": "^0.3.
|
|
48
|
+
"@stream-io/video-client": "^0.5.1",
|
|
49
|
+
"@stream-io/video-react-bindings": "^0.3.12",
|
|
50
50
|
"intl-pluralrules": "2.0.1",
|
|
51
51
|
"lodash.merge": "^4.6.2",
|
|
52
52
|
"react-native-url-polyfill": "1.3.0",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { PropsWithChildren, useEffect, useMemo
|
|
1
|
+
import React, { PropsWithChildren, useEffect, useMemo } from 'react';
|
|
2
2
|
import { useCall, useCallStateHooks } from '@stream-io/video-react-bindings';
|
|
3
3
|
import { useAppStateListener } from '../utils/hooks';
|
|
4
4
|
import { NativeModules, Platform } from 'react-native';
|
|
@@ -55,22 +55,6 @@ export const MediaStreamManagement = ({
|
|
|
55
55
|
settings?.video.target_resolution.bitrate,
|
|
56
56
|
]);
|
|
57
57
|
|
|
58
|
-
// Get the target resolution from the default device settings and memoize it
|
|
59
|
-
// Memoization is needed to avoid unnecessary useEffect triggers
|
|
60
|
-
const defaultOnSetting = useMemo(() => {
|
|
61
|
-
if (
|
|
62
|
-
settings?.audio.mic_default_on === undefined ||
|
|
63
|
-
settings?.video.camera_default_on === undefined
|
|
64
|
-
) {
|
|
65
|
-
return undefined;
|
|
66
|
-
} else {
|
|
67
|
-
return {
|
|
68
|
-
mic_default_on: settings?.audio.mic_default_on,
|
|
69
|
-
camera_default_on: settings?.video.camera_default_on,
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
}, [settings?.audio.mic_default_on, settings?.video.camera_default_on]);
|
|
73
|
-
|
|
74
58
|
// Resume/Disable video stream tracks when app goes to background/foreground
|
|
75
59
|
// To save on CPU resources
|
|
76
60
|
useAppStateListener(
|
|
@@ -94,51 +78,36 @@ export const MediaStreamManagement = ({
|
|
|
94
78
|
},
|
|
95
79
|
);
|
|
96
80
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
const { mic_default_on, camera_default_on } = defaultOnSetting;
|
|
111
|
-
setInitialDeviceState((prev) => {
|
|
112
|
-
let initAudio = prev.initialAudioEnabled;
|
|
113
|
-
if (typeof propInitialAudioEnabled === 'undefined') {
|
|
114
|
-
initAudio = mic_default_on;
|
|
115
|
-
}
|
|
116
|
-
let initVideo = prev.initialVideoEnabled;
|
|
117
|
-
if (typeof propInitialVideoEnabled === 'undefined') {
|
|
118
|
-
initVideo = camera_default_on;
|
|
81
|
+
/*
|
|
82
|
+
* This is the object is used to track the initial audio/video enablement
|
|
83
|
+
* Uses backend settings or the Prop to set initial audio/video enabled
|
|
84
|
+
* Backend settings is applied only if the prop was undefined -- meaning user did not provide any value
|
|
85
|
+
*/
|
|
86
|
+
const { initialAudioEnabled, initialVideoEnabled } =
|
|
87
|
+
useMemo<MediaDevicesInitialState>(() => {
|
|
88
|
+
let _initialAudioEnabled: boolean | undefined;
|
|
89
|
+
let _initialVideoEnabled: boolean | undefined;
|
|
90
|
+
if (propInitialAudioEnabled !== undefined) {
|
|
91
|
+
_initialAudioEnabled = propInitialAudioEnabled;
|
|
92
|
+
} else if (settings?.audio.mic_default_on !== undefined) {
|
|
93
|
+
_initialAudioEnabled = settings?.audio.mic_default_on;
|
|
119
94
|
}
|
|
120
|
-
return { initialAudioEnabled: initAudio, initialVideoEnabled: initVideo };
|
|
121
|
-
});
|
|
122
|
-
}, [propInitialAudioEnabled, propInitialVideoEnabled, defaultOnSetting]);
|
|
123
95
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
if (typeof propInitialAudioEnabled !== 'undefined') {
|
|
129
|
-
initAudio = propInitialAudioEnabled;
|
|
96
|
+
if (propInitialVideoEnabled !== undefined) {
|
|
97
|
+
_initialVideoEnabled = propInitialVideoEnabled;
|
|
98
|
+
} else if (settings?.video.camera_default_on !== undefined) {
|
|
99
|
+
_initialVideoEnabled = settings?.video.camera_default_on;
|
|
130
100
|
}
|
|
131
|
-
let initVideo = prev.initialVideoEnabled;
|
|
132
|
-
if (typeof propInitialVideoEnabled !== 'undefined') {
|
|
133
|
-
initVideo = propInitialVideoEnabled;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
101
|
return {
|
|
137
|
-
initialAudioEnabled:
|
|
138
|
-
initialVideoEnabled:
|
|
102
|
+
initialAudioEnabled: _initialAudioEnabled,
|
|
103
|
+
initialVideoEnabled: _initialVideoEnabled,
|
|
139
104
|
};
|
|
140
|
-
}
|
|
141
|
-
|
|
105
|
+
}, [
|
|
106
|
+
settings?.audio.mic_default_on,
|
|
107
|
+
settings?.video.camera_default_on,
|
|
108
|
+
propInitialAudioEnabled,
|
|
109
|
+
propInitialVideoEnabled,
|
|
110
|
+
]);
|
|
142
111
|
|
|
143
112
|
// The main logic
|
|
144
113
|
// Enable or Disable the audio/video stream based on the initial state
|
package/src/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const version = '0.3.
|
|
1
|
+
export const version = '0.3.4';
|