mediasfu-shared 1.0.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/LICENSE +21 -0
- package/README.md +228 -0
- package/dist/index.cjs +7707 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +7285 -0
- package/dist/index.js +7690 -0
- package/dist/index.js.map +1 -0
- package/package.json +78 -0
- package/src/ProducerClient/producerClientEmits/createDeviceClient.ts +68 -0
- package/src/consumers/addVideosGrid.ts +18 -0
- package/src/consumers/autoAdjust.ts +100 -0
- package/src/consumers/calculateRowsAndColumns.ts +51 -0
- package/src/consumers/changeVids.ts +753 -0
- package/src/consumers/checkGrid.ts +100 -0
- package/src/consumers/checkPermission.ts +89 -0
- package/src/consumers/checkScreenShare.ts +114 -0
- package/src/consumers/closeAndResize.ts +401 -0
- package/src/consumers/compareActiveNames.ts +122 -0
- package/src/consumers/compareScreenStates.ts +117 -0
- package/src/consumers/connectIps.ts +175 -0
- package/src/consumers/connectLocalIps.ts +103 -0
- package/src/consumers/connectRecvTransport.ts +158 -0
- package/src/consumers/connectSendTransport.ts +150 -0
- package/src/consumers/connectSendTransportAudio.ts +161 -0
- package/src/consumers/connectSendTransportScreen.ts +169 -0
- package/src/consumers/connectSendTransportVideo.ts +149 -0
- package/src/consumers/consumerResume.ts +25 -0
- package/src/consumers/controlMedia.ts +118 -0
- package/src/consumers/createSendTransport.ts +312 -0
- package/src/consumers/disconnectSendTransportAudio.ts +170 -0
- package/src/consumers/disconnectSendTransportScreen.ts +130 -0
- package/src/consumers/disconnectSendTransportVideo.ts +161 -0
- package/src/consumers/dispStreams.ts +694 -0
- package/src/consumers/generatePageContent.ts +118 -0
- package/src/consumers/getEstimate.ts +124 -0
- package/src/consumers/getPipedProducersAlt.ts +96 -0
- package/src/consumers/getProducersPiped.ts +89 -0
- package/src/consumers/getVideos.ts +107 -0
- package/src/consumers/mixStreams.ts +97 -0
- package/src/consumers/onScreenChanges.ts +106 -0
- package/src/consumers/prepopulateUserMedia.ts +18 -0
- package/src/consumers/processConsumerTransports.ts +157 -0
- package/src/consumers/processConsumerTransportsAudio.ts +121 -0
- package/src/consumers/rePort.ts +123 -0
- package/src/consumers/reUpdateInter.ts +289 -0
- package/src/consumers/readjust.ts +170 -0
- package/src/consumers/receiveAllPipedTransports.ts +77 -0
- package/src/consumers/receiveRoomMessages.ts +55 -0
- package/src/consumers/reorderStreams.ts +246 -0
- package/src/consumers/requestScreenShare.ts +103 -0
- package/src/consumers/resumePauseAudioStreams.ts +174 -0
- package/src/consumers/resumePauseStreams.ts +110 -0
- package/src/consumers/resumeSendTransportAudio.ts +143 -0
- package/src/consumers/signalNewConsumerTransport.ts +179 -0
- package/src/consumers/socketReceiveMethods/joinConsumeRoom.ts +130 -0
- package/src/consumers/socketReceiveMethods/newPipeProducer.ts +138 -0
- package/src/consumers/socketReceiveMethods/producerClosed.ts +102 -0
- package/src/consumers/startShareScreen.ts +124 -0
- package/src/consumers/stopShareScreen.ts +241 -0
- package/src/consumers/streamSuccessAudio.ts +297 -0
- package/src/consumers/streamSuccessAudioSwitch.ts +315 -0
- package/src/consumers/streamSuccessScreen.ts +255 -0
- package/src/consumers/streamSuccessVideo.ts +373 -0
- package/src/consumers/switchUserAudio.ts +140 -0
- package/src/consumers/switchUserVideo.ts +201 -0
- package/src/consumers/switchUserVideoAlt.ts +331 -0
- package/src/consumers/trigger.ts +250 -0
- package/src/consumers/updateMiniCardsGrid.ts +150 -0
- package/src/consumers/updateParticipantAudioDecibels.ts +56 -0
- package/src/index.ts +119 -0
- package/src/methods/background/launchBackground.ts +16 -0
- package/src/methods/breakoutRooms/breakoutRoomUpdated.ts +161 -0
- package/src/methods/breakoutRooms/handleStartBreakout.ts +96 -0
- package/src/methods/breakoutRooms/handleStopBreakout.ts +72 -0
- package/src/methods/breakoutRooms/index.ts +4 -0
- package/src/methods/breakoutRooms/launchBreakoutRooms.ts +31 -0
- package/src/methods/coHost/launchCoHost.ts +28 -0
- package/src/methods/coHostMethods/index.ts +2 -0
- package/src/methods/coHostMethods/modifyCoHostSettings.ts +94 -0
- package/src/methods/displaySettings/index.ts +1 -0
- package/src/methods/displaySettings/launchDisplaySettings.ts +31 -0
- package/src/methods/displaySettings/modifyDisplaySettings.ts +242 -0
- package/src/methods/exit/confirmExit.ts +60 -0
- package/src/methods/exit/index.ts +2 -0
- package/src/methods/exit/launchConfirmExit.ts +29 -0
- package/src/methods/index.ts +5 -0
- package/src/methods/mediaSettings/launchMediaSettings.ts +61 -0
- package/src/methods/menu/launchMenuModal.ts +28 -0
- package/src/methods/message/index.ts +1 -0
- package/src/methods/message/launchMessages.ts +27 -0
- package/src/methods/message/sendMessage.ts +175 -0
- package/src/methods/participants/index.ts +3 -0
- package/src/methods/participants/launchParticipants.ts +25 -0
- package/src/methods/participants/messageParticipants.ts +78 -0
- package/src/methods/participants/muteParticipants.ts +79 -0
- package/src/methods/participants/removeParticipants.ts +97 -0
- package/src/methods/polls/handleCreatePoll.ts +66 -0
- package/src/methods/polls/handleEndPoll.ts +64 -0
- package/src/methods/polls/handleVotePoll.ts +76 -0
- package/src/methods/polls/index.ts +3 -0
- package/src/methods/polls/launchPoll.ts +25 -0
- package/src/methods/prejoin/handleCreateRoom.ts +441 -0
- package/src/methods/prejoin/handleJoinRoom.ts +153 -0
- package/src/methods/prejoin/index.ts +14 -0
- package/src/methods/recording/checkPauseState.ts +57 -0
- package/src/methods/recording/checkResumeState.ts +42 -0
- package/src/methods/recording/confirmRecording.ts +241 -0
- package/src/methods/recording/launchRecording.ts +114 -0
- package/src/methods/recording/recordPauseTimer.ts +52 -0
- package/src/methods/recording/recordResumeTimer.ts +92 -0
- package/src/methods/recording/recordStartTimer.ts +106 -0
- package/src/methods/recording/recordUpdateTimer.ts +49 -0
- package/src/methods/recording/startRecording.ts +268 -0
- package/src/methods/recording/stopRecording.ts +124 -0
- package/src/methods/recording/updateRecording.ts +245 -0
- package/src/methods/requests/index.ts +1 -0
- package/src/methods/requests/launchRequests.ts +25 -0
- package/src/methods/requests/respondToRequests.ts +108 -0
- package/src/methods/settings/index.ts +2 -0
- package/src/methods/settings/launchSettings.ts +25 -0
- package/src/methods/settings/modifySettings.ts +99 -0
- package/src/methods/stream/clickVideo.ts +337 -0
- package/src/methods/stream/index.ts +3 -0
- package/src/methods/stream/switchAudio.ts +73 -0
- package/src/methods/stream/switchVideo.ts +148 -0
- package/src/methods/stream/switchVideoAlt.ts +152 -0
- package/src/methods/utils/checkLimitsAndMakeRequest.ts +103 -0
- package/src/methods/utils/validateAlphanumeric.ts +41 -0
- package/src/methods/waiting/index.ts +1 -0
- package/src/methods/waiting/launchWaiting.ts +26 -0
- package/src/methods/waiting/respondToWaiting.ts +82 -0
- package/src/methods/welcome/handleWelcomeRequest.ts +189 -0
- package/src/methods/welcome/index.ts +5 -0
- package/src/methods/whiteboard/handleStartWhiteboard.ts +65 -0
- package/src/methods/whiteboard/handleStopWhiteboard.ts +48 -0
- package/src/methods/whiteboard/index.ts +4 -0
- package/src/methods/whiteboard/launchConfigureWhiteboard.ts +29 -0
- package/src/producers/producerEmits/joinConRoom.ts +153 -0
- package/src/sockets/SocketManager.ts +232 -0
- package/src/types/shared-base-types.ts +752 -0
- package/src/types/types.ts +84 -0
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import type { Producer } from 'mediasoup-client/lib/types';
|
|
2
|
+
import { Socket } from "socket.io-client";
|
|
3
|
+
|
|
4
|
+
export interface DisconnectSendTransportScreenParameters {
|
|
5
|
+
screenProducer: Producer | null;
|
|
6
|
+
socket: Socket;
|
|
7
|
+
localSocket?: Socket;
|
|
8
|
+
roomName: string;
|
|
9
|
+
updateScreenProducer: (screenProducer: Producer | null) => void;
|
|
10
|
+
updateLocalScreenProducer?: (localScreenProducer: Producer | null) => void;
|
|
11
|
+
|
|
12
|
+
getUpdatedAllParams: () => DisconnectSendTransportScreenParameters;
|
|
13
|
+
[key: string]: any;
|
|
14
|
+
}
|
|
15
|
+
export interface DisconnectSendTransportScreenOptions {
|
|
16
|
+
parameters: DisconnectSendTransportScreenParameters;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// Export the type definition for the function
|
|
20
|
+
export type DisconnectSendTransportScreenType = (options: DisconnectSendTransportScreenOptions) => Promise<void>;
|
|
21
|
+
|
|
22
|
+
const disconnectLocalSendTransportScreen = async ({ parameters }: DisconnectSendTransportScreenOptions) : Promise<void> => {
|
|
23
|
+
|
|
24
|
+
try {
|
|
25
|
+
// Destructure parameters
|
|
26
|
+
let {
|
|
27
|
+
localScreenProducer,
|
|
28
|
+
localSocket,
|
|
29
|
+
roomName,
|
|
30
|
+
updateLocalScreenProducer,
|
|
31
|
+
} = parameters;
|
|
32
|
+
|
|
33
|
+
if (localSocket && localSocket.id) {
|
|
34
|
+
localScreenProducer!.close();
|
|
35
|
+
updateLocalScreenProducer!(localScreenProducer);
|
|
36
|
+
|
|
37
|
+
// Notify the server about closing the screen producer and pausing screen sharing
|
|
38
|
+
localSocket.emit('closeScreenProducer');
|
|
39
|
+
localSocket.emit('pauseProducerMedia', { mediaTag: 'screen', roomName: roomName });
|
|
40
|
+
}
|
|
41
|
+
} catch {
|
|
42
|
+
console.log('Error disconnecting local send transport for screen');
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Disconnects the send transport for screen sharing.
|
|
50
|
+
*
|
|
51
|
+
* This function closes the screen producer, updates the state, and notifies the server
|
|
52
|
+
* about the closure and pausing of screen sharing.
|
|
53
|
+
*
|
|
54
|
+
* @param {DisconnectSendTransportScreenOptions} options - The options for disconnecting the send transport.
|
|
55
|
+
* @param {Object} options.parameters - The parameters required for disconnection.
|
|
56
|
+
* @param {Function} options.parameters.getUpdatedAllParams - Function to get updated parameters.
|
|
57
|
+
* @param {Producer | null} options.parameters.screenProducer - The screen producer to be closed.
|
|
58
|
+
* @param {Socket} options.parameters.socket - The socket connection to notify the server.
|
|
59
|
+
* @param {Socket} [options.parameters.localSocket] - The local socket connection for communication.
|
|
60
|
+
* @param {string} options.parameters.roomName - The name of the room.
|
|
61
|
+
* @param {Function} options.parameters.updateScreenProducer - Function to update the screen producer state.
|
|
62
|
+
* @param {Function} [options.parameters.updateLocalScreenProducer] - Function to update the local screen producer state.
|
|
63
|
+
* @returns {Promise<void>} A promise that resolves when the disconnection process is complete.
|
|
64
|
+
* @throws {Error} If an error occurs during the disconnection process.
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* const options = {
|
|
68
|
+
* parameters: {
|
|
69
|
+
* screenProducer: screenProducerInstance,
|
|
70
|
+
* socket: socketInstance,
|
|
71
|
+
* localSocket: localSocketInstance,
|
|
72
|
+
* roomName: 'Room 1',
|
|
73
|
+
* updateScreenProducer: (producer) => console.log('Updated screen producer:', producer),
|
|
74
|
+
* updateLocalScreenProducer: (localProducer) => console.log('Updated local screen producer:', localProducer),
|
|
75
|
+
* getUpdatedAllParams: () => ({
|
|
76
|
+
* screenProducer: screenProducerInstance,
|
|
77
|
+
* socket: socketInstance,
|
|
78
|
+
* roomName: 'Room 1',
|
|
79
|
+
* }),
|
|
80
|
+
* },
|
|
81
|
+
* };
|
|
82
|
+
*
|
|
83
|
+
* disconnectSendTransportScreen(options)
|
|
84
|
+
* .then(() => {
|
|
85
|
+
* console.log('Screen send transport disconnected successfully');
|
|
86
|
+
* })
|
|
87
|
+
* .catch((error) => {
|
|
88
|
+
* console.error('Error disconnecting screen send transport:', error);
|
|
89
|
+
* });
|
|
90
|
+
*/
|
|
91
|
+
|
|
92
|
+
export const disconnectSendTransportScreen = async ({ parameters }: DisconnectSendTransportScreenOptions) : Promise<void> => {
|
|
93
|
+
|
|
94
|
+
let { getUpdatedAllParams } = parameters;
|
|
95
|
+
parameters = getUpdatedAllParams()
|
|
96
|
+
|
|
97
|
+
try {
|
|
98
|
+
// Destructure parameters
|
|
99
|
+
let {
|
|
100
|
+
screenProducer,
|
|
101
|
+
socket,
|
|
102
|
+
roomName,
|
|
103
|
+
updateScreenProducer,
|
|
104
|
+
} = parameters;
|
|
105
|
+
|
|
106
|
+
// Close the screen producer and update the state
|
|
107
|
+
screenProducer!.close();
|
|
108
|
+
updateScreenProducer(screenProducer);
|
|
109
|
+
|
|
110
|
+
// Notify the server about closing the screen producer and pausing screen sharing
|
|
111
|
+
socket.emit('closeScreenProducer');
|
|
112
|
+
socket.emit('pauseProducerMedia', { mediaTag: 'screen', roomName: roomName });
|
|
113
|
+
|
|
114
|
+
} catch (error) {
|
|
115
|
+
|
|
116
|
+
// Handle errors during the disconnection process
|
|
117
|
+
if (error instanceof Error) {
|
|
118
|
+
console.log('Error disconnecting send transport for screen:', error.message);
|
|
119
|
+
} else {
|
|
120
|
+
console.log('Error disconnecting send transport for screen:', error);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
try {
|
|
125
|
+
// Disconnect the local screen producer
|
|
126
|
+
await disconnectLocalSendTransportScreen({ parameters });
|
|
127
|
+
} catch {
|
|
128
|
+
// Handle errors during the disconnection process
|
|
129
|
+
}
|
|
130
|
+
};
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import type { Producer } from 'mediasoup-client/lib/types';
|
|
2
|
+
import { Socket } from 'socket.io-client';
|
|
3
|
+
import { ReorderStreamsType, ReorderStreamsParameters } from '../types/types';
|
|
4
|
+
|
|
5
|
+
export interface DisconnectSendTransportVideoParameters extends ReorderStreamsParameters {
|
|
6
|
+
videoProducer: Producer | null;
|
|
7
|
+
localVideoProducer?: Producer | null;
|
|
8
|
+
socket: Socket;
|
|
9
|
+
localSocket?: Socket;
|
|
10
|
+
islevel: string;
|
|
11
|
+
roomName: string;
|
|
12
|
+
lock_screen: boolean;
|
|
13
|
+
updateMainWindow: boolean;
|
|
14
|
+
updateUpdateMainWindow: (state: boolean) => void;
|
|
15
|
+
updateVideoProducer: (producer: Producer | null) => void;
|
|
16
|
+
updateLocalVideoProducer?: (producer: Producer | null) => void;
|
|
17
|
+
|
|
18
|
+
// mediasfu functions
|
|
19
|
+
reorderStreams: ReorderStreamsType;
|
|
20
|
+
[key: string]: any;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export interface DisconnectSendTransportVideoOptions {
|
|
24
|
+
parameters: DisconnectSendTransportVideoParameters;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// Export the type definition for the function
|
|
28
|
+
export type DisconnectSendTransportVideoType = (options: DisconnectSendTransportVideoOptions) => Promise<void>;
|
|
29
|
+
|
|
30
|
+
const disconnectLocalSendTransportVideo = async ({
|
|
31
|
+
parameters,
|
|
32
|
+
}: DisconnectSendTransportVideoOptions): Promise<void> => {
|
|
33
|
+
try {
|
|
34
|
+
const {
|
|
35
|
+
localVideoProducer,
|
|
36
|
+
localSocket,
|
|
37
|
+
roomName,
|
|
38
|
+
updateLocalVideoProducer,
|
|
39
|
+
} = parameters;
|
|
40
|
+
|
|
41
|
+
if (localSocket && localSocket.id) {
|
|
42
|
+
// continue
|
|
43
|
+
}else {
|
|
44
|
+
return
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// Close the local video producer and notify the server
|
|
48
|
+
if (localVideoProducer) {
|
|
49
|
+
localVideoProducer.close();
|
|
50
|
+
updateLocalVideoProducer?.(null);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
localSocket.emit('pauseProducerMedia', { mediaTag: 'video', roomName: roomName });
|
|
55
|
+
|
|
56
|
+
} catch (error) {
|
|
57
|
+
console.error('Error disconnecting local video send transport:', error);
|
|
58
|
+
throw error; // Re-throw to propagate the error
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Disconnects the send transport for video, closes the video producer, and updates the state.
|
|
64
|
+
*
|
|
65
|
+
* This function supports both a primary and a local video producer, delegating local handling to a separate function.
|
|
66
|
+
*
|
|
67
|
+
* @param {DisconnectSendTransportVideoOptions} options - The options for disconnecting the send transport.
|
|
68
|
+
* @param {DisconnectSendTransportVideoParameters} options.parameters - The parameters required for disconnecting the send transport.
|
|
69
|
+
* @param {Producer | null} options.parameters.videoProducer - The primary video producer object.
|
|
70
|
+
* @param {Producer | null} [options.parameters.localVideoProducer] - The local video producer object (optional).
|
|
71
|
+
* @param {Socket} options.parameters.socket - The primary socket object.
|
|
72
|
+
* @param {Socket} [options.parameters.localSocket] - The local socket object (optional).
|
|
73
|
+
* @param {string} options.parameters.islevel - The participant's level.
|
|
74
|
+
* @param {string} options.parameters.roomName - The name of the room.
|
|
75
|
+
* @param {boolean} options.parameters.updateMainWindow - The flag to update the main window.
|
|
76
|
+
* @param {boolean} options.parameters.lock_screen - The flag to lock the screen.
|
|
77
|
+
* @param {Function} options.parameters.updateUpdateMainWindow - The function to update the main window state.
|
|
78
|
+
* @param {Function} options.parameters.updateVideoProducer - The function to update the video producer state.
|
|
79
|
+
* @param {Function} [options.parameters.updateLocalVideoProducer] - The function to update the local video producer state (optional).
|
|
80
|
+
* @param {ReorderStreamsType} options.parameters.reorderStreams - The function to reorder streams.
|
|
81
|
+
* @param {Function} [options.parameters.updateLocalProducerTransport] - The function to update the local producer transport state (optional).
|
|
82
|
+
* @param {Function} [options.parameters.updateProducerTransport] - The function to update the producer transport state (optional).
|
|
83
|
+
*
|
|
84
|
+
* @returns {Promise<void>} A promise that resolves when the disconnection process is complete.
|
|
85
|
+
*
|
|
86
|
+
* @throws {Error} Throws an error if the disconnection process fails.
|
|
87
|
+
*
|
|
88
|
+
* @example
|
|
89
|
+
* const options = {
|
|
90
|
+
* parameters: {
|
|
91
|
+
* videoProducer: videoProducerInstance,
|
|
92
|
+
* localVideoProducer: localVideoProducerInstance,
|
|
93
|
+
* socket: socketInstance,
|
|
94
|
+
* localSocket: localSocketInstance,
|
|
95
|
+
* islevel: '2',
|
|
96
|
+
* roomName: 'Room A',
|
|
97
|
+
* updateMainWindow: false,
|
|
98
|
+
* lock_screen: false,
|
|
99
|
+
* updateUpdateMainWindow: (state) => console.log('Main window updated:', state),
|
|
100
|
+
* updateVideoProducer: (producer) => console.log('Video producer updated:', producer),
|
|
101
|
+
* updateLocalVideoProducer: (producer) => console.log('Local video producer updated:', producer),
|
|
102
|
+
* reorderStreams: reorderStreamsFunction,
|
|
103
|
+
* },
|
|
104
|
+
* };
|
|
105
|
+
*
|
|
106
|
+
* disconnectSendTransportVideo(options)
|
|
107
|
+
* .then(() => console.log('Video send transport disconnected successfully'))
|
|
108
|
+
* .catch((error) => console.error('Error disconnecting video send transport:', error));
|
|
109
|
+
*/
|
|
110
|
+
|
|
111
|
+
export const disconnectSendTransportVideo: DisconnectSendTransportVideoType = async ({
|
|
112
|
+
parameters,
|
|
113
|
+
}: DisconnectSendTransportVideoOptions): Promise<void> => {
|
|
114
|
+
try {
|
|
115
|
+
let {
|
|
116
|
+
videoProducer,
|
|
117
|
+
socket,
|
|
118
|
+
islevel,
|
|
119
|
+
roomName,
|
|
120
|
+
updateMainWindow,
|
|
121
|
+
lock_screen,
|
|
122
|
+
updateUpdateMainWindow,
|
|
123
|
+
updateVideoProducer,
|
|
124
|
+
reorderStreams,
|
|
125
|
+
} = parameters;
|
|
126
|
+
|
|
127
|
+
// Close the primary video producer and notify the server
|
|
128
|
+
if (videoProducer) {
|
|
129
|
+
videoProducer.close();
|
|
130
|
+
updateVideoProducer(null);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
socket.emit('pauseProducerMedia', { mediaTag: 'video', roomName: roomName });
|
|
134
|
+
|
|
135
|
+
// Update the UI based on the participant's level and screen lock status
|
|
136
|
+
if (islevel === '2') {
|
|
137
|
+
updateMainWindow = true;
|
|
138
|
+
updateUpdateMainWindow(updateMainWindow);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
if (lock_screen) {
|
|
142
|
+
await reorderStreams({ add: true, screenChanged: true, parameters });
|
|
143
|
+
} else {
|
|
144
|
+
await reorderStreams({ add: false, screenChanged: true, parameters });
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
// Handle local video transport regardless of primary success or failure
|
|
148
|
+
try {
|
|
149
|
+
await disconnectLocalSendTransportVideo({ parameters });
|
|
150
|
+
} catch (localError) {
|
|
151
|
+
console.error('Error disconnecting local video send transport:', localError);
|
|
152
|
+
}
|
|
153
|
+
} catch (error) {
|
|
154
|
+
// Handle errors during the disconnection process
|
|
155
|
+
if (error instanceof Error) {
|
|
156
|
+
console.log('Error disconnecting send transport for video:', error.message);
|
|
157
|
+
} else {
|
|
158
|
+
console.log('Error disconnecting send transport for video:', error);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
};
|