@stream-io/video-react-native-sdk 1.37.0 → 1.38.0
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 +20 -0
- package/dist/commonjs/modules/call-manager/CallManager.js +13 -0
- package/dist/commonjs/modules/call-manager/CallManager.js.map +1 -1
- package/dist/commonjs/providers/StreamCall/AudioInterruptionTracer.js +37 -0
- package/dist/commonjs/providers/StreamCall/AudioInterruptionTracer.js.map +1 -0
- package/dist/commonjs/providers/StreamCall/index.js +2 -1
- package/dist/commonjs/providers/StreamCall/index.js.map +1 -1
- package/dist/commonjs/utils/push/internal/ios.js +5 -0
- package/dist/commonjs/utils/push/internal/ios.js.map +1 -1
- package/dist/commonjs/version.js +1 -1
- package/dist/module/modules/call-manager/CallManager.js +13 -0
- package/dist/module/modules/call-manager/CallManager.js.map +1 -1
- package/dist/module/providers/StreamCall/AudioInterruptionTracer.js +30 -0
- package/dist/module/providers/StreamCall/AudioInterruptionTracer.js.map +1 -0
- package/dist/module/providers/StreamCall/index.js +2 -1
- package/dist/module/providers/StreamCall/index.js.map +1 -1
- package/dist/module/utils/push/internal/ios.js +5 -0
- package/dist/module/utils/push/internal/ios.js.map +1 -1
- package/dist/module/version.js +1 -1
- package/dist/typescript/modules/call-manager/CallManager.d.ts +8 -1
- package/dist/typescript/modules/call-manager/CallManager.d.ts.map +1 -1
- package/dist/typescript/modules/call-manager/types.d.ts +6 -0
- package/dist/typescript/modules/call-manager/types.d.ts.map +1 -1
- package/dist/typescript/providers/StreamCall/AudioInterruptionTracer.d.ts +5 -0
- package/dist/typescript/providers/StreamCall/AudioInterruptionTracer.d.ts.map +1 -0
- package/dist/typescript/providers/StreamCall/index.d.ts.map +1 -1
- package/dist/typescript/utils/push/internal/ios.d.ts.map +1 -1
- package/dist/typescript/version.d.ts +1 -1
- package/ios/PictureInPicture/StreamBufferTransformer.swift +13 -4
- package/ios/PictureInPicture/StreamPictureInPictureVideoRenderer.swift +76 -70
- package/ios/PictureInPicture/StreamRTCYUVBuffer.swift +20 -16
- package/ios/StreamInCallManager.swift +237 -81
- package/package.json +11 -11
- package/src/modules/call-manager/CallManager.ts +25 -1
- package/src/modules/call-manager/types.ts +7 -0
- package/src/providers/StreamCall/AudioInterruptionTracer.tsx +51 -0
- package/src/providers/StreamCall/index.tsx +2 -0
- package/src/utils/push/internal/ios.ts +5 -0
- package/src/version.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,26 @@
|
|
|
2
2
|
|
|
3
3
|
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
|
|
4
4
|
|
|
5
|
+
## [1.38.0](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-1.37.0...@stream-io/video-react-native-sdk-1.38.0) (2026-06-11)
|
|
6
|
+
|
|
7
|
+
### Dependency Updates
|
|
8
|
+
|
|
9
|
+
- `@stream-io/noise-cancellation-react-native` updated to version `0.8.0`
|
|
10
|
+
- `@stream-io/react-native-callingx` updated to version `0.5.0`
|
|
11
|
+
- `@stream-io/video-filters-react-native` updated to version `0.13.0`
|
|
12
|
+
- `@stream-io/video-client` updated to version `1.53.0`
|
|
13
|
+
- `@stream-io/video-react-bindings` updated to version `1.16.3`
|
|
14
|
+
|
|
15
|
+
- upgrade Expo config-plugin (react-native-webrtc) to v15 and bump Expo SDK 56 deps ([#2276](https://github.com/GetStream/stream-video-js/issues/2276)) ([af675b8](https://github.com/GetStream/stream-video-js/commit/af675b8bd6bcf08320f748cb8be1b56bedf13937))
|
|
16
|
+
|
|
17
|
+
### Features
|
|
18
|
+
|
|
19
|
+
- webrtc 145 upgrade ([#2133](https://github.com/GetStream/stream-video-js/issues/2133)) ([07825e4](https://github.com/GetStream/stream-video-js/commit/07825e402193ed07acf1d41831545326a0ad93d9)), closes [rn-webrtc#27](https://github.com/GetStream/rn-webrtc/issues/27)
|
|
20
|
+
|
|
21
|
+
### Bug Fixes
|
|
22
|
+
|
|
23
|
+
- leave call when it was cancelled during bg ([#2277](https://github.com/GetStream/stream-video-js/issues/2277)) ([6dc77a3](https://github.com/GetStream/stream-video-js/commit/6dc77a3733c3bc7f4f87c0fd0f6a20a7a0dd1d27))
|
|
24
|
+
|
|
5
25
|
## [1.37.0](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-1.36.2...@stream-io/video-react-native-sdk-1.37.0) (2026-06-04)
|
|
6
26
|
|
|
7
27
|
### Dependency Updates
|
|
@@ -9,6 +9,7 @@ var _callingx = require("../../utils/push/libs/callingx");
|
|
|
9
9
|
var _videoClient = require("@stream-io/video-client");
|
|
10
10
|
const NativeManager = _reactNative.NativeModules.StreamInCallManager;
|
|
11
11
|
const CallingxModule = (0, _callingx.getCallingxLibIfAvailable)();
|
|
12
|
+
const AUDIO_INTERRUPTION_EVENT = 'StreamInCallManagerAudioInterruption';
|
|
12
13
|
const invariant = (condition, message) => {
|
|
13
14
|
if (!condition) throw new Error(message);
|
|
14
15
|
};
|
|
@@ -50,6 +51,18 @@ class IOSCallManager {
|
|
|
50
51
|
invariant(_reactNative.Platform.OS === 'ios', 'Supported only on iOS');
|
|
51
52
|
NativeManager.showAudioRoutePicker();
|
|
52
53
|
};
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Register a listener for iOS audio interruptions.
|
|
57
|
+
*
|
|
58
|
+
* @param onInterruption callback to be called when iOS reports an audio interruption.
|
|
59
|
+
*/
|
|
60
|
+
addAudioInterruptionListener = onInterruption => {
|
|
61
|
+
invariant(_reactNative.Platform.OS === 'ios', 'Supported only on iOS');
|
|
62
|
+
this.eventEmitter ??= new _reactNative.NativeEventEmitter(NativeManager);
|
|
63
|
+
const s = this.eventEmitter.addListener(AUDIO_INTERRUPTION_EVENT, onInterruption);
|
|
64
|
+
return () => s.remove();
|
|
65
|
+
};
|
|
53
66
|
}
|
|
54
67
|
class SpeakerManager {
|
|
55
68
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_callingx","_videoClient","NativeManager","NativeModules","StreamInCallManager","CallingxModule","getCallingxLibIfAvailable","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","shouldBypassForCallKit","isSetup","hasRegisteredCall","isOngoingCallsEnabled","CallManager","android","ios","speaker","start","config","audioRole","type","deviceEndpointType","setDefaultAudioDeviceEndpointType","videoLoggerSystem","getLogger","debug","setAudioRole","enableStereoAudioOutput","setEnableStereoAudioOutput","stop","logAudioState","getAudioStateLog","exports"],"sourceRoot":"../../../../src","sources":["modules/call-manager/CallManager.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_callingx","_videoClient","NativeManager","NativeModules","StreamInCallManager","CallingxModule","getCallingxLibIfAvailable","AUDIO_INTERRUPTION_EVENT","invariant","condition","message","Error","AndroidCallManager","getAudioDeviceStatus","Platform","OS","selectAudioDevice","endpointName","chooseAudioDeviceEndpoint","addAudioDeviceChangeListener","onChange","eventEmitter","NativeEventEmitter","s","addListener","remove","IOSCallManager","showDeviceSelector","showAudioRoutePicker","addAudioInterruptionListener","onInterruption","SpeakerManager","setMute","mute","muteAudioOutput","unmuteAudioOutput","setForceSpeakerphoneOn","force","shouldBypassForCallKit","isSetup","hasRegisteredCall","isOngoingCallsEnabled","CallManager","android","ios","speaker","start","config","audioRole","type","deviceEndpointType","setDefaultAudioDeviceEndpointType","videoLoggerSystem","getLogger","debug","setAudioRole","enableStereoAudioOutput","setEnableStereoAudioOutput","stop","logAudioState","getAudioStateLog","exports"],"sourceRoot":"../../../../src","sources":["modules/call-manager/CallManager.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.AudioInterruptionTracer = void 0;
|
|
7
|
+
var _videoReactBindings = require("@stream-io/video-react-bindings");
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
var _reactNative = require("react-native");
|
|
10
|
+
var _callManager = require("../../modules/call-manager");
|
|
11
|
+
var _callingx = require("../../utils/push/libs/callingx");
|
|
12
|
+
var _videoClient = require("@stream-io/video-client");
|
|
13
|
+
/**
|
|
14
|
+
* Traces iOS audio interruptions while a StreamCall provider is mounted.
|
|
15
|
+
*/
|
|
16
|
+
const AudioInterruptionTracer = () => {
|
|
17
|
+
const call = (0, _videoReactBindings.useCall)();
|
|
18
|
+
(0, _react.useEffect)(() => {
|
|
19
|
+
if (_reactNative.Platform.OS !== 'ios' || !call) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
const traceAudioInterruption = event => {
|
|
23
|
+
call.tracer.trace(`ios.audioInterruption.${event.phase}`, event);
|
|
24
|
+
_videoClient.videoLoggerSystem.getLogger('Call').info(`ios.audioInterruption.${event.phase}`, event);
|
|
25
|
+
};
|
|
26
|
+
const removeInCallManagerListener = _callManager.callManager.ios.addAudioInterruptionListener(traceAudioInterruption);
|
|
27
|
+
const callingx = (0, _callingx.getCallingxLibIfAvailable)();
|
|
28
|
+
const callingxSubscription = callingx?.addEventListener('didAudioInterruption', traceAudioInterruption);
|
|
29
|
+
return () => {
|
|
30
|
+
removeInCallManagerListener();
|
|
31
|
+
callingxSubscription?.remove();
|
|
32
|
+
};
|
|
33
|
+
}, [call]);
|
|
34
|
+
return null;
|
|
35
|
+
};
|
|
36
|
+
exports.AudioInterruptionTracer = AudioInterruptionTracer;
|
|
37
|
+
//# sourceMappingURL=AudioInterruptionTracer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_videoReactBindings","require","_react","_reactNative","_callManager","_callingx","_videoClient","AudioInterruptionTracer","call","useCall","useEffect","Platform","OS","traceAudioInterruption","event","tracer","trace","phase","videoLoggerSystem","getLogger","info","removeInCallManagerListener","callManager","ios","addAudioInterruptionListener","callingx","getCallingxLibIfAvailable","callingxSubscription","addEventListener","remove","exports"],"sourceRoot":"../../../../src","sources":["providers/StreamCall/AudioInterruptionTracer.tsx"],"mappings":";;;;;;AAAA,IAAAA,mBAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AAEA,IAAAI,SAAA,GAAAJ,OAAA;AACA,IAAAK,YAAA,GAAAL,OAAA;AASA;AACA;AACA;AACO,MAAMM,uBAAuB,GAAGA,CAAA,KAAM;EAC3C,MAAMC,IAAI,GAAG,IAAAC,2BAAO,EAAC,CAAC;EAEtB,IAAAC,gBAAS,EAAC,MAAM;IACd,IAAIC,qBAAQ,CAACC,EAAE,KAAK,KAAK,IAAI,CAACJ,IAAI,EAAE;MAClC;IACF;IAEA,MAAMK,sBAAsB,GAAIC,KAAgC,IAAK;MACnEN,IAAI,CAACO,MAAM,CAACC,KAAK,CAAC,yBAAyBF,KAAK,CAACG,KAAK,EAAE,EAAEH,KAAK,CAAC;MAChEI,8BAAiB,CACdC,SAAS,CAAC,MAAM,CAAC,CACjBC,IAAI,CAAC,yBAAyBN,KAAK,CAACG,KAAK,EAAE,EAAEH,KAAK,CAAC;IACxD,CAAC;IAED,MAAMO,2BAA2B,GAC/BC,wBAAW,CAACC,GAAG,CAACC,4BAA4B,CAACX,sBAAsB,CAAC;IACtE,MAAMY,QAAQ,GAAG,IAAAC,mCAAyB,EAAC,CAE9B;IACb,MAAMC,oBAAoB,GAAGF,QAAQ,EAAEG,gBAAgB,CACrD,sBAAsB,EACtBf,sBACF,CAAC;IAED,OAAO,MAAM;MACXQ,2BAA2B,CAAC,CAAC;MAC7BM,oBAAoB,EAAEE,MAAM,CAAC,CAAC;IAChC,CAAC;EACH,CAAC,EAAE,CAACrB,IAAI,CAAC,CAAC;EAEV,OAAO,IAAI;AACb,CAAC;AAACsB,OAAA,CAAAvB,uBAAA,GAAAA,uBAAA","ignoreList":[]}
|
|
@@ -11,6 +11,7 @@ var _useAndroidKeepCallAliveEffect = require("../../hooks/useAndroidKeepCallAliv
|
|
|
11
11
|
var _useScreenShareAudioMixing = require("../../hooks/useScreenShareAudioMixing");
|
|
12
12
|
var _AppStateListener = require("./AppStateListener");
|
|
13
13
|
var _DeviceStats = require("./DeviceStats");
|
|
14
|
+
var _AudioInterruptionTracer = require("./AudioInterruptionTracer");
|
|
14
15
|
var _constants = require("../../utils/push/internal/constants");
|
|
15
16
|
var _useCallingExpWithCallingStateEffect = require("../../hooks/push/useCallingExpWithCallingStateEffect");
|
|
16
17
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
@@ -31,7 +32,7 @@ const StreamCall = ({
|
|
|
31
32
|
}) => {
|
|
32
33
|
return /*#__PURE__*/_react.default.createElement(_videoReactBindings.StreamCallProvider, {
|
|
33
34
|
call: call
|
|
34
|
-
}, /*#__PURE__*/_react.default.createElement(_AppStateListener.AppStateListener, null), /*#__PURE__*/_react.default.createElement(AndroidKeepCallAlive, null), /*#__PURE__*/_react.default.createElement(CallingExpWithCallingState, null), /*#__PURE__*/_react.default.createElement(ClearPushWSSubscriptions, null), /*#__PURE__*/_react.default.createElement(ScreenShareAudioMixer, null), /*#__PURE__*/_react.default.createElement(_DeviceStats.DeviceStats, null), children);
|
|
35
|
+
}, /*#__PURE__*/_react.default.createElement(_AppStateListener.AppStateListener, null), /*#__PURE__*/_react.default.createElement(AndroidKeepCallAlive, null), /*#__PURE__*/_react.default.createElement(CallingExpWithCallingState, null), /*#__PURE__*/_react.default.createElement(ClearPushWSSubscriptions, null), /*#__PURE__*/_react.default.createElement(ScreenShareAudioMixer, null), /*#__PURE__*/_react.default.createElement(_DeviceStats.DeviceStats, null), /*#__PURE__*/_react.default.createElement(_AudioInterruptionTracer.AudioInterruptionTracer, null), children);
|
|
35
36
|
};
|
|
36
37
|
|
|
37
38
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_videoReactBindings","require","_react","_interopRequireWildcard","_utils","_useAndroidKeepCallAliveEffect","_useScreenShareAudioMixing","_AppStateListener","_DeviceStats","_constants","_useCallingExpWithCallingStateEffect","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","StreamCall","children","createElement","StreamCallProvider","AppStateListener","AndroidKeepCallAlive","CallingExpWithCallingState","ClearPushWSSubscriptions","ScreenShareAudioMixer","DeviceStats","exports","useAndroidKeepCallAliveEffect","useCallingExpWithCallingStateEffect","useScreenShareAudioMixing","useEffect","pushUnsubscriptionCallbacks","forEach","cbArray","cb","clear","canAddPushWSSubscriptionsRef","current"],"sourceRoot":"../../../../src","sources":["providers/StreamCall/index.tsx"],"mappings":";;;;;;AAAA,IAAAA,mBAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,uBAAA,CAAAF,OAAA;AAEA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,8BAAA,GAAAJ,OAAA;AACA,IAAAK,0BAAA,GAAAL,OAAA;AACA,IAAAM,iBAAA,GAAAN,OAAA;AACA,IAAAO,YAAA,GAAAP,OAAA;AACA,IAAAQ,
|
|
1
|
+
{"version":3,"names":["_videoReactBindings","require","_react","_interopRequireWildcard","_utils","_useAndroidKeepCallAliveEffect","_useScreenShareAudioMixing","_AppStateListener","_DeviceStats","_AudioInterruptionTracer","_constants","_useCallingExpWithCallingStateEffect","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","StreamCall","children","createElement","StreamCallProvider","AppStateListener","AndroidKeepCallAlive","CallingExpWithCallingState","ClearPushWSSubscriptions","ScreenShareAudioMixer","DeviceStats","AudioInterruptionTracer","exports","useAndroidKeepCallAliveEffect","useCallingExpWithCallingStateEffect","useScreenShareAudioMixing","useEffect","pushUnsubscriptionCallbacks","forEach","cbArray","cb","clear","canAddPushWSSubscriptionsRef","current"],"sourceRoot":"../../../../src","sources":["providers/StreamCall/index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -62,6 +62,11 @@ const onVoipNotificationReceived = async (notification, pushConfig) => {
|
|
|
62
62
|
if (mustEndCall) {
|
|
63
63
|
logger.debug(`callingx.endCallWithReason for call_cid: ${call_cid} endCallReason: ${endCallReason}`);
|
|
64
64
|
callingx.endCallWithReason(call_cid, endCallReason);
|
|
65
|
+
callFromPush.leave({
|
|
66
|
+
reject: false
|
|
67
|
+
}).catch(error => {
|
|
68
|
+
logger.error(`Failed to leave already-ended ringing call ${call_cid}: ${error}`);
|
|
69
|
+
});
|
|
65
70
|
return true;
|
|
66
71
|
}
|
|
67
72
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_videoClient","require","_reactNative","_callingx","_constants","_utils","onVoipNotificationReceived","notification","pushConfig","logger","videoLoggerSystem","getLogger","sender","stream","type","call_cid","Platform","OS","ios","pushProviderName","callingx","getCallingxLib","pushUnsubscriptionCallbacks","has","debug","client","createStreamVideoClient","callFromPush","onRingingCall","closeCallIfNecessary","mustEndCall","endCallReason","shouldCallBeClosed","endCallWithReason","closed","canListenToWS","unsubscribe","on","event","_canListenToWS","delete","_closed","get","forEach","cb","set","exports"],"sourceRoot":"../../../../../src","sources":["utils/push/internal/ios.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AAEO,MAAMK,0BAA0B,GAAG,MAAAA,CACxCC,YAAiB,EACjBC,UAAkD,KAC/C;EACH;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAMC,MAAM,GAAGC,8BAAiB,CAACC,SAAS,CACxC,uCACF,CAAC;EAED,MAAMC,MAAM,GAAGL,YAAY,EAAEM,MAAM,EAAED,MAAM;EAC3C,MAAME,IAAI,GAAGP,YAAY,EAAEM,MAAM,EAAEC,IAAI;EACvC;EACA,IAAIF,MAAM,KAAK,cAAc,IAAIE,IAAI,KAAK,WAAW,EAAE;IACrD;EACF;EAEA,MAAMC,QAAQ,GAAGR,YAAY,EAAEM,MAAM,EAAEE,QAAQ;EAC/C,IAAI,CAACA,QAAQ,IAAIC,qBAAQ,CAACC,EAAE,KAAK,KAAK,IAAI,CAACT,UAAU,CAACU,GAAG,EAAEC,gBAAgB,EAAE;IAC3E;EACF;EAEA,MAAMC,QAAQ,GAAG,IAAAC,wBAAc,EAAC,CAAC;EACjC,IAAIC,sCAA2B,CAACC,GAAG,CAACR,QAAQ,CAAC,EAAE;IAC7CN,MAAM,CAACe,KAAK,CACV,qBAAqBT,QAAQ,gEAC/B,CAAC;IACD;EACF;EAEA,MAAMU,MAAM,GAAG,MAAMjB,UAAU,CAACkB,uBAAuB,CAAC,CAAC;EACzD,IAAI,CAACD,MAAM,EAAE;IACXhB,MAAM,CAACe,KAAK,CACV,mEACF,CAAC;IACD;EACF;EAEA,MAAMG,YAAY,GAAG,MAAMF,MAAM,CAACG,aAAa,CAACb,QAAQ,CAAC;EAEzD,SAASc,oBAAoBA,CAAA,EAAG;IAC9B,MAAM;MAAEC,WAAW;MAAEC;IAAc,CAAC,GAAG,IAAAC,yBAAkB,EACvDL,YAAY,EACZpB,YAAY,EAAEM,MAChB,CAAC;IACD,IAAIiB,WAAW,EAAE;MACfrB,MAAM,CAACe,KAAK,CACV,4CAA4CT,QAAQ,mBAAmBgB,aAAa,EACtF,CAAC;MACDX,QAAQ,CAACa,iBAAiB,CAAClB,QAAQ,EAAEgB,aAAa,CAAC;
|
|
1
|
+
{"version":3,"names":["_videoClient","require","_reactNative","_callingx","_constants","_utils","onVoipNotificationReceived","notification","pushConfig","logger","videoLoggerSystem","getLogger","sender","stream","type","call_cid","Platform","OS","ios","pushProviderName","callingx","getCallingxLib","pushUnsubscriptionCallbacks","has","debug","client","createStreamVideoClient","callFromPush","onRingingCall","closeCallIfNecessary","mustEndCall","endCallReason","shouldCallBeClosed","endCallWithReason","leave","reject","catch","error","closed","canListenToWS","unsubscribe","on","event","_canListenToWS","delete","_closed","get","forEach","cb","set","exports"],"sourceRoot":"../../../../../src","sources":["utils/push/internal/ios.ts"],"mappings":"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","ignoreList":[]}
|
package/dist/commonjs/version.js
CHANGED
|
@@ -3,6 +3,7 @@ import { getCallingxLibIfAvailable } from '../../utils/push/libs/callingx';
|
|
|
3
3
|
import { videoLoggerSystem } from '@stream-io/video-client';
|
|
4
4
|
const NativeManager = NativeModules.StreamInCallManager;
|
|
5
5
|
const CallingxModule = getCallingxLibIfAvailable();
|
|
6
|
+
const AUDIO_INTERRUPTION_EVENT = 'StreamInCallManagerAudioInterruption';
|
|
6
7
|
const invariant = (condition, message) => {
|
|
7
8
|
if (!condition) throw new Error(message);
|
|
8
9
|
};
|
|
@@ -44,6 +45,18 @@ class IOSCallManager {
|
|
|
44
45
|
invariant(Platform.OS === 'ios', 'Supported only on iOS');
|
|
45
46
|
NativeManager.showAudioRoutePicker();
|
|
46
47
|
};
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Register a listener for iOS audio interruptions.
|
|
51
|
+
*
|
|
52
|
+
* @param onInterruption callback to be called when iOS reports an audio interruption.
|
|
53
|
+
*/
|
|
54
|
+
addAudioInterruptionListener = onInterruption => {
|
|
55
|
+
invariant(Platform.OS === 'ios', 'Supported only on iOS');
|
|
56
|
+
this.eventEmitter ??= new NativeEventEmitter(NativeManager);
|
|
57
|
+
const s = this.eventEmitter.addListener(AUDIO_INTERRUPTION_EVENT, onInterruption);
|
|
58
|
+
return () => s.remove();
|
|
59
|
+
};
|
|
47
60
|
}
|
|
48
61
|
class SpeakerManager {
|
|
49
62
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeEventEmitter","NativeModules","Platform","getCallingxLibIfAvailable","videoLoggerSystem","NativeManager","StreamInCallManager","CallingxModule","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","shouldBypassForCallKit","isSetup","hasRegisteredCall","isOngoingCallsEnabled","CallManager","android","ios","speaker","start","config","audioRole","type","deviceEndpointType","setDefaultAudioDeviceEndpointType","getLogger","debug","setAudioRole","enableStereoAudioOutput","setEnableStereoAudioOutput","stop","logAudioState","getAudioStateLog"],"sourceRoot":"../../../../src","sources":["modules/call-manager/CallManager.ts"],"mappings":"AAAA,SAASA,kBAAkB,EAAEC,aAAa,EAAEC,QAAQ,QAAQ,cAAc;
|
|
1
|
+
{"version":3,"names":["NativeEventEmitter","NativeModules","Platform","getCallingxLibIfAvailable","videoLoggerSystem","NativeManager","StreamInCallManager","CallingxModule","AUDIO_INTERRUPTION_EVENT","invariant","condition","message","Error","AndroidCallManager","getAudioDeviceStatus","OS","selectAudioDevice","endpointName","chooseAudioDeviceEndpoint","addAudioDeviceChangeListener","onChange","eventEmitter","s","addListener","remove","IOSCallManager","showDeviceSelector","showAudioRoutePicker","addAudioInterruptionListener","onInterruption","SpeakerManager","setMute","mute","muteAudioOutput","unmuteAudioOutput","setForceSpeakerphoneOn","force","shouldBypassForCallKit","isSetup","hasRegisteredCall","isOngoingCallsEnabled","CallManager","android","ios","speaker","start","config","audioRole","type","deviceEndpointType","setDefaultAudioDeviceEndpointType","getLogger","debug","setAudioRole","enableStereoAudioOutput","setEnableStereoAudioOutput","stop","logAudioState","getAudioStateLog"],"sourceRoot":"../../../../src","sources":["modules/call-manager/CallManager.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { useCall } from '@stream-io/video-react-bindings';
|
|
2
|
+
import { useEffect } from 'react';
|
|
3
|
+
import { Platform } from 'react-native';
|
|
4
|
+
import { callManager } from '../../modules/call-manager';
|
|
5
|
+
import { getCallingxLibIfAvailable } from '../../utils/push/libs/callingx';
|
|
6
|
+
import { videoLoggerSystem } from '@stream-io/video-client';
|
|
7
|
+
/**
|
|
8
|
+
* Traces iOS audio interruptions while a StreamCall provider is mounted.
|
|
9
|
+
*/
|
|
10
|
+
export const AudioInterruptionTracer = () => {
|
|
11
|
+
const call = useCall();
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
if (Platform.OS !== 'ios' || !call) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
const traceAudioInterruption = event => {
|
|
17
|
+
call.tracer.trace(`ios.audioInterruption.${event.phase}`, event);
|
|
18
|
+
videoLoggerSystem.getLogger('Call').info(`ios.audioInterruption.${event.phase}`, event);
|
|
19
|
+
};
|
|
20
|
+
const removeInCallManagerListener = callManager.ios.addAudioInterruptionListener(traceAudioInterruption);
|
|
21
|
+
const callingx = getCallingxLibIfAvailable();
|
|
22
|
+
const callingxSubscription = callingx?.addEventListener('didAudioInterruption', traceAudioInterruption);
|
|
23
|
+
return () => {
|
|
24
|
+
removeInCallManagerListener();
|
|
25
|
+
callingxSubscription?.remove();
|
|
26
|
+
};
|
|
27
|
+
}, [call]);
|
|
28
|
+
return null;
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=AudioInterruptionTracer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useCall","useEffect","Platform","callManager","getCallingxLibIfAvailable","videoLoggerSystem","AudioInterruptionTracer","call","OS","traceAudioInterruption","event","tracer","trace","phase","getLogger","info","removeInCallManagerListener","ios","addAudioInterruptionListener","callingx","callingxSubscription","addEventListener","remove"],"sourceRoot":"../../../../src","sources":["providers/StreamCall/AudioInterruptionTracer.tsx"],"mappings":"AAAA,SAASA,OAAO,QAAQ,iCAAiC;AACzD,SAASC,SAAS,QAAQ,OAAO;AACjC,SAASC,QAAQ,QAAQ,cAAc;AACvC,SAASC,WAAW,QAAQ,4BAA4B;AAExD,SAASC,yBAAyB,QAAQ,gCAAgC;AAC1E,SAASC,iBAAiB,QAAQ,yBAAyB;AAS3D;AACA;AACA;AACA,OAAO,MAAMC,uBAAuB,GAAGA,CAAA,KAAM;EAC3C,MAAMC,IAAI,GAAGP,OAAO,CAAC,CAAC;EAEtBC,SAAS,CAAC,MAAM;IACd,IAAIC,QAAQ,CAACM,EAAE,KAAK,KAAK,IAAI,CAACD,IAAI,EAAE;MAClC;IACF;IAEA,MAAME,sBAAsB,GAAIC,KAAgC,IAAK;MACnEH,IAAI,CAACI,MAAM,CAACC,KAAK,CAAC,yBAAyBF,KAAK,CAACG,KAAK,EAAE,EAAEH,KAAK,CAAC;MAChEL,iBAAiB,CACdS,SAAS,CAAC,MAAM,CAAC,CACjBC,IAAI,CAAC,yBAAyBL,KAAK,CAACG,KAAK,EAAE,EAAEH,KAAK,CAAC;IACxD,CAAC;IAED,MAAMM,2BAA2B,GAC/Bb,WAAW,CAACc,GAAG,CAACC,4BAA4B,CAACT,sBAAsB,CAAC;IACtE,MAAMU,QAAQ,GAAGf,yBAAyB,CAAC,CAE9B;IACb,MAAMgB,oBAAoB,GAAGD,QAAQ,EAAEE,gBAAgB,CACrD,sBAAsB,EACtBZ,sBACF,CAAC;IAED,OAAO,MAAM;MACXO,2BAA2B,CAAC,CAAC;MAC7BI,oBAAoB,EAAEE,MAAM,CAAC,CAAC;IAChC,CAAC;EACH,CAAC,EAAE,CAACf,IAAI,CAAC,CAAC;EAEV,OAAO,IAAI;AACb,CAAC","ignoreList":[]}
|
|
@@ -5,6 +5,7 @@ import { useAndroidKeepCallAliveEffect } from '../../hooks/useAndroidKeepCallAli
|
|
|
5
5
|
import { useScreenShareAudioMixing } from '../../hooks/useScreenShareAudioMixing';
|
|
6
6
|
import { AppStateListener } from './AppStateListener';
|
|
7
7
|
import { DeviceStats } from './DeviceStats';
|
|
8
|
+
import { AudioInterruptionTracer } from './AudioInterruptionTracer';
|
|
8
9
|
import { pushUnsubscriptionCallbacks } from '../../utils/push/internal/constants';
|
|
9
10
|
import { useCallingExpWithCallingStateEffect } from '../../hooks/push/useCallingExpWithCallingStateEffect';
|
|
10
11
|
|
|
@@ -25,7 +26,7 @@ export const StreamCall = ({
|
|
|
25
26
|
}) => {
|
|
26
27
|
return /*#__PURE__*/React.createElement(StreamCallProvider, {
|
|
27
28
|
call: call
|
|
28
|
-
}, /*#__PURE__*/React.createElement(AppStateListener, null), /*#__PURE__*/React.createElement(AndroidKeepCallAlive, null), /*#__PURE__*/React.createElement(CallingExpWithCallingState, null), /*#__PURE__*/React.createElement(ClearPushWSSubscriptions, null), /*#__PURE__*/React.createElement(ScreenShareAudioMixer, null), /*#__PURE__*/React.createElement(DeviceStats, null), children);
|
|
29
|
+
}, /*#__PURE__*/React.createElement(AppStateListener, null), /*#__PURE__*/React.createElement(AndroidKeepCallAlive, null), /*#__PURE__*/React.createElement(CallingExpWithCallingState, null), /*#__PURE__*/React.createElement(ClearPushWSSubscriptions, null), /*#__PURE__*/React.createElement(ScreenShareAudioMixer, null), /*#__PURE__*/React.createElement(DeviceStats, null), /*#__PURE__*/React.createElement(AudioInterruptionTracer, null), children);
|
|
29
30
|
};
|
|
30
31
|
|
|
31
32
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["StreamCallProvider","React","useEffect","canAddPushWSSubscriptionsRef","useAndroidKeepCallAliveEffect","useScreenShareAudioMixing","AppStateListener","DeviceStats","pushUnsubscriptionCallbacks","useCallingExpWithCallingStateEffect","StreamCall","call","children","createElement","AndroidKeepCallAlive","CallingExpWithCallingState","ClearPushWSSubscriptions","ScreenShareAudioMixer","forEach","cbArray","cb","clear","current"],"sourceRoot":"../../../../src","sources":["providers/StreamCall/index.tsx"],"mappings":"AAAA,SAASA,kBAAkB,QAAQ,iCAAiC;AACpE,OAAOC,KAAK,IAA4BC,SAAS,QAAQ,OAAO;AAEhE,SAASC,4BAA4B,QAAQ,iCAAiC;AAC9E,SAASC,6BAA6B,QAAQ,2CAA2C;AACzF,SAASC,yBAAyB,QAAQ,uCAAuC;AACjF,SAASC,gBAAgB,QAAQ,oBAAoB;AACrD,SAASC,WAAW,QAAQ,eAAe;AAC3C,SAASC,2BAA2B,QAAQ,qCAAqC;AACjF,SAASC,mCAAmC,QAAQ,sDAAsD;;AAE1G;;AAEA;;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,UAAU,GAAGA,CAAC;EACzBC,IAAI;EACJC;AACkC,CAAC,KAAK;EACxC,
|
|
1
|
+
{"version":3,"names":["StreamCallProvider","React","useEffect","canAddPushWSSubscriptionsRef","useAndroidKeepCallAliveEffect","useScreenShareAudioMixing","AppStateListener","DeviceStats","AudioInterruptionTracer","pushUnsubscriptionCallbacks","useCallingExpWithCallingStateEffect","StreamCall","call","children","createElement","AndroidKeepCallAlive","CallingExpWithCallingState","ClearPushWSSubscriptions","ScreenShareAudioMixer","forEach","cbArray","cb","clear","current"],"sourceRoot":"../../../../src","sources":["providers/StreamCall/index.tsx"],"mappings":"AAAA,SAASA,kBAAkB,QAAQ,iCAAiC;AACpE,OAAOC,KAAK,IAA4BC,SAAS,QAAQ,OAAO;AAEhE,SAASC,4BAA4B,QAAQ,iCAAiC;AAC9E,SAASC,6BAA6B,QAAQ,2CAA2C;AACzF,SAASC,yBAAyB,QAAQ,uCAAuC;AACjF,SAASC,gBAAgB,QAAQ,oBAAoB;AACrD,SAASC,WAAW,QAAQ,eAAe;AAC3C,SAASC,uBAAuB,QAAQ,2BAA2B;AACnE,SAASC,2BAA2B,QAAQ,qCAAqC;AACjF,SAASC,mCAAmC,QAAQ,sDAAsD;;AAE1G;;AAEA;;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,UAAU,GAAGA,CAAC;EACzBC,IAAI;EACJC;AACkC,CAAC,KAAK;EACxC,oBACEZ,KAAA,CAAAa,aAAA,CAACd,kBAAkB;IAACY,IAAI,EAAEA;EAAK,gBAC7BX,KAAA,CAAAa,aAAA,CAACR,gBAAgB,MAAE,CAAC,eACpBL,KAAA,CAAAa,aAAA,CAACC,oBAAoB,MAAE,CAAC,eACxBd,KAAA,CAAAa,aAAA,CAACE,0BAA0B,MAAE,CAAC,eAC9Bf,KAAA,CAAAa,aAAA,CAACG,wBAAwB,MAAE,CAAC,eAC5BhB,KAAA,CAAAa,aAAA,CAACI,qBAAqB,MAAE,CAAC,eACzBjB,KAAA,CAAAa,aAAA,CAACP,WAAW,MAAE,CAAC,eACfN,KAAA,CAAAa,aAAA,CAACN,uBAAuB,MAAE,CAAC,EAC1BK,QACiB,CAAC;AAEzB,CAAC;;AAED;AACA;AACA;AACA;AACA,MAAME,oBAAoB,GAAGA,CAAA,KAAM;EACjCX,6BAA6B,CAAC,CAAC;EAC/B,OAAO,IAAI;AACb,CAAC;;AAED;AACA;AACA;AACA;AACA,MAAMY,0BAA0B,GAAGA,CAAA,KAAM;EACvCN,mCAAmC,CAAC,CAAC;EACrC,OAAO,IAAI;AACb,CAAC;;AAED;AACA;AACA;AACA;AACA,MAAMQ,qBAAqB,GAAGA,CAAA,KAAM;EAClCb,yBAAyB,CAAC,CAAC;EAC3B,OAAO,IAAI;AACb,CAAC;;AAED;AACA;AACA;AACA;AACA,MAAMY,wBAAwB,GAAGA,CAAA,KAAM;EACrCf,SAAS,CAAC,MAAM;IACd;IACAO,2BAA2B,CAACU,OAAO,CAAEC,OAAO,IAC1CA,OAAO,CAACD,OAAO,CAAEE,EAAE,IAAKA,EAAE,CAAC,CAAC,CAC9B,CAAC;IACDZ,2BAA2B,CAACa,KAAK,CAAC,CAAC;IACnCnB,4BAA4B,CAACoB,OAAO,GAAG,KAAK;IAC5C,OAAO,MAAM;MACXpB,4BAA4B,CAACoB,OAAO,GAAG,IAAI;IAC7C,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EACN,OAAO,IAAI;AACb,CAAC","ignoreList":[]}
|
|
@@ -56,6 +56,11 @@ export const onVoipNotificationReceived = async (notification, pushConfig) => {
|
|
|
56
56
|
if (mustEndCall) {
|
|
57
57
|
logger.debug(`callingx.endCallWithReason for call_cid: ${call_cid} endCallReason: ${endCallReason}`);
|
|
58
58
|
callingx.endCallWithReason(call_cid, endCallReason);
|
|
59
|
+
callFromPush.leave({
|
|
60
|
+
reject: false
|
|
61
|
+
}).catch(error => {
|
|
62
|
+
logger.error(`Failed to leave already-ended ringing call ${call_cid}: ${error}`);
|
|
63
|
+
});
|
|
59
64
|
return true;
|
|
60
65
|
}
|
|
61
66
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["videoLoggerSystem","Platform","getCallingxLib","pushUnsubscriptionCallbacks","canListenToWS","shouldCallBeClosed","onVoipNotificationReceived","notification","pushConfig","logger","getLogger","sender","stream","type","call_cid","OS","ios","pushProviderName","callingx","has","debug","client","createStreamVideoClient","callFromPush","onRingingCall","closeCallIfNecessary","mustEndCall","endCallReason","endCallWithReason","closed","unsubscribe","on","event","_canListenToWS","delete","_closed","get","forEach","cb","set"],"sourceRoot":"../../../../../src","sources":["utils/push/internal/ios.ts"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,yBAAyB;AAC3D,SAASC,QAAQ,QAAQ,cAAc;AAEvC,SAASC,cAAc,QAAQ,kBAAkB;AACjD,SAASC,2BAA2B,QAAQ,aAAa;AACzD,SAASC,aAAa,EAAEC,kBAAkB,QAAQ,SAAS;AAE3D,OAAO,MAAMC,0BAA0B,GAAG,MAAAA,CACxCC,YAAiB,EACjBC,UAAkD,KAC/C;EACH;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAMC,MAAM,GAAGT,iBAAiB,CAACU,SAAS,CACxC,uCACF,CAAC;EAED,MAAMC,MAAM,GAAGJ,YAAY,EAAEK,MAAM,EAAED,MAAM;EAC3C,MAAME,IAAI,GAAGN,YAAY,EAAEK,MAAM,EAAEC,IAAI;EACvC;EACA,IAAIF,MAAM,KAAK,cAAc,IAAIE,IAAI,KAAK,WAAW,EAAE;IACrD;EACF;EAEA,MAAMC,QAAQ,GAAGP,YAAY,EAAEK,MAAM,EAAEE,QAAQ;EAC/C,IAAI,CAACA,QAAQ,IAAIb,QAAQ,CAACc,EAAE,KAAK,KAAK,IAAI,CAACP,UAAU,CAACQ,GAAG,EAAEC,gBAAgB,EAAE;IAC3E;EACF;EAEA,MAAMC,QAAQ,GAAGhB,cAAc,CAAC,CAAC;EACjC,IAAIC,2BAA2B,CAACgB,GAAG,CAACL,QAAQ,CAAC,EAAE;IAC7CL,MAAM,CAACW,KAAK,CACV,qBAAqBN,QAAQ,gEAC/B,CAAC;IACD;EACF;EAEA,MAAMO,MAAM,GAAG,MAAMb,UAAU,CAACc,uBAAuB,CAAC,CAAC;EACzD,IAAI,CAACD,MAAM,EAAE;IACXZ,MAAM,CAACW,KAAK,CACV,mEACF,CAAC;IACD;EACF;EAEA,MAAMG,YAAY,GAAG,MAAMF,MAAM,CAACG,aAAa,CAACV,QAAQ,CAAC;EAEzD,SAASW,oBAAoBA,CAAA,EAAG;IAC9B,MAAM;MAAEC,WAAW;MAAEC;IAAc,CAAC,GAAGtB,kBAAkB,CACvDkB,YAAY,EACZhB,YAAY,EAAEK,MAChB,CAAC;IACD,IAAIc,WAAW,EAAE;MACfjB,MAAM,CAACW,KAAK,CACV,4CAA4CN,QAAQ,mBAAmBa,aAAa,EACtF,CAAC;MACDT,QAAQ,CAACU,iBAAiB,CAACd,QAAQ,EAAEa,aAAa,CAAC;
|
|
1
|
+
{"version":3,"names":["videoLoggerSystem","Platform","getCallingxLib","pushUnsubscriptionCallbacks","canListenToWS","shouldCallBeClosed","onVoipNotificationReceived","notification","pushConfig","logger","getLogger","sender","stream","type","call_cid","OS","ios","pushProviderName","callingx","has","debug","client","createStreamVideoClient","callFromPush","onRingingCall","closeCallIfNecessary","mustEndCall","endCallReason","endCallWithReason","leave","reject","catch","error","closed","unsubscribe","on","event","_canListenToWS","delete","_closed","get","forEach","cb","set"],"sourceRoot":"../../../../../src","sources":["utils/push/internal/ios.ts"],"mappings":"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","ignoreList":[]}
|
package/dist/module/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const version = '1.
|
|
1
|
+
export const version = '1.38.0';
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AudioDeviceStatus, StreamInCallManagerConfig } from './types';
|
|
1
|
+
import type { AudioDeviceStatus, IOSAudioInterruptionEvent, StreamInCallManagerConfig } from './types';
|
|
2
2
|
declare class AndroidCallManager {
|
|
3
3
|
private eventEmitter?;
|
|
4
4
|
/**
|
|
@@ -18,10 +18,17 @@ declare class AndroidCallManager {
|
|
|
18
18
|
addAudioDeviceChangeListener: (onChange: (audioDeviceStatus: AudioDeviceStatus) => void) => (() => void);
|
|
19
19
|
}
|
|
20
20
|
declare class IOSCallManager {
|
|
21
|
+
private eventEmitter?;
|
|
21
22
|
/**
|
|
22
23
|
* Will trigger the iOS device selector.
|
|
23
24
|
*/
|
|
24
25
|
showDeviceSelector: () => void;
|
|
26
|
+
/**
|
|
27
|
+
* Register a listener for iOS audio interruptions.
|
|
28
|
+
*
|
|
29
|
+
* @param onInterruption callback to be called when iOS reports an audio interruption.
|
|
30
|
+
*/
|
|
31
|
+
addAudioInterruptionListener: (onInterruption: (event: IOSAudioInterruptionEvent) => void) => (() => void);
|
|
25
32
|
}
|
|
26
33
|
declare class SpeakerManager {
|
|
27
34
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CallManager.d.ts","sourceRoot":"","sources":["../../../../src/modules/call-manager/CallManager.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"CallManager.d.ts","sourceRoot":"","sources":["../../../../src/modules/call-manager/CallManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,iBAAiB,EACjB,yBAAyB,EACzB,yBAAyB,EAC1B,MAAM,SAAS,CAAC;AAYjB,cAAM,kBAAkB;IACtB,OAAO,CAAC,YAAY,CAAC,CAAqB;IAE1C;;OAEG;IACH,oBAAoB,QAAa,OAAO,CAAC,iBAAiB,CAAC,CAGzD;IAEF;;;;OAIG;IACH,iBAAiB,GAAI,cAAc,MAAM,KAAG,IAAI,CAG9C;IAEF;;;OAGG;IACH,4BAA4B,GAC1B,UAAU,CAAC,iBAAiB,EAAE,iBAAiB,KAAK,IAAI,KACvD,CAAC,MAAM,IAAI,CAAC,CAKb;CACH;AAED,cAAM,cAAc;IAClB,OAAO,CAAC,YAAY,CAAC,CAAqB;IAE1C;;OAEG;IACH,kBAAkB,QAAO,IAAI,CAG3B;IAEF;;;;OAIG;IACH,4BAA4B,GAC1B,gBAAgB,CAAC,KAAK,EAAE,yBAAyB,KAAK,IAAI,KACzD,CAAC,MAAM,IAAI,CAAC,CAQb;CACH;AAED,cAAM,cAAc;IAClB;;OAEG;IACH,OAAO,GAAI,MAAM,OAAO,KAAG,IAAI,CAM7B;IAEF;;OAEG;IACH,sBAAsB,GAAI,OAAO,OAAO,KAAG,IAAI,CAE7C;CACH;AAeD,qBAAa,WAAW;IACtB,OAAO,qBAA4B;IACnC,GAAG,iBAAwB;IAC3B,OAAO,iBAAwB;IAE/B;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,GAAI,SAAS,yBAAyB,KAAG,IAAI,CAwBhD;IAEF;;OAEG;IACH,IAAI,QAAO,IAAI,CAQb;IAEF;;;OAGG;IACH,aAAa,QAAO,IAAI,CAAkC;IAE1D;;;OAGG;IACH,gBAAgB,QAAO,MAAM,CAAqC;CACnE"}
|
|
@@ -6,6 +6,12 @@ export type AudioDeviceStatus = {
|
|
|
6
6
|
};
|
|
7
7
|
export type AudioRole = 'communicator' | 'listener';
|
|
8
8
|
export type DeviceEndpointType = 'speaker' | 'earpiece';
|
|
9
|
+
export type IOSAudioInterruptionEvent = {
|
|
10
|
+
source: 'callmanager' | 'callingx';
|
|
11
|
+
phase: 'began' | 'ended';
|
|
12
|
+
reason?: 'default' | 'builtInMicMuted' | 'routeDisconnected' | (string & {});
|
|
13
|
+
shouldResume?: boolean;
|
|
14
|
+
};
|
|
9
15
|
export type StreamInCallManagerConfig = {
|
|
10
16
|
audioRole: 'communicator';
|
|
11
17
|
deviceEndpointType?: DeviceEndpointType;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/modules/call-manager/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,uBAAuB,GAC/B,kBAAkB,GAClB,UAAU,GACV,SAAS,GACT,eAAe,GACf,SAAS,GACT,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAElB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,mBAAmB,EAAE,uBAAuB,CAAC;IAC7C,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,cAAc,GAAG,UAAU,CAAC;AACpD,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,UAAU,CAAC;AAExD,MAAM,MAAM,yBAAyB,GACjC;IACE,SAAS,EAAE,cAAc,CAAC;IAC1B,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;CACzC,GACD;IACE,SAAS,EAAE,UAAU,CAAC;IACtB,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/modules/call-manager/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,uBAAuB,GAC/B,kBAAkB,GAClB,UAAU,GACV,SAAS,GACT,eAAe,GACf,SAAS,GACT,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAElB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,mBAAmB,EAAE,uBAAuB,CAAC;IAC7C,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,cAAc,GAAG,UAAU,CAAC;AACpD,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,UAAU,CAAC;AAExD,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,EAAE,aAAa,GAAG,UAAU,CAAC;IACnC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;IACzB,MAAM,CAAC,EAAE,SAAS,GAAG,iBAAiB,GAAG,mBAAmB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAC7E,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GACjC;IACE,SAAS,EAAE,cAAc,CAAC;IAC1B,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;CACzC,GACD;IACE,SAAS,EAAE,UAAU,CAAC;IACtB,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AudioInterruptionTracer.d.ts","sourceRoot":"","sources":["../../../../src/providers/StreamCall/AudioInterruptionTracer.tsx"],"names":[],"mappings":"AAeA;;GAEG;AACH,eAAO,MAAM,uBAAuB,YAgCnC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/providers/StreamCall/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,KAAK,iBAAiB,EAAa,MAAM,OAAO,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/providers/StreamCall/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,KAAK,iBAAiB,EAAa,MAAM,OAAO,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAc/C,MAAM,MAAM,eAAe,GAAG;IAC5B;;;OAGG;IACH,IAAI,EAAE,IAAI,CAAC;CACZ,CAAC;AACF;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,GAAI,qBAGxB,iBAAiB,CAAC,eAAe,CAAC,sBAapC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ios.d.ts","sourceRoot":"","sources":["../../../../../src/utils/push/internal/ios.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAK9D,eAAO,MAAM,0BAA0B,GACrC,cAAc,GAAG,EACjB,YAAY,WAAW,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"ios.d.ts","sourceRoot":"","sources":["../../../../../src/utils/push/internal/ios.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAK9D,eAAO,MAAM,0BAA0B,GACrC,cAAc,GAAG,EACjB,YAAY,WAAW,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,kBA8GnD,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const version = "1.
|
|
1
|
+
export declare const version = "1.38.0";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
|
@@ -24,8 +24,11 @@ struct StreamBufferTransformer {
|
|
|
24
24
|
let pixelBuffer: RTCVideoFrameBuffer? = {
|
|
25
25
|
if let i420buffer = frame.buffer as? RTCI420Buffer {
|
|
26
26
|
return i420buffer
|
|
27
|
+
} else if let cvPixelBuffer = frame.buffer as? RTCCVPixelBuffer {
|
|
28
|
+
return cvPixelBuffer
|
|
27
29
|
} else {
|
|
28
|
-
|
|
30
|
+
// Convert other buffer types (e.g. NV12) to i420 so the resize path can handle them.
|
|
31
|
+
return frame.buffer.toI420()
|
|
29
32
|
}
|
|
30
33
|
}()
|
|
31
34
|
|
|
@@ -87,10 +90,16 @@ struct StreamBufferTransformer {
|
|
|
87
90
|
|
|
88
91
|
// Calculate the new size while maintaining the aspect ratio.
|
|
89
92
|
let newSize = CGSize(
|
|
90
|
-
width: size.width * ratioToUse,
|
|
91
|
-
height: size.height * ratioToUse
|
|
93
|
+
width: roundedDownToEven(size.width * ratioToUse),
|
|
94
|
+
height: roundedDownToEven(size.height * ratioToUse)
|
|
92
95
|
)
|
|
93
|
-
|
|
96
|
+
|
|
94
97
|
return newSize
|
|
95
98
|
}
|
|
99
|
+
|
|
100
|
+
/// Rounds down to the nearest even integer (minimum 2), required for YUV buffers.
|
|
101
|
+
private func roundedDownToEven(_ value: CGFloat) -> CGFloat {
|
|
102
|
+
let floored = Int(value)
|
|
103
|
+
return CGFloat(max(floored - (floored % 2), 2))
|
|
104
|
+
}
|
|
96
105
|
}
|