@stream-io/video-react-native-sdk 0.3.0 → 0.3.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.
- package/CHANGELOG.md +7 -0
- package/dist/commonjs/providers/MediaStreamManagement.js +39 -12
- package/dist/commonjs/providers/MediaStreamManagement.js.map +1 -1
- package/dist/commonjs/version.js +1 -1
- package/dist/module/providers/MediaStreamManagement.js +40 -13
- 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 +1 -1
- package/src/providers/MediaStreamManagement.tsx +50 -12
- package/src/version.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
|
|
4
4
|
|
|
5
|
+
### [0.3.1](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-0.3.0...@stream-io/video-react-native-sdk-0.3.1) (2023-11-30)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* **react-native:** do not trigger initial device setting after join ([204c303](https://github.com/GetStream/stream-video-js/commit/204c303353c536c44b77350bb49c117f21e093c5))
|
|
11
|
+
|
|
5
12
|
## [0.3.0](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-0.2.14...@stream-io/video-react-native-sdk-0.3.0) (2023-11-29)
|
|
6
13
|
|
|
7
14
|
### Dependency Updates
|
|
@@ -30,6 +30,34 @@ const MediaStreamManagement = _ref => {
|
|
|
30
30
|
const {
|
|
31
31
|
useCallSettings
|
|
32
32
|
} = (0, _videoReactBindings.useCallStateHooks)();
|
|
33
|
+
const settings = useCallSettings();
|
|
34
|
+
|
|
35
|
+
// Get the target resolution from the settings and memoize it
|
|
36
|
+
// Memoization is needed to avoid unnecessary useEffect triggers
|
|
37
|
+
const targetResolutionSetting = (0, _react.useMemo)(() => {
|
|
38
|
+
var _settings$video$targe, _settings$video$targe2, _settings$video$targe3;
|
|
39
|
+
if ((settings === null || settings === void 0 || (_settings$video$targe = settings.video.target_resolution) === null || _settings$video$targe === void 0 ? void 0 : _settings$video$targe.width) === undefined || (settings === null || settings === void 0 || (_settings$video$targe2 = settings.video.target_resolution) === null || _settings$video$targe2 === void 0 ? void 0 : _settings$video$targe2.height) === undefined || (settings === null || settings === void 0 || (_settings$video$targe3 = settings.video.target_resolution) === null || _settings$video$targe3 === void 0 ? void 0 : _settings$video$targe3.bitrate) === undefined) {
|
|
40
|
+
return undefined;
|
|
41
|
+
}
|
|
42
|
+
return {
|
|
43
|
+
width: settings === null || settings === void 0 ? void 0 : settings.video.target_resolution.width,
|
|
44
|
+
height: settings === null || settings === void 0 ? void 0 : settings.video.target_resolution.height,
|
|
45
|
+
bitrate: settings === null || settings === void 0 ? void 0 : settings.video.target_resolution.bitrate
|
|
46
|
+
};
|
|
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
|
+
|
|
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]);
|
|
33
61
|
|
|
34
62
|
// Resume/Disable video stream tracks when app goes to background/foreground
|
|
35
63
|
// To save on CPU resources
|
|
@@ -59,33 +87,32 @@ const MediaStreamManagement = _ref => {
|
|
|
59
87
|
initialAudioEnabled: undefined,
|
|
60
88
|
initialVideoEnabled: undefined
|
|
61
89
|
});
|
|
62
|
-
const settings = useCallSettings();
|
|
63
90
|
|
|
64
91
|
// Use backend settings to set initial audio/video enabled state
|
|
65
92
|
// It is applied only if the prop was undefined -- meaning user did not provide any value
|
|
66
93
|
(0, _react.useEffect)(() => {
|
|
67
|
-
if (!
|
|
94
|
+
if (!defaultOnSetting) {
|
|
68
95
|
return;
|
|
69
96
|
}
|
|
70
97
|
const {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
} =
|
|
98
|
+
mic_default_on,
|
|
99
|
+
camera_default_on
|
|
100
|
+
} = defaultOnSetting;
|
|
74
101
|
setInitialDeviceState(prev => {
|
|
75
102
|
let initAudio = prev.initialAudioEnabled;
|
|
76
103
|
if (typeof propInitialAudioEnabled === 'undefined') {
|
|
77
|
-
initAudio =
|
|
104
|
+
initAudio = mic_default_on;
|
|
78
105
|
}
|
|
79
106
|
let initVideo = prev.initialVideoEnabled;
|
|
80
107
|
if (typeof propInitialVideoEnabled === 'undefined') {
|
|
81
|
-
initVideo =
|
|
108
|
+
initVideo = camera_default_on;
|
|
82
109
|
}
|
|
83
110
|
return {
|
|
84
111
|
initialAudioEnabled: initAudio,
|
|
85
112
|
initialVideoEnabled: initVideo
|
|
86
113
|
};
|
|
87
114
|
});
|
|
88
|
-
}, [propInitialAudioEnabled, propInitialVideoEnabled,
|
|
115
|
+
}, [propInitialAudioEnabled, propInitialVideoEnabled, defaultOnSetting]);
|
|
89
116
|
|
|
90
117
|
// Apply SDK settings to set the initial audio/video enabled state
|
|
91
118
|
(0, _react.useEffect)(() => {
|
|
@@ -114,8 +141,8 @@ const MediaStreamManagement = _ref => {
|
|
|
114
141
|
if (initialVideoEnabled === undefined) {
|
|
115
142
|
return;
|
|
116
143
|
}
|
|
117
|
-
// we wait until we receive the settings from the backend
|
|
118
|
-
if (!call || !
|
|
144
|
+
// we wait until we receive the resolution settings from the backend
|
|
145
|
+
if (!call || !targetResolutionSetting) {
|
|
119
146
|
return;
|
|
120
147
|
}
|
|
121
148
|
if (initialAudioEnabled) {
|
|
@@ -123,13 +150,13 @@ const MediaStreamManagement = _ref => {
|
|
|
123
150
|
} else {
|
|
124
151
|
call.microphone.disable();
|
|
125
152
|
}
|
|
126
|
-
call.camera.selectTargetResolution(
|
|
153
|
+
call.camera.selectTargetResolution(targetResolutionSetting);
|
|
127
154
|
if (initialVideoEnabled) {
|
|
128
155
|
call.camera.enable();
|
|
129
156
|
} else {
|
|
130
157
|
call.camera.disable();
|
|
131
158
|
}
|
|
132
|
-
}, [call, initialAudioEnabled, initialVideoEnabled,
|
|
159
|
+
}, [call, initialAudioEnabled, initialVideoEnabled, targetResolutionSetting]);
|
|
133
160
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, children);
|
|
134
161
|
};
|
|
135
162
|
exports.MediaStreamManagement = MediaStreamManagement;
|
|
@@ -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","useAppStateListener","_call$camera","camera","resume","Platform","OS","_NativeModules$Stream","NativeModules","StreamVideoReactNative","isInPiPMode","then","isInPiP","_call$camera2","disable","_call$camera3","setInitialDeviceState","useState","
|
|
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","defaultOnSetting","audio","mic_default_on","camera_default_on","useAppStateListener","_call$camera","camera","resume","Platform","OS","_NativeModules$Stream","NativeModules","StreamVideoReactNative","isInPiPMode","then","isInPiP","_call$camera2","disable","_call$camera3","setInitialDeviceState","useState","useEffect","prev","initAudio","initVideo","microphone","enable","selectTargetResolution","createElement","Fragment","exports"],"sourceRoot":"../../../src","sources":["providers/MediaStreamManagement.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,mBAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AAAuD,SAAAI,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAN,wBAAAU,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAcvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMW,qBAAqB,GAAGC,IAAA,IAIc;EAAA,IAJb;IACpCC,mBAAmB,EAAEC,uBAAuB;IAC5CC,mBAAmB,EAAEC,uBAAuB;IAC5CC;EAC2C,CAAC,GAAAL,IAAA;EAC5C,MAAMJ,IAAI,GAAG,IAAAU,2BAAO,EAAC,CAAC;EACtB,MAAM;IAAEC;EAAgB,CAAC,GAAG,IAAAC,qCAAiB,EAAC,CAAC;EAC/C,MAAMC,QAAQ,GAAGF,eAAe,CAAC,CAAC;;EAElC;EACA;EACA,MAAMG,uBAAuB,GAAG,IAAAC,cAAO,EAA+B,MAAM;IAAA,IAAAC,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA;IAC1E,IACE,CAAAL,QAAQ,aAARA,QAAQ,gBAAAG,qBAAA,GAARH,QAAQ,CAAEM,KAAK,CAACC,iBAAiB,cAAAJ,qBAAA,uBAAjCA,qBAAA,CAAmCK,KAAK,MAAKC,SAAS,IACtD,CAAAT,QAAQ,aAARA,QAAQ,gBAAAI,sBAAA,GAARJ,QAAQ,CAAEM,KAAK,CAACC,iBAAiB,cAAAH,sBAAA,uBAAjCA,sBAAA,CAAmCM,MAAM,MAAKD,SAAS,IACvD,CAAAT,QAAQ,aAARA,QAAQ,gBAAAK,sBAAA,GAARL,QAAQ,CAAEM,KAAK,CAACC,iBAAiB,cAAAF,sBAAA,uBAAjCA,sBAAA,CAAmCM,OAAO,MAAKF,SAAS,EACxD;MACA,OAAOA,SAAS;IAClB;IACA,OAAO;MACLD,KAAK,EAAER,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEM,KAAK,CAACC,iBAAiB,CAACC,KAAK;MAC9CE,MAAM,EAAEV,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEM,KAAK,CAACC,iBAAiB,CAACG,MAAM;MAChDC,OAAO,EAAEX,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEM,KAAK,CAACC,iBAAiB,CAACI;IAC7C,CAAC;EACH,CAAC,EAAE,CACDX,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEM,KAAK,CAACC,iBAAiB,CAACC,KAAK,EACvCR,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEM,KAAK,CAACC,iBAAiB,CAACG,MAAM,EACxCV,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEM,KAAK,CAACC,iBAAiB,CAACI,OAAO,CAC1C,CAAC;;EAEF;EACA;EACA,MAAMC,gBAAgB,GAAG,IAAAV,cAAO,EAAC,MAAM;IACrC,IACE,CAAAF,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEa,KAAK,CAACC,cAAc,MAAKL,SAAS,IAC5C,CAAAT,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEM,KAAK,CAACS,iBAAiB,MAAKN,SAAS,EAC/C;MACA,OAAOA,SAAS;IAClB,CAAC,MAAM;MACL,OAAO;QACLK,cAAc,EAAEd,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEa,KAAK,CAACC,cAAc;QAC9CC,iBAAiB,EAAEf,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEM,KAAK,CAACS;MACrC,CAAC;IACH;EACF,CAAC,EAAE,CAACf,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEa,KAAK,CAACC,cAAc,EAAEd,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEM,KAAK,CAACS,iBAAiB,CAAC,CAAC;;EAEvE;EACA;EACA,IAAAC,0BAAmB,EACjB,MAAM;IAAA,IAAAC,YAAA;IACJ9B,IAAI,aAAJA,IAAI,gBAAA8B,YAAA,GAAJ9B,IAAI,CAAE+B,MAAM,cAAAD,YAAA,eAAZA,YAAA,CAAcE,MAAM,CAAC,CAAC;EACxB,CAAC,EACD,MAAM;IACJ,IAAIC,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;MAAA,IAAAC,qBAAA;MAC7B;MACA;MACAC,0BAAa,aAAbA,0BAAa,gBAAAD,qBAAA,GAAbC,0BAAa,CAAEC,sBAAsB,cAAAF,qBAAA,eAArCA,qBAAA,CAAuCG,WAAW,CAAC,CAAC,CAACC,IAAI,CACtDC,OAAgB,IAAK;QACpB,IAAI,CAACA,OAAO,EAAE;UAAA,IAAAC,aAAA;UACZzC,IAAI,aAAJA,IAAI,gBAAAyC,aAAA,GAAJzC,IAAI,CAAE+B,MAAM,cAAAU,aAAA,eAAZA,aAAA,CAAcC,OAAO,CAAC,CAAC;QACzB;MACF,CACF,CAAC;IACH,CAAC,MAAM;MAAA,IAAAC,aAAA;MACL3C,IAAI,aAAJA,IAAI,gBAAA2C,aAAA,GAAJ3C,IAAI,CAAE+B,MAAM,cAAAY,aAAA,eAAZA,aAAA,CAAcD,OAAO,CAAC,CAAC;IACzB;EACF,CACF,CAAC;EAED,MAAM,CAAC;IAAErC,mBAAmB;IAAEE;EAAoB,CAAC,EAAEqC,qBAAqB,CAAC,GACzE,IAAAC,eAAQ,EAA2B;IACjCxC,mBAAmB,EAAEiB,SAAS;IAC9Bf,mBAAmB,EAAEe;EACvB,CAAC,CAAC;;EAEJ;EACA;EACA,IAAAwB,gBAAS,EAAC,MAAM;IACd,IAAI,CAACrB,gBAAgB,EAAE;MACrB;IACF;IAEA,MAAM;MAAEE,cAAc;MAAEC;IAAkB,CAAC,GAAGH,gBAAgB;IAC9DmB,qBAAqB,CAAEG,IAAI,IAAK;MAC9B,IAAIC,SAAS,GAAGD,IAAI,CAAC1C,mBAAmB;MACxC,IAAI,OAAOC,uBAAuB,KAAK,WAAW,EAAE;QAClD0C,SAAS,GAAGrB,cAAc;MAC5B;MACA,IAAIsB,SAAS,GAAGF,IAAI,CAACxC,mBAAmB;MACxC,IAAI,OAAOC,uBAAuB,KAAK,WAAW,EAAE;QAClDyC,SAAS,GAAGrB,iBAAiB;MAC/B;MACA,OAAO;QAAEvB,mBAAmB,EAAE2C,SAAS;QAAEzC,mBAAmB,EAAE0C;MAAU,CAAC;IAC3E,CAAC,CAAC;EACJ,CAAC,EAAE,CAAC3C,uBAAuB,EAAEE,uBAAuB,EAAEiB,gBAAgB,CAAC,CAAC;;EAExE;EACA,IAAAqB,gBAAS,EAAC,MAAM;IACdF,qBAAqB,CAAEG,IAAI,IAAK;MAC9B,IAAIC,SAAS,GAAGD,IAAI,CAAC1C,mBAAmB;MACxC,IAAI,OAAOC,uBAAuB,KAAK,WAAW,EAAE;QAClD0C,SAAS,GAAG1C,uBAAuB;MACrC;MACA,IAAI2C,SAAS,GAAGF,IAAI,CAACxC,mBAAmB;MACxC,IAAI,OAAOC,uBAAuB,KAAK,WAAW,EAAE;QAClDyC,SAAS,GAAGzC,uBAAuB;MACrC;MAEA,OAAO;QACLH,mBAAmB,EAAE2C,SAAS;QAC9BzC,mBAAmB,EAAE0C;MACvB,CAAC;IACH,CAAC,CAAC;EACJ,CAAC,EAAE,CAAC3C,uBAAuB,EAAEE,uBAAuB,CAAC,CAAC;;EAEtD;EACA;EACA,IAAAsC,gBAAS,EAAC,MAAM;IACd,IAAIzC,mBAAmB,KAAKiB,SAAS,EAAE;MACrC;IACF;IACA,IAAIf,mBAAmB,KAAKe,SAAS,EAAE;MACrC;IACF;IACA;IACA,IAAI,CAACtB,IAAI,IAAI,CAACc,uBAAuB,EAAE;MACrC;IACF;IAEA,IAAIT,mBAAmB,EAAE;MACvBL,IAAI,CAACkD,UAAU,CAACC,MAAM,CAAC,CAAC;IAC1B,CAAC,MAAM;MACLnD,IAAI,CAACkD,UAAU,CAACR,OAAO,CAAC,CAAC;IAC3B;IAEA1C,IAAI,CAAC+B,MAAM,CAACqB,sBAAsB,CAACtC,uBAAuB,CAAC;IAC3D,IAAIP,mBAAmB,EAAE;MACvBP,IAAI,CAAC+B,MAAM,CAACoB,MAAM,CAAC,CAAC;IACtB,CAAC,MAAM;MACLnD,IAAI,CAAC+B,MAAM,CAACW,OAAO,CAAC,CAAC;IACvB;EACF,CAAC,EAAE,CAAC1C,IAAI,EAAEK,mBAAmB,EAAEE,mBAAmB,EAAEO,uBAAuB,CAAC,CAAC;EAE7E,oBAAOvC,MAAA,CAAAa,OAAA,CAAAiE,aAAA,CAAA9E,MAAA,CAAAa,OAAA,CAAAkE,QAAA,QAAG7C,QAAW,CAAC;AACxB,CAAC;AAAC8C,OAAA,CAAApD,qBAAA,GAAAA,qBAAA"}
|
package/dist/commonjs/version.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useEffect, useState } from 'react';
|
|
1
|
+
import React, { useEffect, useMemo, useState } 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';
|
|
@@ -22,6 +22,34 @@ export const MediaStreamManagement = _ref => {
|
|
|
22
22
|
const {
|
|
23
23
|
useCallSettings
|
|
24
24
|
} = useCallStateHooks();
|
|
25
|
+
const settings = useCallSettings();
|
|
26
|
+
|
|
27
|
+
// Get the target resolution from the settings and memoize it
|
|
28
|
+
// Memoization is needed to avoid unnecessary useEffect triggers
|
|
29
|
+
const targetResolutionSetting = useMemo(() => {
|
|
30
|
+
var _settings$video$targe, _settings$video$targe2, _settings$video$targe3;
|
|
31
|
+
if ((settings === null || settings === void 0 || (_settings$video$targe = settings.video.target_resolution) === null || _settings$video$targe === void 0 ? void 0 : _settings$video$targe.width) === undefined || (settings === null || settings === void 0 || (_settings$video$targe2 = settings.video.target_resolution) === null || _settings$video$targe2 === void 0 ? void 0 : _settings$video$targe2.height) === undefined || (settings === null || settings === void 0 || (_settings$video$targe3 = settings.video.target_resolution) === null || _settings$video$targe3 === void 0 ? void 0 : _settings$video$targe3.bitrate) === undefined) {
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
return {
|
|
35
|
+
width: settings === null || settings === void 0 ? void 0 : settings.video.target_resolution.width,
|
|
36
|
+
height: settings === null || settings === void 0 ? void 0 : settings.video.target_resolution.height,
|
|
37
|
+
bitrate: settings === null || settings === void 0 ? void 0 : settings.video.target_resolution.bitrate
|
|
38
|
+
};
|
|
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
|
+
|
|
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]);
|
|
25
53
|
|
|
26
54
|
// Resume/Disable video stream tracks when app goes to background/foreground
|
|
27
55
|
// To save on CPU resources
|
|
@@ -51,33 +79,32 @@ export const MediaStreamManagement = _ref => {
|
|
|
51
79
|
initialAudioEnabled: undefined,
|
|
52
80
|
initialVideoEnabled: undefined
|
|
53
81
|
});
|
|
54
|
-
const settings = useCallSettings();
|
|
55
82
|
|
|
56
83
|
// Use backend settings to set initial audio/video enabled state
|
|
57
84
|
// It is applied only if the prop was undefined -- meaning user did not provide any value
|
|
58
85
|
useEffect(() => {
|
|
59
|
-
if (!
|
|
86
|
+
if (!defaultOnSetting) {
|
|
60
87
|
return;
|
|
61
88
|
}
|
|
62
89
|
const {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
} =
|
|
90
|
+
mic_default_on,
|
|
91
|
+
camera_default_on
|
|
92
|
+
} = defaultOnSetting;
|
|
66
93
|
setInitialDeviceState(prev => {
|
|
67
94
|
let initAudio = prev.initialAudioEnabled;
|
|
68
95
|
if (typeof propInitialAudioEnabled === 'undefined') {
|
|
69
|
-
initAudio =
|
|
96
|
+
initAudio = mic_default_on;
|
|
70
97
|
}
|
|
71
98
|
let initVideo = prev.initialVideoEnabled;
|
|
72
99
|
if (typeof propInitialVideoEnabled === 'undefined') {
|
|
73
|
-
initVideo =
|
|
100
|
+
initVideo = camera_default_on;
|
|
74
101
|
}
|
|
75
102
|
return {
|
|
76
103
|
initialAudioEnabled: initAudio,
|
|
77
104
|
initialVideoEnabled: initVideo
|
|
78
105
|
};
|
|
79
106
|
});
|
|
80
|
-
}, [propInitialAudioEnabled, propInitialVideoEnabled,
|
|
107
|
+
}, [propInitialAudioEnabled, propInitialVideoEnabled, defaultOnSetting]);
|
|
81
108
|
|
|
82
109
|
// Apply SDK settings to set the initial audio/video enabled state
|
|
83
110
|
useEffect(() => {
|
|
@@ -106,8 +133,8 @@ export const MediaStreamManagement = _ref => {
|
|
|
106
133
|
if (initialVideoEnabled === undefined) {
|
|
107
134
|
return;
|
|
108
135
|
}
|
|
109
|
-
// we wait until we receive the settings from the backend
|
|
110
|
-
if (!call || !
|
|
136
|
+
// we wait until we receive the resolution settings from the backend
|
|
137
|
+
if (!call || !targetResolutionSetting) {
|
|
111
138
|
return;
|
|
112
139
|
}
|
|
113
140
|
if (initialAudioEnabled) {
|
|
@@ -115,13 +142,13 @@ export const MediaStreamManagement = _ref => {
|
|
|
115
142
|
} else {
|
|
116
143
|
call.microphone.disable();
|
|
117
144
|
}
|
|
118
|
-
call.camera.selectTargetResolution(
|
|
145
|
+
call.camera.selectTargetResolution(targetResolutionSetting);
|
|
119
146
|
if (initialVideoEnabled) {
|
|
120
147
|
call.camera.enable();
|
|
121
148
|
} else {
|
|
122
149
|
call.camera.disable();
|
|
123
150
|
}
|
|
124
|
-
}, [call, initialAudioEnabled, initialVideoEnabled,
|
|
151
|
+
}, [call, initialAudioEnabled, initialVideoEnabled, targetResolutionSetting]);
|
|
125
152
|
return /*#__PURE__*/React.createElement(React.Fragment, null, children);
|
|
126
153
|
};
|
|
127
154
|
//# sourceMappingURL=MediaStreamManagement.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useState","useCall","useCallStateHooks","useAppStateListener","NativeModules","Platform","MediaStreamManagement","_ref","initialAudioEnabled","propInitialAudioEnabled","initialVideoEnabled","propInitialVideoEnabled","children","call","useCallSettings","_call$camera","camera","resume","OS","_NativeModules$Stream","StreamVideoReactNative","isInPiPMode","then","isInPiP","_call$camera2","disable","_call$camera3","setInitialDeviceState","
|
|
1
|
+
{"version":3,"names":["React","useEffect","useMemo","useState","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","defaultOnSetting","audio","mic_default_on","camera_default_on","_call$camera","camera","resume","OS","_NativeModules$Stream","StreamVideoReactNative","isInPiPMode","then","isInPiP","_call$camera2","disable","_call$camera3","setInitialDeviceState","prev","initAudio","initVideo","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.1';
|
|
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,EAAgC,MAAM,OAAO,CAAC;AAM/E,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,sBA4I7C,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const version = "0.3.
|
|
1
|
+
export declare const version = "0.3.1";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/package.json
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import React, { PropsWithChildren, useEffect, useState } from 'react';
|
|
1
|
+
import React, { PropsWithChildren, useEffect, useMemo, useState } 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';
|
|
5
|
+
import type { TargetResolution } from '@stream-io/video-client';
|
|
5
6
|
|
|
6
7
|
export type MediaDevicesInitialState = {
|
|
7
8
|
/**
|
|
@@ -31,6 +32,44 @@ export const MediaStreamManagement = ({
|
|
|
31
32
|
}: PropsWithChildren<MediaDevicesInitialState>) => {
|
|
32
33
|
const call = useCall();
|
|
33
34
|
const { useCallSettings } = useCallStateHooks();
|
|
35
|
+
const settings = useCallSettings();
|
|
36
|
+
|
|
37
|
+
// Get the target resolution from the settings and memoize it
|
|
38
|
+
// Memoization is needed to avoid unnecessary useEffect triggers
|
|
39
|
+
const targetResolutionSetting = useMemo<TargetResolution | undefined>(() => {
|
|
40
|
+
if (
|
|
41
|
+
settings?.video.target_resolution?.width === undefined ||
|
|
42
|
+
settings?.video.target_resolution?.height === undefined ||
|
|
43
|
+
settings?.video.target_resolution?.bitrate === undefined
|
|
44
|
+
) {
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
return {
|
|
48
|
+
width: settings?.video.target_resolution.width,
|
|
49
|
+
height: settings?.video.target_resolution.height,
|
|
50
|
+
bitrate: settings?.video.target_resolution.bitrate,
|
|
51
|
+
};
|
|
52
|
+
}, [
|
|
53
|
+
settings?.video.target_resolution.width,
|
|
54
|
+
settings?.video.target_resolution.height,
|
|
55
|
+
settings?.video.target_resolution.bitrate,
|
|
56
|
+
]);
|
|
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]);
|
|
34
73
|
|
|
35
74
|
// Resume/Disable video stream tracks when app goes to background/foreground
|
|
36
75
|
// To save on CPU resources
|
|
@@ -61,28 +100,26 @@ export const MediaStreamManagement = ({
|
|
|
61
100
|
initialVideoEnabled: undefined,
|
|
62
101
|
});
|
|
63
102
|
|
|
64
|
-
const settings = useCallSettings();
|
|
65
|
-
|
|
66
103
|
// Use backend settings to set initial audio/video enabled state
|
|
67
104
|
// It is applied only if the prop was undefined -- meaning user did not provide any value
|
|
68
105
|
useEffect(() => {
|
|
69
|
-
if (!
|
|
106
|
+
if (!defaultOnSetting) {
|
|
70
107
|
return;
|
|
71
108
|
}
|
|
72
109
|
|
|
73
|
-
const {
|
|
110
|
+
const { mic_default_on, camera_default_on } = defaultOnSetting;
|
|
74
111
|
setInitialDeviceState((prev) => {
|
|
75
112
|
let initAudio = prev.initialAudioEnabled;
|
|
76
113
|
if (typeof propInitialAudioEnabled === 'undefined') {
|
|
77
|
-
initAudio =
|
|
114
|
+
initAudio = mic_default_on;
|
|
78
115
|
}
|
|
79
116
|
let initVideo = prev.initialVideoEnabled;
|
|
80
117
|
if (typeof propInitialVideoEnabled === 'undefined') {
|
|
81
|
-
initVideo =
|
|
118
|
+
initVideo = camera_default_on;
|
|
82
119
|
}
|
|
83
120
|
return { initialAudioEnabled: initAudio, initialVideoEnabled: initVideo };
|
|
84
121
|
});
|
|
85
|
-
}, [propInitialAudioEnabled, propInitialVideoEnabled,
|
|
122
|
+
}, [propInitialAudioEnabled, propInitialVideoEnabled, defaultOnSetting]);
|
|
86
123
|
|
|
87
124
|
// Apply SDK settings to set the initial audio/video enabled state
|
|
88
125
|
useEffect(() => {
|
|
@@ -112,23 +149,24 @@ export const MediaStreamManagement = ({
|
|
|
112
149
|
if (initialVideoEnabled === undefined) {
|
|
113
150
|
return;
|
|
114
151
|
}
|
|
115
|
-
// we wait until we receive the settings from the backend
|
|
116
|
-
if (!call || !
|
|
152
|
+
// we wait until we receive the resolution settings from the backend
|
|
153
|
+
if (!call || !targetResolutionSetting) {
|
|
117
154
|
return;
|
|
118
155
|
}
|
|
156
|
+
|
|
119
157
|
if (initialAudioEnabled) {
|
|
120
158
|
call.microphone.enable();
|
|
121
159
|
} else {
|
|
122
160
|
call.microphone.disable();
|
|
123
161
|
}
|
|
124
162
|
|
|
125
|
-
call.camera.selectTargetResolution(
|
|
163
|
+
call.camera.selectTargetResolution(targetResolutionSetting);
|
|
126
164
|
if (initialVideoEnabled) {
|
|
127
165
|
call.camera.enable();
|
|
128
166
|
} else {
|
|
129
167
|
call.camera.disable();
|
|
130
168
|
}
|
|
131
|
-
}, [call, initialAudioEnabled, initialVideoEnabled,
|
|
169
|
+
}, [call, initialAudioEnabled, initialVideoEnabled, targetResolutionSetting]);
|
|
132
170
|
|
|
133
171
|
return <>{children}</>;
|
|
134
172
|
};
|
package/src/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const version = '0.3.
|
|
1
|
+
export const version = '0.3.1';
|