@whereby.com/media 8.0.1 → 8.0.3
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/dist/index.cjs +13 -5
- package/dist/index.d.cts +24 -8
- package/dist/index.d.mts +24 -8
- package/dist/index.d.ts +24 -8
- package/dist/index.mjs +13 -5
- package/dist/legacy-esm.js +13 -5
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -4217,6 +4217,10 @@ class VegaConnection extends EventEmitter.EventEmitter {
|
|
|
4217
4217
|
}
|
|
4218
4218
|
_handleResponse(socketMessage) {
|
|
4219
4219
|
const sent = this.sents.get(socketMessage.id);
|
|
4220
|
+
if (!sent) {
|
|
4221
|
+
logger$3.warn(`Received unknown message with id ${socketMessage.id} from SFU.`);
|
|
4222
|
+
return;
|
|
4223
|
+
}
|
|
4220
4224
|
if (socketMessage.ok) {
|
|
4221
4225
|
sent.resolve(socketMessage.data);
|
|
4222
4226
|
}
|
|
@@ -6747,11 +6751,11 @@ class BandwidthTester extends EventEmitter {
|
|
|
6747
6751
|
const wsUrl = `wss://${host}`;
|
|
6748
6752
|
this._vegaConnection = new VegaConnection(wsUrl, "whereby-sfu#bw-test-v1");
|
|
6749
6753
|
this._vegaConnection.on("open", () => this._start());
|
|
6750
|
-
this._vegaConnection.on("close", () => this.close());
|
|
6754
|
+
this._vegaConnection.on("close", () => this.close(true));
|
|
6751
6755
|
this._vegaConnection.on("message", (message) => this._onMessage(message));
|
|
6752
6756
|
this._startTimeout();
|
|
6753
6757
|
}
|
|
6754
|
-
close() {
|
|
6758
|
+
close(vegaConnectionClosed) {
|
|
6755
6759
|
logger$1.info("close()");
|
|
6756
6760
|
this.closed = true;
|
|
6757
6761
|
if (!!this._timeout || Date.now() - this._startTime < 750) {
|
|
@@ -6759,6 +6763,12 @@ class BandwidthTester extends EventEmitter {
|
|
|
6759
6763
|
error: true,
|
|
6760
6764
|
});
|
|
6761
6765
|
}
|
|
6766
|
+
else if (vegaConnectionClosed && this._resultTimeout) {
|
|
6767
|
+
this.emit("result", {
|
|
6768
|
+
error: true,
|
|
6769
|
+
});
|
|
6770
|
+
clearTimeout(this._resultTimeout);
|
|
6771
|
+
}
|
|
6762
6772
|
this._clearTimeouts();
|
|
6763
6773
|
clearInterval(this._drawInterval);
|
|
6764
6774
|
this._drawInterval = null;
|
|
@@ -7101,9 +7111,7 @@ function buildDeviceList({ busyDeviceIds, devices, kind }) {
|
|
|
7101
7111
|
label: `${busyDeviceIds.includes(d.deviceId) ? "(busy) " : ""}${d.label || d.deviceId.slice(0, 5)}`,
|
|
7102
7112
|
busy: busyDeviceIds.includes(d.deviceId),
|
|
7103
7113
|
}));
|
|
7104
|
-
return deviceList && deviceList.length !== 0
|
|
7105
|
-
? deviceList
|
|
7106
|
-
: [{ [idFieldsByKind[kind]]: "", label: "Default" }];
|
|
7114
|
+
return deviceList && deviceList.length !== 0 ? deviceList : [{ [idFieldsByKind[kind]]: "", label: "Default" }];
|
|
7107
7115
|
}
|
|
7108
7116
|
function getUserMedia(constraints) {
|
|
7109
7117
|
if (!constraints.audio && !constraints.video) {
|
package/dist/index.d.cts
CHANGED
|
@@ -506,8 +506,8 @@ type GetMediaConstraintsOptions = {
|
|
|
506
506
|
};
|
|
507
507
|
type GetConstraintsOptions = {
|
|
508
508
|
devices: MediaDeviceInfo[];
|
|
509
|
-
audioId?: boolean | string;
|
|
510
|
-
videoId?: boolean | string;
|
|
509
|
+
audioId?: boolean | string | null;
|
|
510
|
+
videoId?: boolean | string | null;
|
|
511
511
|
type?: "ideal" | "exact";
|
|
512
512
|
options: Omit<GetMediaConstraintsOptions, "preferredDeviceIds">;
|
|
513
513
|
};
|
|
@@ -515,6 +515,11 @@ type GetStreamOptions = {
|
|
|
515
515
|
replaceStream?: MediaStream;
|
|
516
516
|
fallback?: boolean;
|
|
517
517
|
};
|
|
518
|
+
interface BuildDeviceListOptions {
|
|
519
|
+
devices: MediaDeviceInfo[];
|
|
520
|
+
busyDeviceIds: string[];
|
|
521
|
+
kind: MediaDeviceKind;
|
|
522
|
+
}
|
|
518
523
|
type GetStreamResult = {
|
|
519
524
|
error?: unknown;
|
|
520
525
|
replacedTracks?: MediaStreamTrack[];
|
|
@@ -1136,7 +1141,7 @@ declare class BandwidthTester extends EventEmitter {
|
|
|
1136
1141
|
features?: any;
|
|
1137
1142
|
});
|
|
1138
1143
|
start(runTime?: number): void;
|
|
1139
|
-
close(): void;
|
|
1144
|
+
close(vegaConnectionClosed?: boolean): void;
|
|
1140
1145
|
_start(): Promise<void>;
|
|
1141
1146
|
_createTransport(send: any): Promise<void>;
|
|
1142
1147
|
_getTestTrack(): any;
|
|
@@ -1163,22 +1168,33 @@ declare class NoDevicesError extends Error {
|
|
|
1163
1168
|
constructor(...args: any);
|
|
1164
1169
|
}
|
|
1165
1170
|
declare function enumerate(): Promise<MediaDeviceInfo[]>;
|
|
1166
|
-
declare function buildDeviceList({ busyDeviceIds, devices, kind }:
|
|
1171
|
+
declare function buildDeviceList({ busyDeviceIds, devices, kind }: BuildDeviceListOptions): {
|
|
1172
|
+
[x: string]: string | boolean;
|
|
1173
|
+
label: string;
|
|
1174
|
+
busy: boolean;
|
|
1175
|
+
}[] | {
|
|
1176
|
+
[x: string]: string;
|
|
1177
|
+
label: string;
|
|
1178
|
+
}[];
|
|
1167
1179
|
declare function getUserMedia(constraints: any): Promise<MediaStream>;
|
|
1168
1180
|
declare function getDeviceData({ audioTrack, videoTrack, devices, stoppedVideoTrack, lastAudioId, lastVideoId, }: {
|
|
1169
1181
|
audioTrack?: MediaStreamTrack | null;
|
|
1170
1182
|
videoTrack?: MediaStreamTrack | null;
|
|
1171
1183
|
devices: MediaDeviceInfo[];
|
|
1172
|
-
stoppedVideoTrack?:
|
|
1184
|
+
stoppedVideoTrack?: MediaStreamTrack;
|
|
1173
1185
|
lastAudioId?: string | undefined;
|
|
1174
1186
|
lastVideoId?: string | undefined;
|
|
1175
1187
|
}): GetDeviceDataResult;
|
|
1176
1188
|
declare function stopStreamTracks(stream: MediaStream, only?: "audio" | "video" | false): void;
|
|
1177
1189
|
declare function replaceTracksInStream(stream: MediaStream, newStream: MediaStream, only: "audio" | "video" | false): MediaStreamTrack[];
|
|
1178
|
-
declare function getStream(constraintOpt:
|
|
1190
|
+
declare function getStream(constraintOpt: GetConstraintsOptions, { replaceStream, fallback }?: GetStreamOptions): Promise<GetStreamResult>;
|
|
1179
1191
|
declare function hasGetDisplayMedia(): boolean;
|
|
1180
1192
|
declare function getDisplayMedia(constraints?: DisplayMediaStreamOptions, contentHint?: string): Promise<MediaStream>;
|
|
1181
|
-
declare function compareLocalDevices(before: MediaDeviceInfo[], after: MediaDeviceInfo[]):
|
|
1193
|
+
declare function compareLocalDevices(before: MediaDeviceInfo[], after: MediaDeviceInfo[]): Record<MediaDeviceKind, {
|
|
1194
|
+
removed: Record<string, MediaDeviceInfo>;
|
|
1195
|
+
added: Record<string, MediaDeviceInfo>;
|
|
1196
|
+
changed: Record<string, MediaDeviceInfo>;
|
|
1197
|
+
}>;
|
|
1182
1198
|
declare function getUpdatedDevices({ oldDevices, newDevices, currentAudioId, currentVideoId, currentSpeakerId, }: {
|
|
1183
1199
|
oldDevices: MediaDeviceInfo[];
|
|
1184
1200
|
newDevices: MediaDeviceInfo[];
|
|
@@ -1936,4 +1952,4 @@ declare const STREAM_TYPES: {
|
|
|
1936
1952
|
};
|
|
1937
1953
|
|
|
1938
1954
|
export { ADDITIONAL_SCREEN_SHARE_SETTINGS, AUDIO_SETTINGS, BandwidthTester, CAMERA_STREAM_ID, EVENTS, KNOCK_MESSAGES, KalmanFilter, Logger, MEDIA_JITTER_BUFFER_TARGET, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, RtcEventNames, RtcManagerDispatcher, SCREEN_SHARE_SETTINGS, SCREEN_SHARE_SIMULCAST_SETTINGS, STREAM_TYPES, ServerSocket, Session, SfuV2Parser, TYPES, VIDEO_SETTINGS_HD, VIDEO_SETTINGS_SD, VIDEO_SETTINGS_VP9, VIDEO_SETTINGS_VP9_LOW_BANDWIDTH, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, cleanSdp, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, detectMicrophoneNotWorking, enumerate, external_stun_servers, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getMediasoupDeviceAsync, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getPeerConnectionIndex, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, issueDetectorOrMetricEnabled, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, sortCodecs, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, trackAnnotations, turnServerOverride, variance };
|
|
1939
|
-
export type { AddCameraStreamOptions, AddSpotlightRequest, AudioEnableRequest, AudioEnableRequestedEvent, AudioEnabledEvent, BreakoutConfig, BreakoutGroupJoinedEvent, BreakoutSessionUpdatedEvent, CannotJoinUnclaimedRoomError, ChatMessage, ClearableTimeout, ClientKickedEvent, ClientLeftEvent, ClientMetadataPayload, ClientMetadataReceivedEvent, ClientRole, ClientUnableToJoinEvent, CloudRecordingStartedEvent, Codec, Credentials, ForbiddenError, ForbiddenErrorNames, GetConstraintsOptions, GetDeviceDataResult, GetMediaConstraintsOptions, GetStreamOptions, GetStreamResult, GetUpdatedDevicesResult, HostPresenceControlsError, IdentifyDeviceRequest, InternalServerError, InvalidAssistantKeyError, IssuesAndMetricsByView, JoinRoomRequest, KnockAcceptedEvent, KnockRejectedEvent, KnockRoomRequest, KnockerLeftEvent, LiveTranscriptionStartedEvent, LiveTranscriptionStoppedEvent, MaxViewerLimitReachedError, Metric, NewClientEvent, OrganizationAssistantNotEnabledError, OrganizationAssistantNotFoundError, OrganizationPlanExhaustedError, RemoveScreenshareStreamOptions, RemoveSpotlightRequest, RoleName, RoomConcurrencyControlsError, RoomEmptyError, RoomFullError, RoomJoinPermissionDeniedError, RoomJoinedErrors, RoomJoinedEvent, RoomJoinedSuccess, RoomKnockedEvent, RoomLockedError, RoomLockedEvent, RoomMeetingTimeExhaustedError, RoomMode, RoomSessionEndedEvent, RtcClientConnectionStatusChangedPayload, RtcEventEmitter, RtcEvents, RtcLocalStreamTrackAddedPayload, RtcLocalStreamTrackRemovedPayload, RtcManager, RtcManagerCreatedPayload, RtcManagerOptions, RtcStreamAddedPayload, ScreenshareStartedEvent, ScreenshareStoppedEvent, SendClientMetadataRequest, SignalClient, SignalEvents, SignalIceCandidateMessage, SignalIceEndOfCandidatesMessage, SignalIceServer, SignalKnocker, SignalMediaServerConfig, SignalRTCSessionDescription, SignalReadyToReceiveOfferMessage, SignalRequests, SignalRoom, SignalSDPMessage, SignalSFUServer, SignalTurnServer, SocketConf, SocketManager, Spotlight, SpotlightAddedEvent, SpotlightRemovedEvent, StatsMonitorOptions, StatsMonitorState, StatsSubscription, TurnTransportProtocol, UniqueRoleAlreadyInRoomError, UpdatedDeviceInfo, UpdatedDevicesInfo, VegaRtcManagerOptions, VideoEnableRequest, VideoEnableRequestedEvent, VideoEnabledEvent, WebRTCProvider };
|
|
1955
|
+
export type { AddCameraStreamOptions, AddSpotlightRequest, AudioEnableRequest, AudioEnableRequestedEvent, AudioEnabledEvent, BreakoutConfig, BreakoutGroupJoinedEvent, BreakoutSessionUpdatedEvent, BuildDeviceListOptions, CannotJoinUnclaimedRoomError, ChatMessage, ClearableTimeout, ClientKickedEvent, ClientLeftEvent, ClientMetadataPayload, ClientMetadataReceivedEvent, ClientRole, ClientUnableToJoinEvent, CloudRecordingStartedEvent, Codec, Credentials, ForbiddenError, ForbiddenErrorNames, GetConstraintsOptions, GetDeviceDataResult, GetMediaConstraintsOptions, GetStreamOptions, GetStreamResult, GetUpdatedDevicesResult, HostPresenceControlsError, IdentifyDeviceRequest, InternalServerError, InvalidAssistantKeyError, IssuesAndMetricsByView, JoinRoomRequest, KnockAcceptedEvent, KnockRejectedEvent, KnockRoomRequest, KnockerLeftEvent, LiveTranscriptionStartedEvent, LiveTranscriptionStoppedEvent, MaxViewerLimitReachedError, Metric, NewClientEvent, OrganizationAssistantNotEnabledError, OrganizationAssistantNotFoundError, OrganizationPlanExhaustedError, RemoveScreenshareStreamOptions, RemoveSpotlightRequest, RoleName, RoomConcurrencyControlsError, RoomEmptyError, RoomFullError, RoomJoinPermissionDeniedError, RoomJoinedErrors, RoomJoinedEvent, RoomJoinedSuccess, RoomKnockedEvent, RoomLockedError, RoomLockedEvent, RoomMeetingTimeExhaustedError, RoomMode, RoomSessionEndedEvent, RtcClientConnectionStatusChangedPayload, RtcEventEmitter, RtcEvents, RtcLocalStreamTrackAddedPayload, RtcLocalStreamTrackRemovedPayload, RtcManager, RtcManagerCreatedPayload, RtcManagerOptions, RtcStreamAddedPayload, ScreenshareStartedEvent, ScreenshareStoppedEvent, SendClientMetadataRequest, SignalClient, SignalEvents, SignalIceCandidateMessage, SignalIceEndOfCandidatesMessage, SignalIceServer, SignalKnocker, SignalMediaServerConfig, SignalRTCSessionDescription, SignalReadyToReceiveOfferMessage, SignalRequests, SignalRoom, SignalSDPMessage, SignalSFUServer, SignalTurnServer, SocketConf, SocketManager, Spotlight, SpotlightAddedEvent, SpotlightRemovedEvent, StatsMonitorOptions, StatsMonitorState, StatsSubscription, TurnTransportProtocol, UniqueRoleAlreadyInRoomError, UpdatedDeviceInfo, UpdatedDevicesInfo, VegaRtcManagerOptions, VideoEnableRequest, VideoEnableRequestedEvent, VideoEnabledEvent, WebRTCProvider };
|
package/dist/index.d.mts
CHANGED
|
@@ -506,8 +506,8 @@ type GetMediaConstraintsOptions = {
|
|
|
506
506
|
};
|
|
507
507
|
type GetConstraintsOptions = {
|
|
508
508
|
devices: MediaDeviceInfo[];
|
|
509
|
-
audioId?: boolean | string;
|
|
510
|
-
videoId?: boolean | string;
|
|
509
|
+
audioId?: boolean | string | null;
|
|
510
|
+
videoId?: boolean | string | null;
|
|
511
511
|
type?: "ideal" | "exact";
|
|
512
512
|
options: Omit<GetMediaConstraintsOptions, "preferredDeviceIds">;
|
|
513
513
|
};
|
|
@@ -515,6 +515,11 @@ type GetStreamOptions = {
|
|
|
515
515
|
replaceStream?: MediaStream;
|
|
516
516
|
fallback?: boolean;
|
|
517
517
|
};
|
|
518
|
+
interface BuildDeviceListOptions {
|
|
519
|
+
devices: MediaDeviceInfo[];
|
|
520
|
+
busyDeviceIds: string[];
|
|
521
|
+
kind: MediaDeviceKind;
|
|
522
|
+
}
|
|
518
523
|
type GetStreamResult = {
|
|
519
524
|
error?: unknown;
|
|
520
525
|
replacedTracks?: MediaStreamTrack[];
|
|
@@ -1136,7 +1141,7 @@ declare class BandwidthTester extends EventEmitter {
|
|
|
1136
1141
|
features?: any;
|
|
1137
1142
|
});
|
|
1138
1143
|
start(runTime?: number): void;
|
|
1139
|
-
close(): void;
|
|
1144
|
+
close(vegaConnectionClosed?: boolean): void;
|
|
1140
1145
|
_start(): Promise<void>;
|
|
1141
1146
|
_createTransport(send: any): Promise<void>;
|
|
1142
1147
|
_getTestTrack(): any;
|
|
@@ -1163,22 +1168,33 @@ declare class NoDevicesError extends Error {
|
|
|
1163
1168
|
constructor(...args: any);
|
|
1164
1169
|
}
|
|
1165
1170
|
declare function enumerate(): Promise<MediaDeviceInfo[]>;
|
|
1166
|
-
declare function buildDeviceList({ busyDeviceIds, devices, kind }:
|
|
1171
|
+
declare function buildDeviceList({ busyDeviceIds, devices, kind }: BuildDeviceListOptions): {
|
|
1172
|
+
[x: string]: string | boolean;
|
|
1173
|
+
label: string;
|
|
1174
|
+
busy: boolean;
|
|
1175
|
+
}[] | {
|
|
1176
|
+
[x: string]: string;
|
|
1177
|
+
label: string;
|
|
1178
|
+
}[];
|
|
1167
1179
|
declare function getUserMedia(constraints: any): Promise<MediaStream>;
|
|
1168
1180
|
declare function getDeviceData({ audioTrack, videoTrack, devices, stoppedVideoTrack, lastAudioId, lastVideoId, }: {
|
|
1169
1181
|
audioTrack?: MediaStreamTrack | null;
|
|
1170
1182
|
videoTrack?: MediaStreamTrack | null;
|
|
1171
1183
|
devices: MediaDeviceInfo[];
|
|
1172
|
-
stoppedVideoTrack?:
|
|
1184
|
+
stoppedVideoTrack?: MediaStreamTrack;
|
|
1173
1185
|
lastAudioId?: string | undefined;
|
|
1174
1186
|
lastVideoId?: string | undefined;
|
|
1175
1187
|
}): GetDeviceDataResult;
|
|
1176
1188
|
declare function stopStreamTracks(stream: MediaStream, only?: "audio" | "video" | false): void;
|
|
1177
1189
|
declare function replaceTracksInStream(stream: MediaStream, newStream: MediaStream, only: "audio" | "video" | false): MediaStreamTrack[];
|
|
1178
|
-
declare function getStream(constraintOpt:
|
|
1190
|
+
declare function getStream(constraintOpt: GetConstraintsOptions, { replaceStream, fallback }?: GetStreamOptions): Promise<GetStreamResult>;
|
|
1179
1191
|
declare function hasGetDisplayMedia(): boolean;
|
|
1180
1192
|
declare function getDisplayMedia(constraints?: DisplayMediaStreamOptions, contentHint?: string): Promise<MediaStream>;
|
|
1181
|
-
declare function compareLocalDevices(before: MediaDeviceInfo[], after: MediaDeviceInfo[]):
|
|
1193
|
+
declare function compareLocalDevices(before: MediaDeviceInfo[], after: MediaDeviceInfo[]): Record<MediaDeviceKind, {
|
|
1194
|
+
removed: Record<string, MediaDeviceInfo>;
|
|
1195
|
+
added: Record<string, MediaDeviceInfo>;
|
|
1196
|
+
changed: Record<string, MediaDeviceInfo>;
|
|
1197
|
+
}>;
|
|
1182
1198
|
declare function getUpdatedDevices({ oldDevices, newDevices, currentAudioId, currentVideoId, currentSpeakerId, }: {
|
|
1183
1199
|
oldDevices: MediaDeviceInfo[];
|
|
1184
1200
|
newDevices: MediaDeviceInfo[];
|
|
@@ -1936,4 +1952,4 @@ declare const STREAM_TYPES: {
|
|
|
1936
1952
|
};
|
|
1937
1953
|
|
|
1938
1954
|
export { ADDITIONAL_SCREEN_SHARE_SETTINGS, AUDIO_SETTINGS, BandwidthTester, CAMERA_STREAM_ID, EVENTS, KNOCK_MESSAGES, KalmanFilter, Logger, MEDIA_JITTER_BUFFER_TARGET, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, RtcEventNames, RtcManagerDispatcher, SCREEN_SHARE_SETTINGS, SCREEN_SHARE_SIMULCAST_SETTINGS, STREAM_TYPES, ServerSocket, Session, SfuV2Parser, TYPES, VIDEO_SETTINGS_HD, VIDEO_SETTINGS_SD, VIDEO_SETTINGS_VP9, VIDEO_SETTINGS_VP9_LOW_BANDWIDTH, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, cleanSdp, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, detectMicrophoneNotWorking, enumerate, external_stun_servers, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getMediasoupDeviceAsync, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getPeerConnectionIndex, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, issueDetectorOrMetricEnabled, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, sortCodecs, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, trackAnnotations, turnServerOverride, variance };
|
|
1939
|
-
export type { AddCameraStreamOptions, AddSpotlightRequest, AudioEnableRequest, AudioEnableRequestedEvent, AudioEnabledEvent, BreakoutConfig, BreakoutGroupJoinedEvent, BreakoutSessionUpdatedEvent, CannotJoinUnclaimedRoomError, ChatMessage, ClearableTimeout, ClientKickedEvent, ClientLeftEvent, ClientMetadataPayload, ClientMetadataReceivedEvent, ClientRole, ClientUnableToJoinEvent, CloudRecordingStartedEvent, Codec, Credentials, ForbiddenError, ForbiddenErrorNames, GetConstraintsOptions, GetDeviceDataResult, GetMediaConstraintsOptions, GetStreamOptions, GetStreamResult, GetUpdatedDevicesResult, HostPresenceControlsError, IdentifyDeviceRequest, InternalServerError, InvalidAssistantKeyError, IssuesAndMetricsByView, JoinRoomRequest, KnockAcceptedEvent, KnockRejectedEvent, KnockRoomRequest, KnockerLeftEvent, LiveTranscriptionStartedEvent, LiveTranscriptionStoppedEvent, MaxViewerLimitReachedError, Metric, NewClientEvent, OrganizationAssistantNotEnabledError, OrganizationAssistantNotFoundError, OrganizationPlanExhaustedError, RemoveScreenshareStreamOptions, RemoveSpotlightRequest, RoleName, RoomConcurrencyControlsError, RoomEmptyError, RoomFullError, RoomJoinPermissionDeniedError, RoomJoinedErrors, RoomJoinedEvent, RoomJoinedSuccess, RoomKnockedEvent, RoomLockedError, RoomLockedEvent, RoomMeetingTimeExhaustedError, RoomMode, RoomSessionEndedEvent, RtcClientConnectionStatusChangedPayload, RtcEventEmitter, RtcEvents, RtcLocalStreamTrackAddedPayload, RtcLocalStreamTrackRemovedPayload, RtcManager, RtcManagerCreatedPayload, RtcManagerOptions, RtcStreamAddedPayload, ScreenshareStartedEvent, ScreenshareStoppedEvent, SendClientMetadataRequest, SignalClient, SignalEvents, SignalIceCandidateMessage, SignalIceEndOfCandidatesMessage, SignalIceServer, SignalKnocker, SignalMediaServerConfig, SignalRTCSessionDescription, SignalReadyToReceiveOfferMessage, SignalRequests, SignalRoom, SignalSDPMessage, SignalSFUServer, SignalTurnServer, SocketConf, SocketManager, Spotlight, SpotlightAddedEvent, SpotlightRemovedEvent, StatsMonitorOptions, StatsMonitorState, StatsSubscription, TurnTransportProtocol, UniqueRoleAlreadyInRoomError, UpdatedDeviceInfo, UpdatedDevicesInfo, VegaRtcManagerOptions, VideoEnableRequest, VideoEnableRequestedEvent, VideoEnabledEvent, WebRTCProvider };
|
|
1955
|
+
export type { AddCameraStreamOptions, AddSpotlightRequest, AudioEnableRequest, AudioEnableRequestedEvent, AudioEnabledEvent, BreakoutConfig, BreakoutGroupJoinedEvent, BreakoutSessionUpdatedEvent, BuildDeviceListOptions, CannotJoinUnclaimedRoomError, ChatMessage, ClearableTimeout, ClientKickedEvent, ClientLeftEvent, ClientMetadataPayload, ClientMetadataReceivedEvent, ClientRole, ClientUnableToJoinEvent, CloudRecordingStartedEvent, Codec, Credentials, ForbiddenError, ForbiddenErrorNames, GetConstraintsOptions, GetDeviceDataResult, GetMediaConstraintsOptions, GetStreamOptions, GetStreamResult, GetUpdatedDevicesResult, HostPresenceControlsError, IdentifyDeviceRequest, InternalServerError, InvalidAssistantKeyError, IssuesAndMetricsByView, JoinRoomRequest, KnockAcceptedEvent, KnockRejectedEvent, KnockRoomRequest, KnockerLeftEvent, LiveTranscriptionStartedEvent, LiveTranscriptionStoppedEvent, MaxViewerLimitReachedError, Metric, NewClientEvent, OrganizationAssistantNotEnabledError, OrganizationAssistantNotFoundError, OrganizationPlanExhaustedError, RemoveScreenshareStreamOptions, RemoveSpotlightRequest, RoleName, RoomConcurrencyControlsError, RoomEmptyError, RoomFullError, RoomJoinPermissionDeniedError, RoomJoinedErrors, RoomJoinedEvent, RoomJoinedSuccess, RoomKnockedEvent, RoomLockedError, RoomLockedEvent, RoomMeetingTimeExhaustedError, RoomMode, RoomSessionEndedEvent, RtcClientConnectionStatusChangedPayload, RtcEventEmitter, RtcEvents, RtcLocalStreamTrackAddedPayload, RtcLocalStreamTrackRemovedPayload, RtcManager, RtcManagerCreatedPayload, RtcManagerOptions, RtcStreamAddedPayload, ScreenshareStartedEvent, ScreenshareStoppedEvent, SendClientMetadataRequest, SignalClient, SignalEvents, SignalIceCandidateMessage, SignalIceEndOfCandidatesMessage, SignalIceServer, SignalKnocker, SignalMediaServerConfig, SignalRTCSessionDescription, SignalReadyToReceiveOfferMessage, SignalRequests, SignalRoom, SignalSDPMessage, SignalSFUServer, SignalTurnServer, SocketConf, SocketManager, Spotlight, SpotlightAddedEvent, SpotlightRemovedEvent, StatsMonitorOptions, StatsMonitorState, StatsSubscription, TurnTransportProtocol, UniqueRoleAlreadyInRoomError, UpdatedDeviceInfo, UpdatedDevicesInfo, VegaRtcManagerOptions, VideoEnableRequest, VideoEnableRequestedEvent, VideoEnabledEvent, WebRTCProvider };
|
package/dist/index.d.ts
CHANGED
|
@@ -506,8 +506,8 @@ type GetMediaConstraintsOptions = {
|
|
|
506
506
|
};
|
|
507
507
|
type GetConstraintsOptions = {
|
|
508
508
|
devices: MediaDeviceInfo[];
|
|
509
|
-
audioId?: boolean | string;
|
|
510
|
-
videoId?: boolean | string;
|
|
509
|
+
audioId?: boolean | string | null;
|
|
510
|
+
videoId?: boolean | string | null;
|
|
511
511
|
type?: "ideal" | "exact";
|
|
512
512
|
options: Omit<GetMediaConstraintsOptions, "preferredDeviceIds">;
|
|
513
513
|
};
|
|
@@ -515,6 +515,11 @@ type GetStreamOptions = {
|
|
|
515
515
|
replaceStream?: MediaStream;
|
|
516
516
|
fallback?: boolean;
|
|
517
517
|
};
|
|
518
|
+
interface BuildDeviceListOptions {
|
|
519
|
+
devices: MediaDeviceInfo[];
|
|
520
|
+
busyDeviceIds: string[];
|
|
521
|
+
kind: MediaDeviceKind;
|
|
522
|
+
}
|
|
518
523
|
type GetStreamResult = {
|
|
519
524
|
error?: unknown;
|
|
520
525
|
replacedTracks?: MediaStreamTrack[];
|
|
@@ -1136,7 +1141,7 @@ declare class BandwidthTester extends EventEmitter {
|
|
|
1136
1141
|
features?: any;
|
|
1137
1142
|
});
|
|
1138
1143
|
start(runTime?: number): void;
|
|
1139
|
-
close(): void;
|
|
1144
|
+
close(vegaConnectionClosed?: boolean): void;
|
|
1140
1145
|
_start(): Promise<void>;
|
|
1141
1146
|
_createTransport(send: any): Promise<void>;
|
|
1142
1147
|
_getTestTrack(): any;
|
|
@@ -1163,22 +1168,33 @@ declare class NoDevicesError extends Error {
|
|
|
1163
1168
|
constructor(...args: any);
|
|
1164
1169
|
}
|
|
1165
1170
|
declare function enumerate(): Promise<MediaDeviceInfo[]>;
|
|
1166
|
-
declare function buildDeviceList({ busyDeviceIds, devices, kind }:
|
|
1171
|
+
declare function buildDeviceList({ busyDeviceIds, devices, kind }: BuildDeviceListOptions): {
|
|
1172
|
+
[x: string]: string | boolean;
|
|
1173
|
+
label: string;
|
|
1174
|
+
busy: boolean;
|
|
1175
|
+
}[] | {
|
|
1176
|
+
[x: string]: string;
|
|
1177
|
+
label: string;
|
|
1178
|
+
}[];
|
|
1167
1179
|
declare function getUserMedia(constraints: any): Promise<MediaStream>;
|
|
1168
1180
|
declare function getDeviceData({ audioTrack, videoTrack, devices, stoppedVideoTrack, lastAudioId, lastVideoId, }: {
|
|
1169
1181
|
audioTrack?: MediaStreamTrack | null;
|
|
1170
1182
|
videoTrack?: MediaStreamTrack | null;
|
|
1171
1183
|
devices: MediaDeviceInfo[];
|
|
1172
|
-
stoppedVideoTrack?:
|
|
1184
|
+
stoppedVideoTrack?: MediaStreamTrack;
|
|
1173
1185
|
lastAudioId?: string | undefined;
|
|
1174
1186
|
lastVideoId?: string | undefined;
|
|
1175
1187
|
}): GetDeviceDataResult;
|
|
1176
1188
|
declare function stopStreamTracks(stream: MediaStream, only?: "audio" | "video" | false): void;
|
|
1177
1189
|
declare function replaceTracksInStream(stream: MediaStream, newStream: MediaStream, only: "audio" | "video" | false): MediaStreamTrack[];
|
|
1178
|
-
declare function getStream(constraintOpt:
|
|
1190
|
+
declare function getStream(constraintOpt: GetConstraintsOptions, { replaceStream, fallback }?: GetStreamOptions): Promise<GetStreamResult>;
|
|
1179
1191
|
declare function hasGetDisplayMedia(): boolean;
|
|
1180
1192
|
declare function getDisplayMedia(constraints?: DisplayMediaStreamOptions, contentHint?: string): Promise<MediaStream>;
|
|
1181
|
-
declare function compareLocalDevices(before: MediaDeviceInfo[], after: MediaDeviceInfo[]):
|
|
1193
|
+
declare function compareLocalDevices(before: MediaDeviceInfo[], after: MediaDeviceInfo[]): Record<MediaDeviceKind, {
|
|
1194
|
+
removed: Record<string, MediaDeviceInfo>;
|
|
1195
|
+
added: Record<string, MediaDeviceInfo>;
|
|
1196
|
+
changed: Record<string, MediaDeviceInfo>;
|
|
1197
|
+
}>;
|
|
1182
1198
|
declare function getUpdatedDevices({ oldDevices, newDevices, currentAudioId, currentVideoId, currentSpeakerId, }: {
|
|
1183
1199
|
oldDevices: MediaDeviceInfo[];
|
|
1184
1200
|
newDevices: MediaDeviceInfo[];
|
|
@@ -1936,4 +1952,4 @@ declare const STREAM_TYPES: {
|
|
|
1936
1952
|
};
|
|
1937
1953
|
|
|
1938
1954
|
export { ADDITIONAL_SCREEN_SHARE_SETTINGS, AUDIO_SETTINGS, BandwidthTester, CAMERA_STREAM_ID, EVENTS, KNOCK_MESSAGES, KalmanFilter, Logger, MEDIA_JITTER_BUFFER_TARGET, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, RtcEventNames, RtcManagerDispatcher, SCREEN_SHARE_SETTINGS, SCREEN_SHARE_SIMULCAST_SETTINGS, STREAM_TYPES, ServerSocket, Session, SfuV2Parser, TYPES, VIDEO_SETTINGS_HD, VIDEO_SETTINGS_SD, VIDEO_SETTINGS_VP9, VIDEO_SETTINGS_VP9_LOW_BANDWIDTH, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, cleanSdp, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, detectMicrophoneNotWorking, enumerate, external_stun_servers, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getMediasoupDeviceAsync, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getPeerConnectionIndex, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, issueDetectorOrMetricEnabled, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, sortCodecs, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, trackAnnotations, turnServerOverride, variance };
|
|
1939
|
-
export type { AddCameraStreamOptions, AddSpotlightRequest, AudioEnableRequest, AudioEnableRequestedEvent, AudioEnabledEvent, BreakoutConfig, BreakoutGroupJoinedEvent, BreakoutSessionUpdatedEvent, CannotJoinUnclaimedRoomError, ChatMessage, ClearableTimeout, ClientKickedEvent, ClientLeftEvent, ClientMetadataPayload, ClientMetadataReceivedEvent, ClientRole, ClientUnableToJoinEvent, CloudRecordingStartedEvent, Codec, Credentials, ForbiddenError, ForbiddenErrorNames, GetConstraintsOptions, GetDeviceDataResult, GetMediaConstraintsOptions, GetStreamOptions, GetStreamResult, GetUpdatedDevicesResult, HostPresenceControlsError, IdentifyDeviceRequest, InternalServerError, InvalidAssistantKeyError, IssuesAndMetricsByView, JoinRoomRequest, KnockAcceptedEvent, KnockRejectedEvent, KnockRoomRequest, KnockerLeftEvent, LiveTranscriptionStartedEvent, LiveTranscriptionStoppedEvent, MaxViewerLimitReachedError, Metric, NewClientEvent, OrganizationAssistantNotEnabledError, OrganizationAssistantNotFoundError, OrganizationPlanExhaustedError, RemoveScreenshareStreamOptions, RemoveSpotlightRequest, RoleName, RoomConcurrencyControlsError, RoomEmptyError, RoomFullError, RoomJoinPermissionDeniedError, RoomJoinedErrors, RoomJoinedEvent, RoomJoinedSuccess, RoomKnockedEvent, RoomLockedError, RoomLockedEvent, RoomMeetingTimeExhaustedError, RoomMode, RoomSessionEndedEvent, RtcClientConnectionStatusChangedPayload, RtcEventEmitter, RtcEvents, RtcLocalStreamTrackAddedPayload, RtcLocalStreamTrackRemovedPayload, RtcManager, RtcManagerCreatedPayload, RtcManagerOptions, RtcStreamAddedPayload, ScreenshareStartedEvent, ScreenshareStoppedEvent, SendClientMetadataRequest, SignalClient, SignalEvents, SignalIceCandidateMessage, SignalIceEndOfCandidatesMessage, SignalIceServer, SignalKnocker, SignalMediaServerConfig, SignalRTCSessionDescription, SignalReadyToReceiveOfferMessage, SignalRequests, SignalRoom, SignalSDPMessage, SignalSFUServer, SignalTurnServer, SocketConf, SocketManager, Spotlight, SpotlightAddedEvent, SpotlightRemovedEvent, StatsMonitorOptions, StatsMonitorState, StatsSubscription, TurnTransportProtocol, UniqueRoleAlreadyInRoomError, UpdatedDeviceInfo, UpdatedDevicesInfo, VegaRtcManagerOptions, VideoEnableRequest, VideoEnableRequestedEvent, VideoEnabledEvent, WebRTCProvider };
|
|
1955
|
+
export type { AddCameraStreamOptions, AddSpotlightRequest, AudioEnableRequest, AudioEnableRequestedEvent, AudioEnabledEvent, BreakoutConfig, BreakoutGroupJoinedEvent, BreakoutSessionUpdatedEvent, BuildDeviceListOptions, CannotJoinUnclaimedRoomError, ChatMessage, ClearableTimeout, ClientKickedEvent, ClientLeftEvent, ClientMetadataPayload, ClientMetadataReceivedEvent, ClientRole, ClientUnableToJoinEvent, CloudRecordingStartedEvent, Codec, Credentials, ForbiddenError, ForbiddenErrorNames, GetConstraintsOptions, GetDeviceDataResult, GetMediaConstraintsOptions, GetStreamOptions, GetStreamResult, GetUpdatedDevicesResult, HostPresenceControlsError, IdentifyDeviceRequest, InternalServerError, InvalidAssistantKeyError, IssuesAndMetricsByView, JoinRoomRequest, KnockAcceptedEvent, KnockRejectedEvent, KnockRoomRequest, KnockerLeftEvent, LiveTranscriptionStartedEvent, LiveTranscriptionStoppedEvent, MaxViewerLimitReachedError, Metric, NewClientEvent, OrganizationAssistantNotEnabledError, OrganizationAssistantNotFoundError, OrganizationPlanExhaustedError, RemoveScreenshareStreamOptions, RemoveSpotlightRequest, RoleName, RoomConcurrencyControlsError, RoomEmptyError, RoomFullError, RoomJoinPermissionDeniedError, RoomJoinedErrors, RoomJoinedEvent, RoomJoinedSuccess, RoomKnockedEvent, RoomLockedError, RoomLockedEvent, RoomMeetingTimeExhaustedError, RoomMode, RoomSessionEndedEvent, RtcClientConnectionStatusChangedPayload, RtcEventEmitter, RtcEvents, RtcLocalStreamTrackAddedPayload, RtcLocalStreamTrackRemovedPayload, RtcManager, RtcManagerCreatedPayload, RtcManagerOptions, RtcStreamAddedPayload, ScreenshareStartedEvent, ScreenshareStoppedEvent, SendClientMetadataRequest, SignalClient, SignalEvents, SignalIceCandidateMessage, SignalIceEndOfCandidatesMessage, SignalIceServer, SignalKnocker, SignalMediaServerConfig, SignalRTCSessionDescription, SignalReadyToReceiveOfferMessage, SignalRequests, SignalRoom, SignalSDPMessage, SignalSFUServer, SignalTurnServer, SocketConf, SocketManager, Spotlight, SpotlightAddedEvent, SpotlightRemovedEvent, StatsMonitorOptions, StatsMonitorState, StatsSubscription, TurnTransportProtocol, UniqueRoleAlreadyInRoomError, UpdatedDeviceInfo, UpdatedDevicesInfo, VegaRtcManagerOptions, VideoEnableRequest, VideoEnableRequestedEvent, VideoEnabledEvent, WebRTCProvider };
|
package/dist/index.mjs
CHANGED
|
@@ -4196,6 +4196,10 @@ class VegaConnection extends EventEmitter$1 {
|
|
|
4196
4196
|
}
|
|
4197
4197
|
_handleResponse(socketMessage) {
|
|
4198
4198
|
const sent = this.sents.get(socketMessage.id);
|
|
4199
|
+
if (!sent) {
|
|
4200
|
+
logger$3.warn(`Received unknown message with id ${socketMessage.id} from SFU.`);
|
|
4201
|
+
return;
|
|
4202
|
+
}
|
|
4199
4203
|
if (socketMessage.ok) {
|
|
4200
4204
|
sent.resolve(socketMessage.data);
|
|
4201
4205
|
}
|
|
@@ -6726,11 +6730,11 @@ class BandwidthTester extends EventEmitter {
|
|
|
6726
6730
|
const wsUrl = `wss://${host}`;
|
|
6727
6731
|
this._vegaConnection = new VegaConnection(wsUrl, "whereby-sfu#bw-test-v1");
|
|
6728
6732
|
this._vegaConnection.on("open", () => this._start());
|
|
6729
|
-
this._vegaConnection.on("close", () => this.close());
|
|
6733
|
+
this._vegaConnection.on("close", () => this.close(true));
|
|
6730
6734
|
this._vegaConnection.on("message", (message) => this._onMessage(message));
|
|
6731
6735
|
this._startTimeout();
|
|
6732
6736
|
}
|
|
6733
|
-
close() {
|
|
6737
|
+
close(vegaConnectionClosed) {
|
|
6734
6738
|
logger$1.info("close()");
|
|
6735
6739
|
this.closed = true;
|
|
6736
6740
|
if (!!this._timeout || Date.now() - this._startTime < 750) {
|
|
@@ -6738,6 +6742,12 @@ class BandwidthTester extends EventEmitter {
|
|
|
6738
6742
|
error: true,
|
|
6739
6743
|
});
|
|
6740
6744
|
}
|
|
6745
|
+
else if (vegaConnectionClosed && this._resultTimeout) {
|
|
6746
|
+
this.emit("result", {
|
|
6747
|
+
error: true,
|
|
6748
|
+
});
|
|
6749
|
+
clearTimeout(this._resultTimeout);
|
|
6750
|
+
}
|
|
6741
6751
|
this._clearTimeouts();
|
|
6742
6752
|
clearInterval(this._drawInterval);
|
|
6743
6753
|
this._drawInterval = null;
|
|
@@ -7080,9 +7090,7 @@ function buildDeviceList({ busyDeviceIds, devices, kind }) {
|
|
|
7080
7090
|
label: `${busyDeviceIds.includes(d.deviceId) ? "(busy) " : ""}${d.label || d.deviceId.slice(0, 5)}`,
|
|
7081
7091
|
busy: busyDeviceIds.includes(d.deviceId),
|
|
7082
7092
|
}));
|
|
7083
|
-
return deviceList && deviceList.length !== 0
|
|
7084
|
-
? deviceList
|
|
7085
|
-
: [{ [idFieldsByKind[kind]]: "", label: "Default" }];
|
|
7093
|
+
return deviceList && deviceList.length !== 0 ? deviceList : [{ [idFieldsByKind[kind]]: "", label: "Default" }];
|
|
7086
7094
|
}
|
|
7087
7095
|
function getUserMedia(constraints) {
|
|
7088
7096
|
if (!constraints.audio && !constraints.video) {
|
package/dist/legacy-esm.js
CHANGED
|
@@ -4196,6 +4196,10 @@ class VegaConnection extends EventEmitter$1 {
|
|
|
4196
4196
|
}
|
|
4197
4197
|
_handleResponse(socketMessage) {
|
|
4198
4198
|
const sent = this.sents.get(socketMessage.id);
|
|
4199
|
+
if (!sent) {
|
|
4200
|
+
logger$3.warn(`Received unknown message with id ${socketMessage.id} from SFU.`);
|
|
4201
|
+
return;
|
|
4202
|
+
}
|
|
4199
4203
|
if (socketMessage.ok) {
|
|
4200
4204
|
sent.resolve(socketMessage.data);
|
|
4201
4205
|
}
|
|
@@ -6726,11 +6730,11 @@ class BandwidthTester extends EventEmitter {
|
|
|
6726
6730
|
const wsUrl = `wss://${host}`;
|
|
6727
6731
|
this._vegaConnection = new VegaConnection(wsUrl, "whereby-sfu#bw-test-v1");
|
|
6728
6732
|
this._vegaConnection.on("open", () => this._start());
|
|
6729
|
-
this._vegaConnection.on("close", () => this.close());
|
|
6733
|
+
this._vegaConnection.on("close", () => this.close(true));
|
|
6730
6734
|
this._vegaConnection.on("message", (message) => this._onMessage(message));
|
|
6731
6735
|
this._startTimeout();
|
|
6732
6736
|
}
|
|
6733
|
-
close() {
|
|
6737
|
+
close(vegaConnectionClosed) {
|
|
6734
6738
|
logger$1.info("close()");
|
|
6735
6739
|
this.closed = true;
|
|
6736
6740
|
if (!!this._timeout || Date.now() - this._startTime < 750) {
|
|
@@ -6738,6 +6742,12 @@ class BandwidthTester extends EventEmitter {
|
|
|
6738
6742
|
error: true,
|
|
6739
6743
|
});
|
|
6740
6744
|
}
|
|
6745
|
+
else if (vegaConnectionClosed && this._resultTimeout) {
|
|
6746
|
+
this.emit("result", {
|
|
6747
|
+
error: true,
|
|
6748
|
+
});
|
|
6749
|
+
clearTimeout(this._resultTimeout);
|
|
6750
|
+
}
|
|
6741
6751
|
this._clearTimeouts();
|
|
6742
6752
|
clearInterval(this._drawInterval);
|
|
6743
6753
|
this._drawInterval = null;
|
|
@@ -7080,9 +7090,7 @@ function buildDeviceList({ busyDeviceIds, devices, kind }) {
|
|
|
7080
7090
|
label: `${busyDeviceIds.includes(d.deviceId) ? "(busy) " : ""}${d.label || d.deviceId.slice(0, 5)}`,
|
|
7081
7091
|
busy: busyDeviceIds.includes(d.deviceId),
|
|
7082
7092
|
}));
|
|
7083
|
-
return deviceList && deviceList.length !== 0
|
|
7084
|
-
? deviceList
|
|
7085
|
-
: [{ [idFieldsByKind[kind]]: "", label: "Default" }];
|
|
7093
|
+
return deviceList && deviceList.length !== 0 ? deviceList : [{ [idFieldsByKind[kind]]: "", label: "Default" }];
|
|
7086
7094
|
}
|
|
7087
7095
|
function getUserMedia(constraints) {
|
|
7088
7096
|
if (!constraints.audio && !constraints.video) {
|