@stream-io/video-react-native-sdk 1.40.2 → 1.42.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 +48 -0
- package/android/src/main/java/com/streamvideo/reactnative/audio/AudioDeviceManager.kt +79 -54
- package/android/src/main/java/com/streamvideo/reactnative/audio/utils/AudioManagerUtil.kt +6 -2
- package/android/src/main/java/com/streamvideo/reactnative/callmanager/StreamInCallManagerModule.kt +3 -3
- package/dist/commonjs/components/Call/CallLayout/CallParticipantsSpotlight.js +2 -0
- package/dist/commonjs/components/Call/CallLayout/CallParticipantsSpotlight.js.map +1 -1
- package/dist/commonjs/components/Call/CallParticipantsList/CallParticipantsList.js +22 -31
- package/dist/commonjs/components/Call/CallParticipantsList/CallParticipantsList.js.map +1 -1
- package/dist/commonjs/components/Call/RingingCallContent/IncomingCall.js +8 -5
- package/dist/commonjs/components/Call/RingingCallContent/IncomingCall.js.map +1 -1
- package/dist/commonjs/components/Participant/ParticipantView/VideoRenderer/index.js +2 -1
- package/dist/commonjs/components/Participant/ParticipantView/VideoRenderer/index.js.map +1 -1
- package/dist/commonjs/hooks/index.js +11 -0
- package/dist/commonjs/hooks/index.js.map +1 -1
- package/dist/commonjs/hooks/push/useCallingExpWithCallingStateEffect.js +73 -0
- package/dist/commonjs/hooks/push/useCallingExpWithCallingStateEffect.js.map +1 -1
- package/dist/commonjs/hooks/useAudioDeviceStatus.js +76 -0
- package/dist/commonjs/hooks/useAudioDeviceStatus.js.map +1 -0
- package/dist/commonjs/modules/call-manager/CallManager.js +94 -47
- package/dist/commonjs/modules/call-manager/CallManager.js.map +1 -1
- package/dist/commonjs/utils/internal/callingx/callingx.js +0 -7
- package/dist/commonjs/utils/internal/callingx/callingx.js.map +1 -1
- package/dist/commonjs/utils/push/setupCallingExpEvents.js +31 -2
- package/dist/commonjs/utils/push/setupCallingExpEvents.js.map +1 -1
- package/dist/commonjs/version.js +1 -1
- package/dist/module/components/Call/CallLayout/CallParticipantsSpotlight.js +3 -1
- package/dist/module/components/Call/CallLayout/CallParticipantsSpotlight.js.map +1 -1
- package/dist/module/components/Call/CallParticipantsList/CallParticipantsList.js +23 -32
- package/dist/module/components/Call/CallParticipantsList/CallParticipantsList.js.map +1 -1
- package/dist/module/components/Call/RingingCallContent/IncomingCall.js +9 -6
- package/dist/module/components/Call/RingingCallContent/IncomingCall.js.map +1 -1
- package/dist/module/components/Participant/ParticipantView/VideoRenderer/index.js +2 -1
- package/dist/module/components/Participant/ParticipantView/VideoRenderer/index.js.map +1 -1
- package/dist/module/hooks/index.js +1 -0
- package/dist/module/hooks/index.js.map +1 -1
- package/dist/module/hooks/push/useCallingExpWithCallingStateEffect.js +73 -0
- package/dist/module/hooks/push/useCallingExpWithCallingStateEffect.js.map +1 -1
- package/dist/module/hooks/useAudioDeviceStatus.js +71 -0
- package/dist/module/hooks/useAudioDeviceStatus.js.map +1 -0
- package/dist/module/modules/call-manager/CallManager.js +94 -47
- package/dist/module/modules/call-manager/CallManager.js.map +1 -1
- package/dist/module/utils/internal/callingx/callingx.js +0 -7
- package/dist/module/utils/internal/callingx/callingx.js.map +1 -1
- package/dist/module/utils/push/setupCallingExpEvents.js +32 -3
- package/dist/module/utils/push/setupCallingExpEvents.js.map +1 -1
- package/dist/module/version.js +1 -1
- package/dist/typescript/components/Call/CallLayout/CallParticipantsSpotlight.d.ts.map +1 -1
- package/dist/typescript/components/Call/CallParticipantsList/CallParticipantsList.d.ts.map +1 -1
- package/dist/typescript/components/Call/RingingCallContent/IncomingCall.d.ts.map +1 -1
- package/dist/typescript/components/Participant/ParticipantView/VideoRenderer/index.d.ts.map +1 -1
- package/dist/typescript/hooks/index.d.ts +1 -0
- package/dist/typescript/hooks/index.d.ts.map +1 -1
- package/dist/typescript/hooks/push/useCallingExpWithCallingStateEffect.d.ts.map +1 -1
- package/dist/typescript/hooks/useAudioDeviceStatus.d.ts +21 -0
- package/dist/typescript/hooks/useAudioDeviceStatus.d.ts.map +1 -0
- package/dist/typescript/modules/call-manager/CallManager.d.ts +25 -11
- package/dist/typescript/modules/call-manager/CallManager.d.ts.map +1 -1
- package/dist/typescript/modules/call-manager/types.d.ts +29 -3
- package/dist/typescript/modules/call-manager/types.d.ts.map +1 -1
- package/dist/typescript/utils/internal/callingx/callingx.d.ts.map +1 -1
- package/dist/typescript/utils/push/setupCallingExpEvents.d.ts.map +1 -1
- package/dist/typescript/version.d.ts +1 -1
- package/expo-config-plugin/dist/index.js +2 -0
- package/expo-config-plugin/dist/withAndroidMessagingService.js +287 -0
- package/ios/StreamInCallManager.m +7 -0
- package/ios/StreamInCallManager.swift +257 -14
- package/package.json +8 -8
- package/src/components/Call/CallLayout/CallParticipantsSpotlight.tsx +6 -1
- package/src/components/Call/CallParticipantsList/CallParticipantsList.tsx +63 -62
- package/src/components/Call/RingingCallContent/IncomingCall.tsx +10 -12
- package/src/components/Participant/ParticipantView/VideoRenderer/index.tsx +4 -1
- package/src/hooks/index.ts +1 -0
- package/src/hooks/push/useCallingExpWithCallingStateEffect.ts +95 -0
- package/src/hooks/useAudioDeviceStatus.ts +90 -0
- package/src/modules/call-manager/CallManager.ts +122 -64
- package/src/modules/call-manager/native-module.d.ts +14 -7
- package/src/modules/call-manager/types.ts +30 -3
- package/src/utils/internal/callingx/callingx.ts +0 -8
- package/src/utils/push/setupCallingExpEvents.ts +41 -3
- package/src/version.ts +1 -1
- package/dist/commonjs/utils/internal/callingx/audioSessionPromise.js +0 -68
- package/dist/commonjs/utils/internal/callingx/audioSessionPromise.js.map +0 -1
- package/dist/module/utils/internal/callingx/audioSessionPromise.js +0 -63
- package/dist/module/utils/internal/callingx/audioSessionPromise.js.map +0 -1
- package/dist/typescript/utils/internal/callingx/audioSessionPromise.d.ts +0 -16
- package/dist/typescript/utils/internal/callingx/audioSessionPromise.d.ts.map +0 -1
- package/src/utils/internal/callingx/audioSessionPromise.ts +0 -65
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useEffect, useState } from 'react';
|
|
4
|
+
import { callManager } from '../modules/call-manager';
|
|
5
|
+
/**
|
|
6
|
+
* Structural equality for two audio device states to avoid redundant re-renders.
|
|
7
|
+
*/
|
|
8
|
+
const areStatesEqual = (a, b) => {
|
|
9
|
+
if (!a) return false;
|
|
10
|
+
if (a.selectedDeviceId !== b.selectedDeviceId || a.currentEndpointType !== b.currentEndpointType || a.devices.length !== b.devices.length) {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
return a.devices.every((device, i) => {
|
|
14
|
+
const other = b.devices[i];
|
|
15
|
+
return other !== undefined && device.id === other.id && device.name === other.name && device.type === other.type;
|
|
16
|
+
});
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Subscribes to the current audio output device state and keeps it in sync.
|
|
21
|
+
*
|
|
22
|
+
* Works on Android, iOS, and iOS with CallKit
|
|
23
|
+
* (`@stream-io/react-native-callingx`) — the underlying source is selected
|
|
24
|
+
* automatically. Pair with `callManager.audioDevices.select(device.id)` to
|
|
25
|
+
* build a custom audio route picker.
|
|
26
|
+
*
|
|
27
|
+
* @returns the latest {@link AudioDevicesState}, or `undefined` until the
|
|
28
|
+
* initial status resolves.
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```tsx
|
|
32
|
+
* const status = useAudioDeviceStatus();
|
|
33
|
+
* const { devices, selectedDeviceId } = status ?? {};
|
|
34
|
+
* // callManager.audioDevices.select(devices[0].id);
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export const useAudioDeviceStatus = () => {
|
|
38
|
+
const [state, setState] = useState();
|
|
39
|
+
useEffect(() => {
|
|
40
|
+
let active = true;
|
|
41
|
+
let receivedUpdate = false;
|
|
42
|
+
let unsubscribe = () => {};
|
|
43
|
+
const applyIfChanged = next => {
|
|
44
|
+
setState(prev => areStatesEqual(prev, next) ? prev : next);
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
// Live change events take precedence over the initial fetch.
|
|
48
|
+
const onChange = next => {
|
|
49
|
+
if (!active) return;
|
|
50
|
+
receivedUpdate = true;
|
|
51
|
+
applyIfChanged(next);
|
|
52
|
+
};
|
|
53
|
+
try {
|
|
54
|
+
// Subscribe before fetching so no change between the two is missed.
|
|
55
|
+
unsubscribe = callManager.audioDevices.addChangeListener(onChange);
|
|
56
|
+
callManager.audioDevices.getStatus().then(initial => {
|
|
57
|
+
// Don't let the initial snapshot clobber newer event-driven state,
|
|
58
|
+
// and ignore it entirely after unmount.
|
|
59
|
+
if (active && !receivedUpdate) applyIfChanged(initial);
|
|
60
|
+
}).catch(() => {});
|
|
61
|
+
} catch {
|
|
62
|
+
// Native/bridge error during setup — leave state undefined.
|
|
63
|
+
}
|
|
64
|
+
return () => {
|
|
65
|
+
active = false;
|
|
66
|
+
unsubscribe();
|
|
67
|
+
};
|
|
68
|
+
}, []);
|
|
69
|
+
return state;
|
|
70
|
+
};
|
|
71
|
+
//# sourceMappingURL=useAudioDeviceStatus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useEffect","useState","callManager","areStatesEqual","a","b","selectedDeviceId","currentEndpointType","devices","length","every","device","i","other","undefined","id","name","type","useAudioDeviceStatus","state","setState","active","receivedUpdate","unsubscribe","applyIfChanged","next","prev","onChange","audioDevices","addChangeListener","getStatus","then","initial","catch"],"sourceRoot":"../../../src","sources":["hooks/useAudioDeviceStatus.ts"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAC3C,SAASC,WAAW,QAAQ,yBAAyB;AAGrD;AACA;AACA;AACA,MAAMC,cAAc,GAAGA,CACrBC,CAAgC,EAChCC,CAAoB,KACR;EACZ,IAAI,CAACD,CAAC,EAAE,OAAO,KAAK;EACpB,IACEA,CAAC,CAACE,gBAAgB,KAAKD,CAAC,CAACC,gBAAgB,IACzCF,CAAC,CAACG,mBAAmB,KAAKF,CAAC,CAACE,mBAAmB,IAC/CH,CAAC,CAACI,OAAO,CAACC,MAAM,KAAKJ,CAAC,CAACG,OAAO,CAACC,MAAM,EACrC;IACA,OAAO,KAAK;EACd;EACA,OAAOL,CAAC,CAACI,OAAO,CAACE,KAAK,CAAC,CAACC,MAAM,EAAEC,CAAC,KAAK;IACpC,MAAMC,KAAK,GAAGR,CAAC,CAACG,OAAO,CAACI,CAAC,CAAC;IAC1B,OACEC,KAAK,KAAKC,SAAS,IACnBH,MAAM,CAACI,EAAE,KAAKF,KAAK,CAACE,EAAE,IACtBJ,MAAM,CAACK,IAAI,KAAKH,KAAK,CAACG,IAAI,IAC1BL,MAAM,CAACM,IAAI,KAAKJ,KAAK,CAACI,IAAI;EAE9B,CAAC,CAAC;AACJ,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,oBAAoB,GAAGA,CAAA,KAAqC;EACvE,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGnB,QAAQ,CAAoB,CAAC;EAEvDD,SAAS,CAAC,MAAM;IACd,IAAIqB,MAAM,GAAG,IAAI;IACjB,IAAIC,cAAc,GAAG,KAAK;IAC1B,IAAIC,WAAW,GAAGA,CAAA,KAAM,CAAC,CAAC;IAE1B,MAAMC,cAAc,GAAIC,IAAuB,IAAK;MAClDL,QAAQ,CAAEM,IAAI,IAAMvB,cAAc,CAACuB,IAAI,EAAED,IAAI,CAAC,GAAGC,IAAI,GAAGD,IAAK,CAAC;IAChE,CAAC;;IAED;IACA,MAAME,QAAQ,GAAIF,IAAuB,IAAK;MAC5C,IAAI,CAACJ,MAAM,EAAE;MACbC,cAAc,GAAG,IAAI;MACrBE,cAAc,CAACC,IAAI,CAAC;IACtB,CAAC;IAED,IAAI;MACF;MACAF,WAAW,GAAGrB,WAAW,CAAC0B,YAAY,CAACC,iBAAiB,CAACF,QAAQ,CAAC;MAClEzB,WAAW,CAAC0B,YAAY,CACrBE,SAAS,CAAC,CAAC,CACXC,IAAI,CAAEC,OAAO,IAAK;QACjB;QACA;QACA,IAAIX,MAAM,IAAI,CAACC,cAAc,EAAEE,cAAc,CAACQ,OAAO,CAAC;MACxD,CAAC,CAAC,CACDC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACpB,CAAC,CAAC,MAAM;MACN;IAAA;IAGF,OAAO,MAAM;MACXZ,MAAM,GAAG,KAAK;MACdE,WAAW,CAAC,CAAC;IACf,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOJ,KAAK;AACd,CAAC","ignoreList":[]}
|
|
@@ -6,10 +6,23 @@ import { videoLoggerSystem } from '@stream-io/video-client';
|
|
|
6
6
|
const NativeManager = NativeModules.StreamInCallManager;
|
|
7
7
|
const CallingxModule = getCallingxLibIfAvailable();
|
|
8
8
|
const AUDIO_INTERRUPTION_EVENT = 'StreamInCallManagerAudioInterruption';
|
|
9
|
+
const AUDIO_DEVICE_CHANGED_EVENT = 'onAudioDeviceChanged';
|
|
9
10
|
const invariant = (condition, message) => {
|
|
10
11
|
if (!condition) throw new Error(message);
|
|
11
12
|
};
|
|
12
13
|
|
|
14
|
+
/**
|
|
15
|
+
* Runs a fire-and-forget native call, logging instead of throwing on a bridge
|
|
16
|
+
* error so it can't crash the caller or an event-dispatch loop.
|
|
17
|
+
*/
|
|
18
|
+
const safeNativeCall = (label, fn) => {
|
|
19
|
+
try {
|
|
20
|
+
fn();
|
|
21
|
+
} catch (error) {
|
|
22
|
+
videoLoggerSystem.getLogger('CallManager').warn(`${label} failed`, error);
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
|
|
13
26
|
/**
|
|
14
27
|
* On Android, whether the current call is managed by Telecom (via callingx).
|
|
15
28
|
* In that mode, audio routing/mode is owned by Telecom and StreamInCallManager audio methods should not be used
|
|
@@ -41,7 +54,7 @@ const getTelecomContext = () => {
|
|
|
41
54
|
};
|
|
42
55
|
};
|
|
43
56
|
|
|
44
|
-
/** Map a generic Telecom endpoint type to the SDK's endpoint
|
|
57
|
+
/** Map a generic Telecom endpoint type to the SDK's endpoint type. */
|
|
45
58
|
const endpointTypeToDisplayName = type => {
|
|
46
59
|
switch (type) {
|
|
47
60
|
case 'earpiece':
|
|
@@ -57,76 +70,111 @@ const endpointTypeToDisplayName = type => {
|
|
|
57
70
|
}
|
|
58
71
|
};
|
|
59
72
|
|
|
60
|
-
/** Adapt a callingx endpoints snapshot to the SDK's {@link
|
|
61
|
-
const
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
73
|
+
/** Adapt a callingx endpoints snapshot to the SDK's {@link AudioDevicesState}. */
|
|
74
|
+
const snapshotToState = snapshot => ({
|
|
75
|
+
// callingx endpoint ids are stable and unique — use them directly as the
|
|
76
|
+
// device id, so `select(device.id)` maps straight back to a Telecom endpoint.
|
|
77
|
+
devices: snapshot.endpoints.map(e => ({
|
|
78
|
+
id: e.id,
|
|
79
|
+
name: e.name,
|
|
80
|
+
type: endpointTypeToDisplayName(e.type)
|
|
81
|
+
})),
|
|
82
|
+
selectedDeviceId: snapshot.currentEndpoint?.id,
|
|
83
|
+
currentEndpointType: snapshot.currentEndpoint ? endpointTypeToDisplayName(snapshot.currentEndpoint.type) : 'Unknown'
|
|
65
84
|
});
|
|
66
|
-
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Cross-platform audio output device picker.
|
|
88
|
+
*/
|
|
89
|
+
class AudioDevicesManager {
|
|
90
|
+
interruptionReassertSetup = false;
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* iOS + CallKit only: re-assert the user's output pick after an interruption ends.
|
|
94
|
+
*
|
|
95
|
+
* On interruption-end iOS clears the ephemeral route override (`setPreferredInput` /
|
|
96
|
+
* `overrideOutputAudioPort`) and doesn't restore it, and callingx re-applies its config
|
|
97
|
+
* only on engine-enable — not the engine-restart of interruption recovery.
|
|
98
|
+
*/
|
|
99
|
+
ensureInterruptionReassert = () => {
|
|
100
|
+
if (this.interruptionReassertSetup) return; // subscibed once per app lifetime
|
|
101
|
+
if (Platform.OS !== 'ios' || !CallingxModule) return;
|
|
102
|
+
this.interruptionReassertSetup = true;
|
|
103
|
+
CallingxModule.addEventListener('didAudioInterruption', event => {
|
|
104
|
+
if (event.phase === 'ended') {
|
|
105
|
+
safeNativeCall('reapplyAudioRoute', () => NativeManager.reapplyAudioRoute());
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
};
|
|
109
|
+
|
|
67
110
|
/**
|
|
68
|
-
* Get the current audio device
|
|
111
|
+
* Get the current audio device state (available devices + the selected one).
|
|
112
|
+
* Read directly from the audio session, so it works on every path.
|
|
69
113
|
*/
|
|
70
|
-
|
|
71
|
-
|
|
114
|
+
getStatus = async () => {
|
|
115
|
+
// Android Telecom owns routing: read the endpoint snapshot from callingx.
|
|
72
116
|
const tc = getTelecomContext();
|
|
73
117
|
if (tc) {
|
|
74
118
|
const snapshot = await tc.cx.getAvailableAudioEndpoints(tc.callId);
|
|
75
|
-
return
|
|
119
|
+
return snapshotToState(snapshot);
|
|
76
120
|
}
|
|
77
121
|
return NativeManager.getAudioDeviceStatus();
|
|
78
122
|
};
|
|
79
123
|
|
|
80
124
|
/**
|
|
81
|
-
*
|
|
125
|
+
* Switch the audio output to the device with the given id.
|
|
82
126
|
*
|
|
83
|
-
* @param
|
|
127
|
+
* @param deviceId the stable {@link AudioDevice.id} (not the display name).
|
|
84
128
|
*/
|
|
85
|
-
|
|
86
|
-
|
|
129
|
+
select = deviceId => {
|
|
130
|
+
// Android Telecom owns routing: the device id is the callingx endpoint id,
|
|
131
|
+
// so route by it directly (no name lookup needed).
|
|
87
132
|
const tc = getTelecomContext();
|
|
88
133
|
if (tc) {
|
|
89
134
|
const {
|
|
90
135
|
cx,
|
|
91
136
|
callId
|
|
92
137
|
} = tc;
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
const target = snapshot.endpoints.find(e => e.name === endpointName);
|
|
96
|
-
if (target) {
|
|
97
|
-
return cx.requestAudioEndpointChange(callId, target.id);
|
|
98
|
-
}
|
|
99
|
-
return undefined;
|
|
100
|
-
}).catch(error => {
|
|
101
|
-
videoLoggerSystem.getLogger('CallManager').warn(`selectAudioDevice: failed to route to "${endpointName}" for call ${callId} via Telecom`, error);
|
|
138
|
+
cx.requestAudioEndpointChange(callId, deviceId).catch(error => {
|
|
139
|
+
videoLoggerSystem.getLogger('CallManager').warn(`select: failed to route to "${deviceId}" for call ${callId} via Telecom`, error);
|
|
102
140
|
});
|
|
103
141
|
return;
|
|
104
142
|
}
|
|
105
|
-
|
|
143
|
+
this.ensureInterruptionReassert();
|
|
144
|
+
safeNativeCall('chooseAudioDeviceEndpoint', () => NativeManager.chooseAudioDeviceEndpoint(deviceId));
|
|
106
145
|
};
|
|
107
146
|
|
|
108
147
|
/**
|
|
109
|
-
* Register a listener for audio device changes.
|
|
110
|
-
*
|
|
148
|
+
* Register a listener for audio device changes. Returns an unsubscribe fn.
|
|
149
|
+
*
|
|
150
|
+
* @param onChange called with the latest {@link AudioDevicesState} on change.
|
|
111
151
|
*/
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
const
|
|
152
|
+
addChangeListener = onChange => {
|
|
153
|
+
let active = true;
|
|
154
|
+
const unsubscribes = [];
|
|
115
155
|
|
|
116
|
-
//
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
156
|
+
// callingx-owned route changes (Android Telecom + iOS CallKit). The event is
|
|
157
|
+
// signal-only, so re-read the current state — ignoring a resolve that lands
|
|
158
|
+
// after unsubscribe, and swallowing bridge rejections.
|
|
159
|
+
if (CallingxModule) {
|
|
160
|
+
const cxSub = CallingxModule.addEventListener('didChangeAudioRoute', () => {
|
|
161
|
+
this.getStatus().then(state => {
|
|
162
|
+
if (active) onChange(state);
|
|
163
|
+
}).catch(error => {
|
|
164
|
+
videoLoggerSystem.getLogger('CallManager').warn('addChangeListener: getStatus failed', error);
|
|
165
|
+
});
|
|
166
|
+
});
|
|
167
|
+
unsubscribes.push(() => cxSub.remove());
|
|
120
168
|
}
|
|
121
169
|
|
|
122
|
-
//
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
170
|
+
// SDK-managed route changes (non-callingx calls).
|
|
171
|
+
this.eventEmitter = this.eventEmitter ?? new NativeEventEmitter(NativeManager);
|
|
172
|
+
const sdkSub = this.eventEmitter.addListener(AUDIO_DEVICE_CHANGED_EVENT, onChange);
|
|
173
|
+
unsubscribes.push(() => sdkSub.remove());
|
|
174
|
+
return () => {
|
|
175
|
+
active = false;
|
|
176
|
+
unsubscribes.forEach(unsubscribe => unsubscribe());
|
|
177
|
+
};
|
|
130
178
|
};
|
|
131
179
|
}
|
|
132
180
|
class IOSCallManager {
|
|
@@ -207,7 +255,7 @@ const shouldBypassForCallKit = () => {
|
|
|
207
255
|
return CallingxModule.isSetup && (CallingxModule.hasRegisteredCall() || CallingxModule.isOngoingCallsEnabled);
|
|
208
256
|
};
|
|
209
257
|
export class CallManager {
|
|
210
|
-
|
|
258
|
+
audioDevices = new AudioDevicesManager();
|
|
211
259
|
ios = new IOSCallManager();
|
|
212
260
|
speaker = new SpeakerManager();
|
|
213
261
|
|
|
@@ -230,11 +278,10 @@ export class CallManager {
|
|
|
230
278
|
*/
|
|
231
279
|
start = config => {
|
|
232
280
|
if (shouldBypassForCallKit()) {
|
|
233
|
-
// Forward only the passive endpoint preference; callingx reads it when
|
|
234
|
-
// CallKit drives session activation.
|
|
235
281
|
if (config?.audioRole === 'communicator' && CallingxModule) {
|
|
236
282
|
const type = config.deviceEndpointType ?? 'speaker';
|
|
237
|
-
CallingxModule.setDefaultAudioDeviceEndpointType(type);
|
|
283
|
+
safeNativeCall('setDefaultAudioDeviceEndpointType (callingx)', () => CallingxModule.setDefaultAudioDeviceEndpointType(type));
|
|
284
|
+
safeNativeCall('setDefaultAudioDeviceEndpointType', () => NativeManager.setDefaultAudioDeviceEndpointType(type));
|
|
238
285
|
}
|
|
239
286
|
videoLoggerSystem.getLogger('CallManager').debug('start: skipping start as callkit is handling the audio session');
|
|
240
287
|
return;
|
|
@@ -243,7 +290,7 @@ export class CallManager {
|
|
|
243
290
|
// Telecom owns routing/focus; forward the sticky preference to callingx and run in
|
|
244
291
|
// telecom-managed mode (StreamInCallManager keeps proximity/keep-screen-on only).
|
|
245
292
|
if (config?.audioRole !== 'listener' && CallingxModule) {
|
|
246
|
-
CallingxModule.setDefaultAudioDeviceEndpointType(config?.deviceEndpointType ?? 'speaker');
|
|
293
|
+
safeNativeCall('setDefaultAudioDeviceEndpointType (callingx)', () => CallingxModule.setDefaultAudioDeviceEndpointType(config?.deviceEndpointType ?? 'speaker'));
|
|
247
294
|
}
|
|
248
295
|
NativeManager.setTelecomManagedMode(true);
|
|
249
296
|
NativeManager.setAudioRole(config?.audioRole ?? 'communicator');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeEventEmitter","NativeModules","Platform","getCallingxLibIfAvailable","videoLoggerSystem","NativeManager","StreamInCallManager","CallingxModule","AUDIO_INTERRUPTION_EVENT","invariant","condition","message","Error","isAndroidTelecomManaged","OS","isSetup","isTelecomBacked","hasRegisteredCall","isOngoingCallsEnabled","getTelecomContext","undefined","callId","getRegisteredCallIds","cx","endpointTypeToDisplayName","type","
|
|
1
|
+
{"version":3,"names":["NativeEventEmitter","NativeModules","Platform","getCallingxLibIfAvailable","videoLoggerSystem","NativeManager","StreamInCallManager","CallingxModule","AUDIO_INTERRUPTION_EVENT","AUDIO_DEVICE_CHANGED_EVENT","invariant","condition","message","Error","safeNativeCall","label","fn","error","getLogger","warn","isAndroidTelecomManaged","OS","isSetup","isTelecomBacked","hasRegisteredCall","isOngoingCallsEnabled","getTelecomContext","undefined","callId","getRegisteredCallIds","cx","endpointTypeToDisplayName","type","snapshotToState","snapshot","devices","endpoints","map","e","id","name","selectedDeviceId","currentEndpoint","currentEndpointType","AudioDevicesManager","interruptionReassertSetup","ensureInterruptionReassert","addEventListener","event","phase","reapplyAudioRoute","getStatus","tc","getAvailableAudioEndpoints","getAudioDeviceStatus","select","deviceId","requestAudioEndpointChange","catch","chooseAudioDeviceEndpoint","addChangeListener","onChange","active","unsubscribes","cxSub","then","state","push","remove","eventEmitter","sdkSub","addListener","forEach","unsubscribe","IOSCallManager","showDeviceSelector","showAudioRoutePicker","addAudioInterruptionListener","onInterruption","s","SpeakerManager","setMute","mute","muteAudioOutput","unmuteAudioOutput","setForceSpeakerphoneOn","force","target","find","shouldBypassForCallKit","CallManager","audioDevices","ios","speaker","start","config","audioRole","deviceEndpointType","setDefaultAudioDeviceEndpointType","debug","setTelecomManagedMode","setAudioRole","enableStereoAudioOutput","setEnableStereoAudioOutput","stop","logAudioState","getAudioStateLog"],"sourceRoot":"../../../../src","sources":["modules/call-manager/CallManager.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,7 +6,6 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { NativeModules, Platform } from 'react-native';
|
|
8
8
|
import { getCallingxLibIfAvailable } from '../../push/libs/callingx';
|
|
9
|
-
import { waitForAudioSessionActivation } from './audioSessionPromise';
|
|
10
9
|
import { CallingState, videoLoggerSystem } from '@stream-io/video-client';
|
|
11
10
|
const CallingxModule = getCallingxLibIfAvailable();
|
|
12
11
|
|
|
@@ -121,9 +120,6 @@ export async function joinCallingxCall(call, activeCalls) {
|
|
|
121
120
|
// display name for display in call screen
|
|
122
121
|
call.state.settings?.video?.enabled ?? false // is video call?
|
|
123
122
|
);
|
|
124
|
-
if (Platform.OS === 'ios') {
|
|
125
|
-
await waitForAudioSessionActivation();
|
|
126
|
-
}
|
|
127
123
|
};
|
|
128
124
|
if (isOutcomingCall || !call.ringing && CallingxModule.isOngoingCallsEnabled) {
|
|
129
125
|
try {
|
|
@@ -158,9 +154,6 @@ export async function joinCallingxCall(call, activeCalls) {
|
|
|
158
154
|
call.state.settings?.video?.enabled ?? false // is video call?
|
|
159
155
|
);
|
|
160
156
|
await CallingxModule.answerIncomingCall(call.cid);
|
|
161
|
-
if (Platform.OS === 'ios') {
|
|
162
|
-
await waitForAudioSessionActivation();
|
|
163
|
-
}
|
|
164
157
|
} catch (error) {
|
|
165
158
|
logger.error(`Error joining incoming call in callingx: ${call.cid}`, error);
|
|
166
159
|
recoverAudioToClassicMode();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeModules","Platform","getCallingxLibIfAvailable","
|
|
1
|
+
{"version":3,"names":["NativeModules","Platform","getCallingxLibIfAvailable","CallingState","videoLoggerSystem","CallingxModule","recoverAudioToClassicMode","OS","isSetup","isTelecomBacked","hasRegisteredCall","getLogger","debug","StreamInCallManagerNativeModule","StreamInCallManager","logger","warn","stop","setTelecomManagedMode","start","error","getCallDisplayName","callMembers","participants","currentUserId","names","length","flatMap","member","user","id","name","participant","userId","find","sort","join","getCallDisplayNameFromCall","call","state","custom","display_name","members","registerOutgoingCall","isOwnTracksLoopbackAllowed","isOutcomingCall","ringing","isCreatedByMe","cid","callDisplayName","startCall","createdBy","settings","video","enabled","joinCallingxCall","activeCalls","isIncomingCall","startCallInCallingx","isOngoingCallsEnabled","activeCallsToLeave","filter","c","callingState","LEFT","activeCall","leave","reason","catch","e","displayIncomingCall","answerIncomingCall","endCallingxCall","isCallTracked","endCallWithReason"],"sourceRoot":"../../../../../src","sources":["utils/internal/callingx/callingx.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { videoLoggerSystem } from '@stream-io/video-client';
|
|
3
|
+
import { CallingState, videoLoggerSystem } from '@stream-io/video-client';
|
|
4
4
|
import { clearPushWSEventSubscriptions, processCallFromPushInBackground } from './internal/utils';
|
|
5
|
-
import { resolvePendingAudioSession } from '../internal/callingx/audioSessionPromise';
|
|
6
5
|
import { getCallingxLib } from './libs/callingx';
|
|
7
6
|
import { Platform } from 'react-native';
|
|
8
7
|
const logger = videoLoggerSystem.getLogger('callingx');
|
|
@@ -25,6 +24,9 @@ export function setupCallingExpEvents(pushConfig) {
|
|
|
25
24
|
});
|
|
26
25
|
callingx.addEventListener('didActivateAudioSession', onDidActivateAudioSession);
|
|
27
26
|
callingx.addEventListener('didDeactivateAudioSession', onDidDeactivateAudioSession);
|
|
27
|
+
callingx.addEventListener('providerReset', params => {
|
|
28
|
+
onProviderReset(pushConfig)(params);
|
|
29
|
+
});
|
|
28
30
|
|
|
29
31
|
//NOTE: until getInitialEvents invocation, events are delayed and won't be sent to event listeners, this is a way to make sure none of required events are missed
|
|
30
32
|
//in most cases there will be no delayed answers or ends, but if so we don't want to miss any of them
|
|
@@ -44,16 +46,43 @@ export function setupCallingExpEvents(pushConfig) {
|
|
|
44
46
|
onDidActivateAudioSession();
|
|
45
47
|
} else if (eventName === 'didDeactivateAudioSession') {
|
|
46
48
|
onDidDeactivateAudioSession();
|
|
49
|
+
} else if (eventName === 'providerReset') {
|
|
50
|
+
onProviderReset(pushConfig)(params);
|
|
47
51
|
}
|
|
48
52
|
});
|
|
49
53
|
}
|
|
50
54
|
const onDidActivateAudioSession = () => {
|
|
51
55
|
logger.debug('callingExpDidActivateAudioSession');
|
|
52
|
-
resolvePendingAudioSession();
|
|
53
56
|
};
|
|
54
57
|
const onDidDeactivateAudioSession = () => {
|
|
55
58
|
logger.debug('callingExpDidDeactivateAudioSession');
|
|
56
59
|
};
|
|
60
|
+
const onProviderReset = pushConfig => async ({
|
|
61
|
+
callCids
|
|
62
|
+
}) => {
|
|
63
|
+
logger.debug(`onProviderReset event callCids: ${callCids?.join(', ')}`);
|
|
64
|
+
if (!callCids?.length) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
let videoClient;
|
|
68
|
+
try {
|
|
69
|
+
videoClient = await pushConfig.createStreamVideoClient();
|
|
70
|
+
} catch (e) {
|
|
71
|
+
logger.error('onProviderReset: failed to resolve video client', e);
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
if (!videoClient) {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
for (const cid of callCids) {
|
|
78
|
+
const call = videoClient.state.calls.find(c => c.cid === cid);
|
|
79
|
+
if (call && call.state.callingState !== CallingState.LEFT) {
|
|
80
|
+
call?.leave().catch(error => {
|
|
81
|
+
logger.error(`onProviderReset: error leaving call ${cid}`, error);
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
};
|
|
57
86
|
const onAcceptCall = pushConfig => ({
|
|
58
87
|
callId: call_cid,
|
|
59
88
|
source
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["videoLoggerSystem","clearPushWSEventSubscriptions","processCallFromPushInBackground","
|
|
1
|
+
{"version":3,"names":["CallingState","videoLoggerSystem","clearPushWSEventSubscriptions","processCallFromPushInBackground","getCallingxLib","Platform","logger","getLogger","setupCallingExpEvents","pushConfig","hasPushProvider","OS","android","pushProviderName","ios","hasOngoingCalls","enableOngoingCalls","callingx","addEventListener","params","onAcceptCall","onEndCall","onDidActivateAudioSession","onDidDeactivateAudioSession","onProviderReset","events","getInitialEvents","forEach","event","eventName","debug","callId","callCids","join","length","videoClient","createStreamVideoClient","e","error","cid","call","state","calls","find","c","callingState","LEFT","leave","catch","call_cid","source","didFail","fulfillAnswerCallAction","fulfillEndCallAction"],"sourceRoot":"../../../../src","sources":["utils/push/setupCallingExpEvents.ts"],"mappings":"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","ignoreList":[]}
|
package/dist/module/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CallParticipantsSpotlight.d.ts","sourceRoot":"","sources":["../../../../../src/components/Call/CallLayout/CallParticipantsSpotlight.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"CallParticipantsSpotlight.d.ts","sourceRoot":"","sources":["../../../../../src/components/Call/CallLayout/CallParticipantsSpotlight.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAY5D,OAAO,EAEL,KAAK,kCAAkC,EACxC,MAAM,8CAA8C,CAAC;AACtD,OAAO,EAEL,KAAK,6BAA6B,EACnC,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGvD;;GAEG;AACH,MAAM,MAAM,8BAA8B,GAAG,6BAA6B,GACxE,IAAI,CACF,gBAAgB,EAChB,oBAAoB,GAAG,sBAAsB,GAAG,oBAAoB,CACrE,GACD,IAAI,CAAC,kCAAkC,EAAE,iBAAiB,GAAG,QAAQ,CAAC,GAAG;IACvE;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEJ;;;GAGG;AACH,eAAO,MAAM,yBAAyB,GAAI,2NAYvC,8BAA8B,sBAuHhC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CallParticipantsList.d.ts","sourceRoot":"","sources":["../../../../../src/components/Call/CallParticipantsList/CallParticipantsList.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"CallParticipantsList.d.ts","sourceRoot":"","sources":["../../../../../src/components/Call/CallParticipantsList/CallParticipantsList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAC;AAQf,OAAO,EACL,KAAK,sBAAsB,EAG5B,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAEL,KAAK,6BAA6B,EAClC,KAAK,oBAAoB,EAC1B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAYvD,MAAM,MAAM,kCAAkC,GAC5C,6BAA6B,GAAG;IAC9B;;OAEG;IACH,eAAe,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAAC;IACnE;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEJ;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG,kCAAkC,GACxE,IAAI,CAAC,gBAAgB,EAAE,oBAAoB,CAAC,GAAG;IAC7C;;OAEG;IACH,YAAY,EAAE,sBAAsB,EAAE,CAAC;IACvC;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEJ;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,GAAI,4NAalC,yBAAyB,sBA6M3B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IncomingCall.d.ts","sourceRoot":"","sources":["../../../../../src/components/Call/RingingCallContent/IncomingCall.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"IncomingCall.d.ts","sourceRoot":"","sources":["../../../../../src/components/Call/RingingCallContent/IncomingCall.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,iBAAiB,CAAC;AAGzB;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,yBAAyB,GAAG;IAC1D;;OAEG;IACH,oBAAoB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,yBAAyB,CAAC,GAAG,IAAI,CAAC;IAC7E;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,gFAK1B,iBAAiB,sBA0DnB,CAAC;AAmDF,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;CAgBjB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Participant/ParticipantView/VideoRenderer/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAIjD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAuB/D;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,IAAI,CACnC,oBAAoB,EAClB,0BAA0B,GAC1B,WAAW,GACX,aAAa,GACb,WAAW,GACX,WAAW,GACX,aAAa,GACb,QAAQ,CACX,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,+IASrB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Participant/ParticipantView/VideoRenderer/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAIjD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAuB/D;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,IAAI,CACnC,oBAAoB,EAClB,0BAA0B,GAC1B,WAAW,GACX,aAAa,GACb,WAAW,GACX,WAAW,GACX,aAAa,GACb,QAAQ,CACX,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,+IASrB,kBAAkB,uBA6LtB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,QAAQ,CAAC;AACvB,cAAc,iCAAiC,CAAC;AAChD,cAAc,uCAAuC,CAAC;AACtD,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,QAAQ,CAAC;AACvB,cAAc,iCAAiC,CAAC;AAChD,cAAc,uCAAuC,CAAC;AACtD,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCallingExpWithCallingStateEffect.d.ts","sourceRoot":"","sources":["../../../../src/hooks/push/useCallingExpWithCallingStateEffect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useCallingExpWithCallingStateEffect.d.ts","sourceRoot":"","sources":["../../../../src/hooks/push/useCallingExpWithCallingStateEffect.ts"],"names":[],"mappings":"AAWA;;GAEG;AACH,eAAO,MAAM,mCAAmC,YAiR/C,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { AudioDevicesState } from '../modules/call-manager/types';
|
|
2
|
+
/**
|
|
3
|
+
* Subscribes to the current audio output device state and keeps it in sync.
|
|
4
|
+
*
|
|
5
|
+
* Works on Android, iOS, and iOS with CallKit
|
|
6
|
+
* (`@stream-io/react-native-callingx`) — the underlying source is selected
|
|
7
|
+
* automatically. Pair with `callManager.audioDevices.select(device.id)` to
|
|
8
|
+
* build a custom audio route picker.
|
|
9
|
+
*
|
|
10
|
+
* @returns the latest {@link AudioDevicesState}, or `undefined` until the
|
|
11
|
+
* initial status resolves.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```tsx
|
|
15
|
+
* const status = useAudioDeviceStatus();
|
|
16
|
+
* const { devices, selectedDeviceId } = status ?? {};
|
|
17
|
+
* // callManager.audioDevices.select(devices[0].id);
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export declare const useAudioDeviceStatus: () => AudioDevicesState | undefined;
|
|
21
|
+
//# sourceMappingURL=useAudioDeviceStatus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAudioDeviceStatus.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAudioDeviceStatus.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AA4BvE;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,oBAAoB,QAAO,iBAAiB,GAAG,SAyC3D,CAAC"}
|