@whereby.com/media 1.6.4 → 1.7.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/dist/index.cjs +71 -47
- package/dist/index.d.cts +24 -13
- package/dist/index.d.mts +24 -13
- package/dist/index.d.ts +24 -13
- package/dist/index.mjs +71 -47
- package/dist/legacy-esm.js +71 -47
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -3290,6 +3290,8 @@ const PROTOCOL_RESPONSES = {
|
|
|
3290
3290
|
USER_NOTIFIED: "user_notified",
|
|
3291
3291
|
VIDEO_ENABLED: "video_enabled",
|
|
3292
3292
|
CLIENT_UNABLE_TO_JOIN: "client_unable_to_join",
|
|
3293
|
+
LIVE_TRANSCRIPTION_STARTED: "live_transcription_started",
|
|
3294
|
+
LIVE_TRANSCRIPTION_STOPPED: "live_transcription_stopped",
|
|
3293
3295
|
};
|
|
3294
3296
|
const PROTOCOL_ERRORS = {
|
|
3295
3297
|
CANNOT_INVITE_YOURSELF: "cannot_invite_yourself",
|
|
@@ -3548,20 +3550,32 @@ class P2pRtcManager {
|
|
|
3548
3550
|
maybeRestrictRelayBandwidth(session) {
|
|
3549
3551
|
session.maybeRestrictRelayBandwidth();
|
|
3550
3552
|
}
|
|
3551
|
-
addNewStream(streamId, stream) {
|
|
3553
|
+
addNewStream(streamId, stream, audioPaused, videoPaused, beforeEffectTracks = []) {
|
|
3552
3554
|
if (stream === this.localStreams[streamId]) {
|
|
3553
3555
|
return;
|
|
3554
3556
|
}
|
|
3555
3557
|
this._addLocalStream(streamId, stream);
|
|
3556
3558
|
if (streamId === CAMERA_STREAM_ID) {
|
|
3557
3559
|
this._addStreamToPeerConnections(stream);
|
|
3558
|
-
const
|
|
3560
|
+
const audioTrack = stream.getAudioTracks()[0];
|
|
3559
3561
|
const videoTrack = stream.getVideoTracks()[0];
|
|
3560
3562
|
if (audioTrack) {
|
|
3561
|
-
|
|
3563
|
+
if (!audioTrack.effectTrack) {
|
|
3564
|
+
this._monitorAudioTrack(audioTrack);
|
|
3565
|
+
}
|
|
3566
|
+
const beforeEffectTrack = beforeEffectTracks.find((t) => t.kind === "audio");
|
|
3567
|
+
if (beforeEffectTrack) {
|
|
3568
|
+
this._monitorAudioTrack(beforeEffectTrack);
|
|
3569
|
+
}
|
|
3562
3570
|
}
|
|
3563
|
-
if (videoTrack
|
|
3564
|
-
|
|
3571
|
+
if (videoTrack) {
|
|
3572
|
+
if (!videoTrack.effectTrack) {
|
|
3573
|
+
this._monitorVideoTrack(videoTrack);
|
|
3574
|
+
}
|
|
3575
|
+
const beforeEffectTrack = beforeEffectTracks.find((t) => t.kind === "video");
|
|
3576
|
+
if (beforeEffectTrack) {
|
|
3577
|
+
this._monitorVideoTrack(beforeEffectTrack);
|
|
3578
|
+
}
|
|
3565
3579
|
}
|
|
3566
3580
|
if (this._localStreamDeregisterFunction) {
|
|
3567
3581
|
this._localStreamDeregisterFunction();
|
|
@@ -3582,17 +3596,11 @@ class P2pRtcManager {
|
|
|
3582
3596
|
return;
|
|
3583
3597
|
}
|
|
3584
3598
|
replaceTrack(oldTrack, newTrack) {
|
|
3585
|
-
if (
|
|
3586
|
-
this.
|
|
3587
|
-
}
|
|
3588
|
-
if (oldTrack && oldTrack.kind === "video" && !newTrack.replacement) {
|
|
3589
|
-
this._stopMonitoringVideoTrack(oldTrack);
|
|
3599
|
+
if (newTrack.kind === "audio" && !newTrack.effectTrack) {
|
|
3600
|
+
this._monitorAudioTrack(newTrack);
|
|
3590
3601
|
}
|
|
3591
|
-
if (newTrack
|
|
3592
|
-
this.
|
|
3593
|
-
}
|
|
3594
|
-
if (newTrack.kind === "video" && !newTrack.replacement) {
|
|
3595
|
-
this._startMonitoringVideoTrack(newTrack);
|
|
3602
|
+
if (newTrack.kind === "video" && !newTrack.effectTrack) {
|
|
3603
|
+
this._monitorVideoTrack(newTrack);
|
|
3596
3604
|
}
|
|
3597
3605
|
return this._replaceTrackToPeerConnections(oldTrack, newTrack);
|
|
3598
3606
|
}
|
|
@@ -4106,17 +4114,21 @@ class P2pRtcManager {
|
|
|
4106
4114
|
clearTimeout(this._fetchMediaServersTimer);
|
|
4107
4115
|
this._fetchMediaServersTimer = null;
|
|
4108
4116
|
}
|
|
4109
|
-
|
|
4117
|
+
_monitorAudioTrack(track) {
|
|
4118
|
+
var _a, _b;
|
|
4119
|
+
if (((_a = this._audioTrackBeingMonitored) === null || _a === void 0 ? void 0 : _a.id) === track.id)
|
|
4120
|
+
return;
|
|
4121
|
+
(_b = this._audioTrackBeingMonitored) === null || _b === void 0 ? void 0 : _b.removeEventListener("ended", this._audioTrackOnEnded);
|
|
4110
4122
|
track.addEventListener("ended", this._audioTrackOnEnded);
|
|
4123
|
+
this._audioTrackBeingMonitored = track;
|
|
4111
4124
|
}
|
|
4112
|
-
|
|
4113
|
-
|
|
4114
|
-
|
|
4115
|
-
|
|
4125
|
+
_monitorVideoTrack(track) {
|
|
4126
|
+
var _a, _b;
|
|
4127
|
+
if (((_a = this._videoTrackBeingMonitored) === null || _a === void 0 ? void 0 : _a.id) === track.id)
|
|
4128
|
+
return;
|
|
4129
|
+
(_b = this._videoTrackBeingMonitored) === null || _b === void 0 ? void 0 : _b.removeEventListener("ended", this._videoTrackOnEnded);
|
|
4116
4130
|
track.addEventListener("ended", this._videoTrackOnEnded);
|
|
4117
|
-
|
|
4118
|
-
_stopMonitoringVideoTrack(track) {
|
|
4119
|
-
track.removeEventListener("ended", this._videoTrackOnEnded);
|
|
4131
|
+
this._videoTrackBeingMonitored = track;
|
|
4120
4132
|
}
|
|
4121
4133
|
_connect(clientId) {
|
|
4122
4134
|
this.rtcStatsReconnect();
|
|
@@ -4476,7 +4488,9 @@ class P2pRtcManager {
|
|
|
4476
4488
|
return;
|
|
4477
4489
|
}
|
|
4478
4490
|
if (enable === false) {
|
|
4479
|
-
const stopCameraDelay = ((_a = localStream.getVideoTracks().find((t) => !t.enabled)) === null || _a === void 0 ? void 0 : _a.readyState) === "ended"
|
|
4491
|
+
const stopCameraDelay = ((_a = localStream.getVideoTracks().find((t) => !t.enabled)) === null || _a === void 0 ? void 0 : _a.readyState) === "ended"
|
|
4492
|
+
? 0
|
|
4493
|
+
: 5000;
|
|
4480
4494
|
setTimeout(() => {
|
|
4481
4495
|
localStream.getVideoTracks().forEach((track) => {
|
|
4482
4496
|
if (track.enabled === false) {
|
|
@@ -4500,7 +4514,7 @@ class P2pRtcManager {
|
|
|
4500
4514
|
navigator.mediaDevices.getUserMedia({ video: constraints }).then((stream) => {
|
|
4501
4515
|
const track = stream.getVideoTracks()[0];
|
|
4502
4516
|
localStream.addTrack(track);
|
|
4503
|
-
this.
|
|
4517
|
+
this._monitorVideoTrack(track);
|
|
4504
4518
|
this._emit(EVENTS.LOCAL_STREAM_TRACK_ADDED, {
|
|
4505
4519
|
streamId: localStream.id,
|
|
4506
4520
|
tracks: [track],
|
|
@@ -5727,20 +5741,16 @@ class VegaRtcManager {
|
|
|
5727
5741
|
}
|
|
5728
5742
|
}
|
|
5729
5743
|
replaceTrack(oldTrack, track) {
|
|
5730
|
-
if (oldTrack && oldTrack.kind === "audio") {
|
|
5731
|
-
this._stopMonitoringAudioTrack(oldTrack);
|
|
5732
|
-
}
|
|
5733
|
-
if (oldTrack && oldTrack.kind === "video" && !track.replacement) {
|
|
5734
|
-
this._stopMonitoringVideoTrack(oldTrack);
|
|
5735
|
-
}
|
|
5736
5744
|
if (track.kind === "audio") {
|
|
5737
|
-
|
|
5745
|
+
if (!track.effectTrack) {
|
|
5746
|
+
this._monitorAudioTrack(track);
|
|
5747
|
+
}
|
|
5738
5748
|
this._micTrack = track;
|
|
5739
5749
|
this._replaceMicTrack();
|
|
5740
5750
|
}
|
|
5741
5751
|
if (track.kind === "video") {
|
|
5742
|
-
if (!track.
|
|
5743
|
-
this.
|
|
5752
|
+
if (!track.effectTrack) {
|
|
5753
|
+
this._monitorVideoTrack(track);
|
|
5744
5754
|
}
|
|
5745
5755
|
this._webcamTrack = track;
|
|
5746
5756
|
this._replaceWebcamTrack();
|
|
@@ -5764,7 +5774,7 @@ class VegaRtcManager {
|
|
|
5764
5774
|
(_b = (_a = this._micAnalyserDebugger) === null || _a === void 0 ? void 0 : _a.onScoreUpdated) === null || _b === void 0 ? void 0 : _b.call(_a, data);
|
|
5765
5775
|
this._sendMicScore(this._micPaused ? 0 : data.out);
|
|
5766
5776
|
}
|
|
5767
|
-
addNewStream(streamId, stream, audioPaused, videoPaused) {
|
|
5777
|
+
addNewStream(streamId, stream, audioPaused, videoPaused, beforeEffectTracks = []) {
|
|
5768
5778
|
if (streamId === "0") {
|
|
5769
5779
|
this._micPaused = audioPaused;
|
|
5770
5780
|
this._webcamPaused = videoPaused;
|
|
@@ -5772,14 +5782,24 @@ class VegaRtcManager {
|
|
|
5772
5782
|
const audioTrack = stream.getAudioTracks()[0];
|
|
5773
5783
|
if (videoTrack) {
|
|
5774
5784
|
this._sendWebcam(videoTrack);
|
|
5775
|
-
if (!videoTrack.
|
|
5776
|
-
this.
|
|
5785
|
+
if (!videoTrack.effectTrack) {
|
|
5786
|
+
this._monitorVideoTrack(videoTrack);
|
|
5787
|
+
}
|
|
5788
|
+
const beforeEffectTrack = beforeEffectTracks.find(t => t.kind === "video");
|
|
5789
|
+
if (beforeEffectTrack) {
|
|
5790
|
+
this._monitorVideoTrack(beforeEffectTrack);
|
|
5777
5791
|
}
|
|
5778
5792
|
}
|
|
5779
5793
|
if (audioTrack) {
|
|
5780
5794
|
this._sendMic(audioTrack);
|
|
5781
5795
|
this._syncMicAnalyser();
|
|
5782
|
-
|
|
5796
|
+
if (!audioTrack.effectTrack) {
|
|
5797
|
+
this._monitorAudioTrack(audioTrack);
|
|
5798
|
+
}
|
|
5799
|
+
const beforeEffectTrack = beforeEffectTracks.find(t => t.kind === "audio");
|
|
5800
|
+
if (beforeEffectTrack) {
|
|
5801
|
+
this._monitorAudioTrack(beforeEffectTrack);
|
|
5802
|
+
}
|
|
5783
5803
|
}
|
|
5784
5804
|
if (this._localStreamDeregisterFunction) {
|
|
5785
5805
|
this._localStreamDeregisterFunction();
|
|
@@ -5867,7 +5887,7 @@ class VegaRtcManager {
|
|
|
5867
5887
|
navigator.mediaDevices.getUserMedia({ video: constraints }).then((stream) => {
|
|
5868
5888
|
const track = stream.getVideoTracks()[0];
|
|
5869
5889
|
localStream.addTrack(track);
|
|
5870
|
-
this.
|
|
5890
|
+
this._monitorVideoTrack(track);
|
|
5871
5891
|
this._emitToPWA(EVENTS.LOCAL_STREAM_TRACK_ADDED, {
|
|
5872
5892
|
streamId: localStream.id,
|
|
5873
5893
|
tracks: [track],
|
|
@@ -5964,17 +5984,21 @@ class VegaRtcManager {
|
|
|
5964
5984
|
rtcStats.server.connect();
|
|
5965
5985
|
}
|
|
5966
5986
|
}
|
|
5967
|
-
|
|
5987
|
+
_monitorAudioTrack(track) {
|
|
5988
|
+
var _a, _b;
|
|
5989
|
+
if (((_a = this._audioTrackBeingMonitored) === null || _a === void 0 ? void 0 : _a.id) === track.id)
|
|
5990
|
+
return;
|
|
5991
|
+
(_b = this._audioTrackBeingMonitored) === null || _b === void 0 ? void 0 : _b.removeEventListener("ended", this._audioTrackOnEnded);
|
|
5968
5992
|
track.addEventListener("ended", this._audioTrackOnEnded);
|
|
5993
|
+
this._audioTrackBeingMonitored = track;
|
|
5969
5994
|
}
|
|
5970
|
-
|
|
5971
|
-
|
|
5972
|
-
|
|
5973
|
-
|
|
5995
|
+
_monitorVideoTrack(track) {
|
|
5996
|
+
var _a, _b;
|
|
5997
|
+
if (((_a = this._videoTrackBeingMonitored) === null || _a === void 0 ? void 0 : _a.id) === track.id)
|
|
5998
|
+
return;
|
|
5999
|
+
(_b = this._videoTrackBeingMonitored) === null || _b === void 0 ? void 0 : _b.removeEventListener("ended", this._videoTrackOnEnded);
|
|
5974
6000
|
track.addEventListener("ended", this._videoTrackOnEnded);
|
|
5975
|
-
|
|
5976
|
-
_stopMonitoringVideoTrack(track) {
|
|
5977
|
-
track.removeEventListener("ended", this._videoTrackOnEnded);
|
|
6001
|
+
this._videoTrackBeingMonitored = track;
|
|
5978
6002
|
}
|
|
5979
6003
|
_onMessage(message) {
|
|
5980
6004
|
return __awaiter(this, void 0, void 0, function* () {
|
package/dist/index.d.cts
CHANGED
|
@@ -264,7 +264,7 @@ type GetDeviceDataResult = {
|
|
|
264
264
|
};
|
|
265
265
|
};
|
|
266
266
|
interface CustomMediaStreamTrack extends MediaStreamTrack {
|
|
267
|
-
|
|
267
|
+
effectTrack?: boolean;
|
|
268
268
|
}
|
|
269
269
|
|
|
270
270
|
declare function getMediaConstraints({ disableAEC, disableAGC, hd, lax, lowDataMode, preferredDeviceIds, resolution, simulcast, widescreen, }: GetMediaConstraintsOptions): any;
|
|
@@ -343,6 +343,8 @@ declare class P2pRtcManager implements RtcManager {
|
|
|
343
343
|
_lastReverseDirectionAttemptByClientId: any;
|
|
344
344
|
_stoppedVideoTrack: any;
|
|
345
345
|
icePublicIPGatheringTimeoutID: any;
|
|
346
|
+
_videoTrackBeingMonitored?: CustomMediaStreamTrack;
|
|
347
|
+
_audioTrackBeingMonitored?: CustomMediaStreamTrack;
|
|
346
348
|
constructor({ selfId, room, emitter, serverSocket, webrtcProvider, features, }: {
|
|
347
349
|
selfId: any;
|
|
348
350
|
room: any;
|
|
@@ -359,8 +361,8 @@ declare class P2pRtcManager implements RtcManager {
|
|
|
359
361
|
}): boolean;
|
|
360
362
|
supportsScreenShareAudio(): boolean;
|
|
361
363
|
maybeRestrictRelayBandwidth(session: any): void;
|
|
362
|
-
addNewStream(streamId: string, stream: MediaStream): void;
|
|
363
|
-
replaceTrack(oldTrack: CustomMediaStreamTrack, newTrack: CustomMediaStreamTrack): Promise<any[]>;
|
|
364
|
+
addNewStream(streamId: string, stream: MediaStream, audioPaused: boolean, videoPaused: boolean, beforeEffectTracks?: CustomMediaStreamTrack[]): void;
|
|
365
|
+
replaceTrack(oldTrack: CustomMediaStreamTrack | null, newTrack: CustomMediaStreamTrack): Promise<any[]>;
|
|
364
366
|
accept({ clientId, shouldAddLocalVideo }: {
|
|
365
367
|
clientId: string;
|
|
366
368
|
shouldAddLocalVideo?: boolean;
|
|
@@ -414,10 +416,8 @@ declare class P2pRtcManager implements RtcManager {
|
|
|
414
416
|
_removeLocalStream(streamId: string): void;
|
|
415
417
|
_updateAndScheduleMediaServersRefresh({ iceServers, sfuServer, mediaserverConfigTtlSeconds }: any): void;
|
|
416
418
|
_clearMediaServersRefresh(): void;
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
_startMonitoringVideoTrack(track: CustomMediaStreamTrack): void;
|
|
420
|
-
_stopMonitoringVideoTrack(track: CustomMediaStreamTrack): void;
|
|
419
|
+
_monitorAudioTrack(track: any): void;
|
|
420
|
+
_monitorVideoTrack(track: CustomMediaStreamTrack): void;
|
|
421
421
|
_connect(clientId: string): Promise<any>;
|
|
422
422
|
_maybeRestartIce(clientId: string, session: any): void;
|
|
423
423
|
_setCodecPreferences(pc: any, vp9On: any, av1On: any, redOn: any): void;
|
|
@@ -705,6 +705,13 @@ interface SpotlightRemovedEvent {
|
|
|
705
705
|
streamId: string;
|
|
706
706
|
requestedByClientId: string;
|
|
707
707
|
}
|
|
708
|
+
interface LiveTranscriptionStartedEvent {
|
|
709
|
+
startedAt: string;
|
|
710
|
+
transcriptionId: string;
|
|
711
|
+
}
|
|
712
|
+
interface LiveTranscriptionStoppedEvent {
|
|
713
|
+
transcriptionId: string;
|
|
714
|
+
}
|
|
708
715
|
interface SignalEvents {
|
|
709
716
|
audio_enabled: AudioEnabledEvent;
|
|
710
717
|
audio_enable_requested: AudioEnableRequestedEvent;
|
|
@@ -732,6 +739,8 @@ interface SignalEvents {
|
|
|
732
739
|
spotlight_removed: SpotlightRemovedEvent;
|
|
733
740
|
streaming_stopped: void;
|
|
734
741
|
video_enabled: VideoEnabledEvent;
|
|
742
|
+
live_transcription_started: LiveTranscriptionStartedEvent;
|
|
743
|
+
live_transcription_stopped: LiveTranscriptionStoppedEvent;
|
|
735
744
|
}
|
|
736
745
|
interface IdentifyDeviceRequest {
|
|
737
746
|
deviceCredentials: Credentials;
|
|
@@ -1110,6 +1119,8 @@ declare class VegaRtcManager implements RtcManager {
|
|
|
1110
1119
|
_iceServers: any;
|
|
1111
1120
|
_sfuServer: any;
|
|
1112
1121
|
_mediaserverConfigTtlSeconds: any;
|
|
1122
|
+
_videoTrackBeingMonitored?: CustomMediaStreamTrack;
|
|
1123
|
+
_audioTrackBeingMonitored?: CustomMediaStreamTrack;
|
|
1113
1124
|
constructor({ selfId, room, emitter, serverSocket, webrtcProvider, features, eventClaim, deviceHandlerFactory, }: {
|
|
1114
1125
|
selfId: any;
|
|
1115
1126
|
room: any;
|
|
@@ -1165,7 +1176,7 @@ declare class VegaRtcManager implements RtcManager {
|
|
|
1165
1176
|
replaceTrack(oldTrack: CustomMediaStreamTrack | null, track: CustomMediaStreamTrack): void;
|
|
1166
1177
|
removeStream(streamId: string, _stream: MediaStream, requestedByClientId: string): void;
|
|
1167
1178
|
_onMicAnalyserScoreUpdated(data: any): void;
|
|
1168
|
-
addNewStream(streamId: string, stream: MediaStream, audioPaused: boolean, videoPaused: boolean): void;
|
|
1179
|
+
addNewStream(streamId: string, stream: MediaStream, audioPaused: boolean, videoPaused: boolean, beforeEffectTracks?: CustomMediaStreamTrack[]): void;
|
|
1169
1180
|
_syncMicAnalyser(): void;
|
|
1170
1181
|
stopOrResumeAudio(stream: MediaStream, enabled: boolean): void;
|
|
1171
1182
|
_handleStopOrResumeVideo({ enable, track }: {
|
|
@@ -1188,10 +1199,8 @@ declare class VegaRtcManager implements RtcManager {
|
|
|
1188
1199
|
sendStatsCustomEvent(eventName: string, data?: any): void;
|
|
1189
1200
|
rtcStatsDisconnect(): void;
|
|
1190
1201
|
rtcStatsReconnect(): void;
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
_startMonitoringVideoTrack(track: CustomMediaStreamTrack): void;
|
|
1194
|
-
_stopMonitoringVideoTrack(track: CustomMediaStreamTrack): void;
|
|
1202
|
+
_monitorAudioTrack(track: any): void;
|
|
1203
|
+
_monitorVideoTrack(track: CustomMediaStreamTrack): void;
|
|
1195
1204
|
_onMessage(message: any): Promise<void>;
|
|
1196
1205
|
_onConsumerReady(options: any): Promise<void>;
|
|
1197
1206
|
_onConsumerClosed({ consumerId, reason }: {
|
|
@@ -1318,6 +1327,8 @@ declare const PROTOCOL_RESPONSES: {
|
|
|
1318
1327
|
USER_NOTIFIED: string;
|
|
1319
1328
|
VIDEO_ENABLED: string;
|
|
1320
1329
|
CLIENT_UNABLE_TO_JOIN: string;
|
|
1330
|
+
LIVE_TRANSCRIPTION_STARTED: string;
|
|
1331
|
+
LIVE_TRANSCRIPTION_STOPPED: string;
|
|
1321
1332
|
};
|
|
1322
1333
|
declare const PROTOCOL_ERRORS: {
|
|
1323
1334
|
CANNOT_INVITE_YOURSELF: string;
|
|
@@ -1394,4 +1405,4 @@ declare class RtcStream {
|
|
|
1394
1405
|
static getTypeFromId(id: string): string;
|
|
1395
1406
|
}
|
|
1396
1407
|
|
|
1397
|
-
export { type AddSpotlightRequest, type AudioEnableRequest, type AudioEnableRequestedEvent, type AudioEnabledEvent, BandwidthTester, type ChatMessage, type ClientKickedEvent, type ClientLeftEvent, type ClientMetadataPayload, type ClientMetadataReceivedEvent, type ClientRole, type CloudRecordingStartedEvent, type Credentials, type CustomMediaStreamTrack, EVENTS, type GetConstraintsOptions, type GetDeviceDataResult, type GetMediaConstraintsOptions, type GetStreamOptions, type GetStreamResult, type GetUpdatedDevicesResult, type IdentifyDeviceRequest, type JoinRoomRequest, KNOCK_MESSAGES, KalmanFilter, type KnockAcceptedEvent, type KnockRejectedEvent, type KnockRoomRequest, type KnockerLeftEvent, Logger, MAXIMUM_TURN_BANDWIDTH, MAXIMUM_TURN_BANDWIDTH_UNLIMITED, MEDIA_JITTER_BUFFER_TARGET, type NewClientEvent, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, type RemoveSpotlightRequest, type RoleName, type RoomJoinedEvent, type RoomKnockedEvent, type RoomLockedEvent, type RoomSessionEndedEvent, type RtcClientConnectionStatusChangedPayload, RtcEventNames, type RtcEvents, type RtcLocalStreamTrackAddedPayload, type RtcLocalStreamTrackRemovedPayload, type RtcManager, type RtcManagerCreatedPayload, RtcManagerDispatcher, RtcStream, type RtcStreamAddedPayload, STREAM_TYPES, type ScreenshareStartedEvent, type ScreenshareStoppedEvent, type SendClientMetadataRequest, ServerSocket, Session, SfuV2Parser, type SignalClient, type SignalEvents, type SignalKnocker, type SignalRequests, type SocketConf, type SocketManager, type Spotlight, type SpotlightAddedEvent, type SpotlightRemovedEvent, type StatsMonitorOptions, type StatsMonitorState, TYPES, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, type VideoEnabledEvent, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, changeMediaDirection, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, detectMicrophoneNotWorking, enumerate, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getHandler, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getOptimalBitrate, getPeerConnectionIndex, getStats, getStream, getStream2, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, isRelayed, maybeRejectNoH264, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceSSRCs, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, variance };
|
|
1408
|
+
export { type AddSpotlightRequest, type AudioEnableRequest, type AudioEnableRequestedEvent, type AudioEnabledEvent, BandwidthTester, type ChatMessage, type ClientKickedEvent, type ClientLeftEvent, type ClientMetadataPayload, type ClientMetadataReceivedEvent, type ClientRole, type CloudRecordingStartedEvent, type Credentials, type CustomMediaStreamTrack, EVENTS, type GetConstraintsOptions, type GetDeviceDataResult, type GetMediaConstraintsOptions, type GetStreamOptions, type GetStreamResult, type GetUpdatedDevicesResult, type IdentifyDeviceRequest, type JoinRoomRequest, KNOCK_MESSAGES, KalmanFilter, type KnockAcceptedEvent, type KnockRejectedEvent, type KnockRoomRequest, type KnockerLeftEvent, type LiveTranscriptionStartedEvent, type LiveTranscriptionStoppedEvent, Logger, MAXIMUM_TURN_BANDWIDTH, MAXIMUM_TURN_BANDWIDTH_UNLIMITED, MEDIA_JITTER_BUFFER_TARGET, type NewClientEvent, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, type RemoveSpotlightRequest, type RoleName, type RoomJoinedEvent, type RoomKnockedEvent, type RoomLockedEvent, type RoomSessionEndedEvent, type RtcClientConnectionStatusChangedPayload, RtcEventNames, type RtcEvents, type RtcLocalStreamTrackAddedPayload, type RtcLocalStreamTrackRemovedPayload, type RtcManager, type RtcManagerCreatedPayload, RtcManagerDispatcher, RtcStream, type RtcStreamAddedPayload, STREAM_TYPES, type ScreenshareStartedEvent, type ScreenshareStoppedEvent, type SendClientMetadataRequest, ServerSocket, Session, SfuV2Parser, type SignalClient, type SignalEvents, type SignalKnocker, type SignalRequests, type SocketConf, type SocketManager, type Spotlight, type SpotlightAddedEvent, type SpotlightRemovedEvent, type StatsMonitorOptions, type StatsMonitorState, TYPES, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, type VideoEnabledEvent, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, changeMediaDirection, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, detectMicrophoneNotWorking, enumerate, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getHandler, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getOptimalBitrate, getPeerConnectionIndex, getStats, getStream, getStream2, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, isRelayed, maybeRejectNoH264, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceSSRCs, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, variance };
|
package/dist/index.d.mts
CHANGED
|
@@ -264,7 +264,7 @@ type GetDeviceDataResult = {
|
|
|
264
264
|
};
|
|
265
265
|
};
|
|
266
266
|
interface CustomMediaStreamTrack extends MediaStreamTrack {
|
|
267
|
-
|
|
267
|
+
effectTrack?: boolean;
|
|
268
268
|
}
|
|
269
269
|
|
|
270
270
|
declare function getMediaConstraints({ disableAEC, disableAGC, hd, lax, lowDataMode, preferredDeviceIds, resolution, simulcast, widescreen, }: GetMediaConstraintsOptions): any;
|
|
@@ -343,6 +343,8 @@ declare class P2pRtcManager implements RtcManager {
|
|
|
343
343
|
_lastReverseDirectionAttemptByClientId: any;
|
|
344
344
|
_stoppedVideoTrack: any;
|
|
345
345
|
icePublicIPGatheringTimeoutID: any;
|
|
346
|
+
_videoTrackBeingMonitored?: CustomMediaStreamTrack;
|
|
347
|
+
_audioTrackBeingMonitored?: CustomMediaStreamTrack;
|
|
346
348
|
constructor({ selfId, room, emitter, serverSocket, webrtcProvider, features, }: {
|
|
347
349
|
selfId: any;
|
|
348
350
|
room: any;
|
|
@@ -359,8 +361,8 @@ declare class P2pRtcManager implements RtcManager {
|
|
|
359
361
|
}): boolean;
|
|
360
362
|
supportsScreenShareAudio(): boolean;
|
|
361
363
|
maybeRestrictRelayBandwidth(session: any): void;
|
|
362
|
-
addNewStream(streamId: string, stream: MediaStream): void;
|
|
363
|
-
replaceTrack(oldTrack: CustomMediaStreamTrack, newTrack: CustomMediaStreamTrack): Promise<any[]>;
|
|
364
|
+
addNewStream(streamId: string, stream: MediaStream, audioPaused: boolean, videoPaused: boolean, beforeEffectTracks?: CustomMediaStreamTrack[]): void;
|
|
365
|
+
replaceTrack(oldTrack: CustomMediaStreamTrack | null, newTrack: CustomMediaStreamTrack): Promise<any[]>;
|
|
364
366
|
accept({ clientId, shouldAddLocalVideo }: {
|
|
365
367
|
clientId: string;
|
|
366
368
|
shouldAddLocalVideo?: boolean;
|
|
@@ -414,10 +416,8 @@ declare class P2pRtcManager implements RtcManager {
|
|
|
414
416
|
_removeLocalStream(streamId: string): void;
|
|
415
417
|
_updateAndScheduleMediaServersRefresh({ iceServers, sfuServer, mediaserverConfigTtlSeconds }: any): void;
|
|
416
418
|
_clearMediaServersRefresh(): void;
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
_startMonitoringVideoTrack(track: CustomMediaStreamTrack): void;
|
|
420
|
-
_stopMonitoringVideoTrack(track: CustomMediaStreamTrack): void;
|
|
419
|
+
_monitorAudioTrack(track: any): void;
|
|
420
|
+
_monitorVideoTrack(track: CustomMediaStreamTrack): void;
|
|
421
421
|
_connect(clientId: string): Promise<any>;
|
|
422
422
|
_maybeRestartIce(clientId: string, session: any): void;
|
|
423
423
|
_setCodecPreferences(pc: any, vp9On: any, av1On: any, redOn: any): void;
|
|
@@ -705,6 +705,13 @@ interface SpotlightRemovedEvent {
|
|
|
705
705
|
streamId: string;
|
|
706
706
|
requestedByClientId: string;
|
|
707
707
|
}
|
|
708
|
+
interface LiveTranscriptionStartedEvent {
|
|
709
|
+
startedAt: string;
|
|
710
|
+
transcriptionId: string;
|
|
711
|
+
}
|
|
712
|
+
interface LiveTranscriptionStoppedEvent {
|
|
713
|
+
transcriptionId: string;
|
|
714
|
+
}
|
|
708
715
|
interface SignalEvents {
|
|
709
716
|
audio_enabled: AudioEnabledEvent;
|
|
710
717
|
audio_enable_requested: AudioEnableRequestedEvent;
|
|
@@ -732,6 +739,8 @@ interface SignalEvents {
|
|
|
732
739
|
spotlight_removed: SpotlightRemovedEvent;
|
|
733
740
|
streaming_stopped: void;
|
|
734
741
|
video_enabled: VideoEnabledEvent;
|
|
742
|
+
live_transcription_started: LiveTranscriptionStartedEvent;
|
|
743
|
+
live_transcription_stopped: LiveTranscriptionStoppedEvent;
|
|
735
744
|
}
|
|
736
745
|
interface IdentifyDeviceRequest {
|
|
737
746
|
deviceCredentials: Credentials;
|
|
@@ -1110,6 +1119,8 @@ declare class VegaRtcManager implements RtcManager {
|
|
|
1110
1119
|
_iceServers: any;
|
|
1111
1120
|
_sfuServer: any;
|
|
1112
1121
|
_mediaserverConfigTtlSeconds: any;
|
|
1122
|
+
_videoTrackBeingMonitored?: CustomMediaStreamTrack;
|
|
1123
|
+
_audioTrackBeingMonitored?: CustomMediaStreamTrack;
|
|
1113
1124
|
constructor({ selfId, room, emitter, serverSocket, webrtcProvider, features, eventClaim, deviceHandlerFactory, }: {
|
|
1114
1125
|
selfId: any;
|
|
1115
1126
|
room: any;
|
|
@@ -1165,7 +1176,7 @@ declare class VegaRtcManager implements RtcManager {
|
|
|
1165
1176
|
replaceTrack(oldTrack: CustomMediaStreamTrack | null, track: CustomMediaStreamTrack): void;
|
|
1166
1177
|
removeStream(streamId: string, _stream: MediaStream, requestedByClientId: string): void;
|
|
1167
1178
|
_onMicAnalyserScoreUpdated(data: any): void;
|
|
1168
|
-
addNewStream(streamId: string, stream: MediaStream, audioPaused: boolean, videoPaused: boolean): void;
|
|
1179
|
+
addNewStream(streamId: string, stream: MediaStream, audioPaused: boolean, videoPaused: boolean, beforeEffectTracks?: CustomMediaStreamTrack[]): void;
|
|
1169
1180
|
_syncMicAnalyser(): void;
|
|
1170
1181
|
stopOrResumeAudio(stream: MediaStream, enabled: boolean): void;
|
|
1171
1182
|
_handleStopOrResumeVideo({ enable, track }: {
|
|
@@ -1188,10 +1199,8 @@ declare class VegaRtcManager implements RtcManager {
|
|
|
1188
1199
|
sendStatsCustomEvent(eventName: string, data?: any): void;
|
|
1189
1200
|
rtcStatsDisconnect(): void;
|
|
1190
1201
|
rtcStatsReconnect(): void;
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
_startMonitoringVideoTrack(track: CustomMediaStreamTrack): void;
|
|
1194
|
-
_stopMonitoringVideoTrack(track: CustomMediaStreamTrack): void;
|
|
1202
|
+
_monitorAudioTrack(track: any): void;
|
|
1203
|
+
_monitorVideoTrack(track: CustomMediaStreamTrack): void;
|
|
1195
1204
|
_onMessage(message: any): Promise<void>;
|
|
1196
1205
|
_onConsumerReady(options: any): Promise<void>;
|
|
1197
1206
|
_onConsumerClosed({ consumerId, reason }: {
|
|
@@ -1318,6 +1327,8 @@ declare const PROTOCOL_RESPONSES: {
|
|
|
1318
1327
|
USER_NOTIFIED: string;
|
|
1319
1328
|
VIDEO_ENABLED: string;
|
|
1320
1329
|
CLIENT_UNABLE_TO_JOIN: string;
|
|
1330
|
+
LIVE_TRANSCRIPTION_STARTED: string;
|
|
1331
|
+
LIVE_TRANSCRIPTION_STOPPED: string;
|
|
1321
1332
|
};
|
|
1322
1333
|
declare const PROTOCOL_ERRORS: {
|
|
1323
1334
|
CANNOT_INVITE_YOURSELF: string;
|
|
@@ -1394,4 +1405,4 @@ declare class RtcStream {
|
|
|
1394
1405
|
static getTypeFromId(id: string): string;
|
|
1395
1406
|
}
|
|
1396
1407
|
|
|
1397
|
-
export { type AddSpotlightRequest, type AudioEnableRequest, type AudioEnableRequestedEvent, type AudioEnabledEvent, BandwidthTester, type ChatMessage, type ClientKickedEvent, type ClientLeftEvent, type ClientMetadataPayload, type ClientMetadataReceivedEvent, type ClientRole, type CloudRecordingStartedEvent, type Credentials, type CustomMediaStreamTrack, EVENTS, type GetConstraintsOptions, type GetDeviceDataResult, type GetMediaConstraintsOptions, type GetStreamOptions, type GetStreamResult, type GetUpdatedDevicesResult, type IdentifyDeviceRequest, type JoinRoomRequest, KNOCK_MESSAGES, KalmanFilter, type KnockAcceptedEvent, type KnockRejectedEvent, type KnockRoomRequest, type KnockerLeftEvent, Logger, MAXIMUM_TURN_BANDWIDTH, MAXIMUM_TURN_BANDWIDTH_UNLIMITED, MEDIA_JITTER_BUFFER_TARGET, type NewClientEvent, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, type RemoveSpotlightRequest, type RoleName, type RoomJoinedEvent, type RoomKnockedEvent, type RoomLockedEvent, type RoomSessionEndedEvent, type RtcClientConnectionStatusChangedPayload, RtcEventNames, type RtcEvents, type RtcLocalStreamTrackAddedPayload, type RtcLocalStreamTrackRemovedPayload, type RtcManager, type RtcManagerCreatedPayload, RtcManagerDispatcher, RtcStream, type RtcStreamAddedPayload, STREAM_TYPES, type ScreenshareStartedEvent, type ScreenshareStoppedEvent, type SendClientMetadataRequest, ServerSocket, Session, SfuV2Parser, type SignalClient, type SignalEvents, type SignalKnocker, type SignalRequests, type SocketConf, type SocketManager, type Spotlight, type SpotlightAddedEvent, type SpotlightRemovedEvent, type StatsMonitorOptions, type StatsMonitorState, TYPES, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, type VideoEnabledEvent, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, changeMediaDirection, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, detectMicrophoneNotWorking, enumerate, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getHandler, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getOptimalBitrate, getPeerConnectionIndex, getStats, getStream, getStream2, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, isRelayed, maybeRejectNoH264, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceSSRCs, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, variance };
|
|
1408
|
+
export { type AddSpotlightRequest, type AudioEnableRequest, type AudioEnableRequestedEvent, type AudioEnabledEvent, BandwidthTester, type ChatMessage, type ClientKickedEvent, type ClientLeftEvent, type ClientMetadataPayload, type ClientMetadataReceivedEvent, type ClientRole, type CloudRecordingStartedEvent, type Credentials, type CustomMediaStreamTrack, EVENTS, type GetConstraintsOptions, type GetDeviceDataResult, type GetMediaConstraintsOptions, type GetStreamOptions, type GetStreamResult, type GetUpdatedDevicesResult, type IdentifyDeviceRequest, type JoinRoomRequest, KNOCK_MESSAGES, KalmanFilter, type KnockAcceptedEvent, type KnockRejectedEvent, type KnockRoomRequest, type KnockerLeftEvent, type LiveTranscriptionStartedEvent, type LiveTranscriptionStoppedEvent, Logger, MAXIMUM_TURN_BANDWIDTH, MAXIMUM_TURN_BANDWIDTH_UNLIMITED, MEDIA_JITTER_BUFFER_TARGET, type NewClientEvent, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, type RemoveSpotlightRequest, type RoleName, type RoomJoinedEvent, type RoomKnockedEvent, type RoomLockedEvent, type RoomSessionEndedEvent, type RtcClientConnectionStatusChangedPayload, RtcEventNames, type RtcEvents, type RtcLocalStreamTrackAddedPayload, type RtcLocalStreamTrackRemovedPayload, type RtcManager, type RtcManagerCreatedPayload, RtcManagerDispatcher, RtcStream, type RtcStreamAddedPayload, STREAM_TYPES, type ScreenshareStartedEvent, type ScreenshareStoppedEvent, type SendClientMetadataRequest, ServerSocket, Session, SfuV2Parser, type SignalClient, type SignalEvents, type SignalKnocker, type SignalRequests, type SocketConf, type SocketManager, type Spotlight, type SpotlightAddedEvent, type SpotlightRemovedEvent, type StatsMonitorOptions, type StatsMonitorState, TYPES, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, type VideoEnabledEvent, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, changeMediaDirection, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, detectMicrophoneNotWorking, enumerate, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getHandler, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getOptimalBitrate, getPeerConnectionIndex, getStats, getStream, getStream2, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, isRelayed, maybeRejectNoH264, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceSSRCs, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, variance };
|
package/dist/index.d.ts
CHANGED
|
@@ -264,7 +264,7 @@ type GetDeviceDataResult = {
|
|
|
264
264
|
};
|
|
265
265
|
};
|
|
266
266
|
interface CustomMediaStreamTrack extends MediaStreamTrack {
|
|
267
|
-
|
|
267
|
+
effectTrack?: boolean;
|
|
268
268
|
}
|
|
269
269
|
|
|
270
270
|
declare function getMediaConstraints({ disableAEC, disableAGC, hd, lax, lowDataMode, preferredDeviceIds, resolution, simulcast, widescreen, }: GetMediaConstraintsOptions): any;
|
|
@@ -343,6 +343,8 @@ declare class P2pRtcManager implements RtcManager {
|
|
|
343
343
|
_lastReverseDirectionAttemptByClientId: any;
|
|
344
344
|
_stoppedVideoTrack: any;
|
|
345
345
|
icePublicIPGatheringTimeoutID: any;
|
|
346
|
+
_videoTrackBeingMonitored?: CustomMediaStreamTrack;
|
|
347
|
+
_audioTrackBeingMonitored?: CustomMediaStreamTrack;
|
|
346
348
|
constructor({ selfId, room, emitter, serverSocket, webrtcProvider, features, }: {
|
|
347
349
|
selfId: any;
|
|
348
350
|
room: any;
|
|
@@ -359,8 +361,8 @@ declare class P2pRtcManager implements RtcManager {
|
|
|
359
361
|
}): boolean;
|
|
360
362
|
supportsScreenShareAudio(): boolean;
|
|
361
363
|
maybeRestrictRelayBandwidth(session: any): void;
|
|
362
|
-
addNewStream(streamId: string, stream: MediaStream): void;
|
|
363
|
-
replaceTrack(oldTrack: CustomMediaStreamTrack, newTrack: CustomMediaStreamTrack): Promise<any[]>;
|
|
364
|
+
addNewStream(streamId: string, stream: MediaStream, audioPaused: boolean, videoPaused: boolean, beforeEffectTracks?: CustomMediaStreamTrack[]): void;
|
|
365
|
+
replaceTrack(oldTrack: CustomMediaStreamTrack | null, newTrack: CustomMediaStreamTrack): Promise<any[]>;
|
|
364
366
|
accept({ clientId, shouldAddLocalVideo }: {
|
|
365
367
|
clientId: string;
|
|
366
368
|
shouldAddLocalVideo?: boolean;
|
|
@@ -414,10 +416,8 @@ declare class P2pRtcManager implements RtcManager {
|
|
|
414
416
|
_removeLocalStream(streamId: string): void;
|
|
415
417
|
_updateAndScheduleMediaServersRefresh({ iceServers, sfuServer, mediaserverConfigTtlSeconds }: any): void;
|
|
416
418
|
_clearMediaServersRefresh(): void;
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
_startMonitoringVideoTrack(track: CustomMediaStreamTrack): void;
|
|
420
|
-
_stopMonitoringVideoTrack(track: CustomMediaStreamTrack): void;
|
|
419
|
+
_monitorAudioTrack(track: any): void;
|
|
420
|
+
_monitorVideoTrack(track: CustomMediaStreamTrack): void;
|
|
421
421
|
_connect(clientId: string): Promise<any>;
|
|
422
422
|
_maybeRestartIce(clientId: string, session: any): void;
|
|
423
423
|
_setCodecPreferences(pc: any, vp9On: any, av1On: any, redOn: any): void;
|
|
@@ -705,6 +705,13 @@ interface SpotlightRemovedEvent {
|
|
|
705
705
|
streamId: string;
|
|
706
706
|
requestedByClientId: string;
|
|
707
707
|
}
|
|
708
|
+
interface LiveTranscriptionStartedEvent {
|
|
709
|
+
startedAt: string;
|
|
710
|
+
transcriptionId: string;
|
|
711
|
+
}
|
|
712
|
+
interface LiveTranscriptionStoppedEvent {
|
|
713
|
+
transcriptionId: string;
|
|
714
|
+
}
|
|
708
715
|
interface SignalEvents {
|
|
709
716
|
audio_enabled: AudioEnabledEvent;
|
|
710
717
|
audio_enable_requested: AudioEnableRequestedEvent;
|
|
@@ -732,6 +739,8 @@ interface SignalEvents {
|
|
|
732
739
|
spotlight_removed: SpotlightRemovedEvent;
|
|
733
740
|
streaming_stopped: void;
|
|
734
741
|
video_enabled: VideoEnabledEvent;
|
|
742
|
+
live_transcription_started: LiveTranscriptionStartedEvent;
|
|
743
|
+
live_transcription_stopped: LiveTranscriptionStoppedEvent;
|
|
735
744
|
}
|
|
736
745
|
interface IdentifyDeviceRequest {
|
|
737
746
|
deviceCredentials: Credentials;
|
|
@@ -1110,6 +1119,8 @@ declare class VegaRtcManager implements RtcManager {
|
|
|
1110
1119
|
_iceServers: any;
|
|
1111
1120
|
_sfuServer: any;
|
|
1112
1121
|
_mediaserverConfigTtlSeconds: any;
|
|
1122
|
+
_videoTrackBeingMonitored?: CustomMediaStreamTrack;
|
|
1123
|
+
_audioTrackBeingMonitored?: CustomMediaStreamTrack;
|
|
1113
1124
|
constructor({ selfId, room, emitter, serverSocket, webrtcProvider, features, eventClaim, deviceHandlerFactory, }: {
|
|
1114
1125
|
selfId: any;
|
|
1115
1126
|
room: any;
|
|
@@ -1165,7 +1176,7 @@ declare class VegaRtcManager implements RtcManager {
|
|
|
1165
1176
|
replaceTrack(oldTrack: CustomMediaStreamTrack | null, track: CustomMediaStreamTrack): void;
|
|
1166
1177
|
removeStream(streamId: string, _stream: MediaStream, requestedByClientId: string): void;
|
|
1167
1178
|
_onMicAnalyserScoreUpdated(data: any): void;
|
|
1168
|
-
addNewStream(streamId: string, stream: MediaStream, audioPaused: boolean, videoPaused: boolean): void;
|
|
1179
|
+
addNewStream(streamId: string, stream: MediaStream, audioPaused: boolean, videoPaused: boolean, beforeEffectTracks?: CustomMediaStreamTrack[]): void;
|
|
1169
1180
|
_syncMicAnalyser(): void;
|
|
1170
1181
|
stopOrResumeAudio(stream: MediaStream, enabled: boolean): void;
|
|
1171
1182
|
_handleStopOrResumeVideo({ enable, track }: {
|
|
@@ -1188,10 +1199,8 @@ declare class VegaRtcManager implements RtcManager {
|
|
|
1188
1199
|
sendStatsCustomEvent(eventName: string, data?: any): void;
|
|
1189
1200
|
rtcStatsDisconnect(): void;
|
|
1190
1201
|
rtcStatsReconnect(): void;
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
_startMonitoringVideoTrack(track: CustomMediaStreamTrack): void;
|
|
1194
|
-
_stopMonitoringVideoTrack(track: CustomMediaStreamTrack): void;
|
|
1202
|
+
_monitorAudioTrack(track: any): void;
|
|
1203
|
+
_monitorVideoTrack(track: CustomMediaStreamTrack): void;
|
|
1195
1204
|
_onMessage(message: any): Promise<void>;
|
|
1196
1205
|
_onConsumerReady(options: any): Promise<void>;
|
|
1197
1206
|
_onConsumerClosed({ consumerId, reason }: {
|
|
@@ -1318,6 +1327,8 @@ declare const PROTOCOL_RESPONSES: {
|
|
|
1318
1327
|
USER_NOTIFIED: string;
|
|
1319
1328
|
VIDEO_ENABLED: string;
|
|
1320
1329
|
CLIENT_UNABLE_TO_JOIN: string;
|
|
1330
|
+
LIVE_TRANSCRIPTION_STARTED: string;
|
|
1331
|
+
LIVE_TRANSCRIPTION_STOPPED: string;
|
|
1321
1332
|
};
|
|
1322
1333
|
declare const PROTOCOL_ERRORS: {
|
|
1323
1334
|
CANNOT_INVITE_YOURSELF: string;
|
|
@@ -1394,4 +1405,4 @@ declare class RtcStream {
|
|
|
1394
1405
|
static getTypeFromId(id: string): string;
|
|
1395
1406
|
}
|
|
1396
1407
|
|
|
1397
|
-
export { type AddSpotlightRequest, type AudioEnableRequest, type AudioEnableRequestedEvent, type AudioEnabledEvent, BandwidthTester, type ChatMessage, type ClientKickedEvent, type ClientLeftEvent, type ClientMetadataPayload, type ClientMetadataReceivedEvent, type ClientRole, type CloudRecordingStartedEvent, type Credentials, type CustomMediaStreamTrack, EVENTS, type GetConstraintsOptions, type GetDeviceDataResult, type GetMediaConstraintsOptions, type GetStreamOptions, type GetStreamResult, type GetUpdatedDevicesResult, type IdentifyDeviceRequest, type JoinRoomRequest, KNOCK_MESSAGES, KalmanFilter, type KnockAcceptedEvent, type KnockRejectedEvent, type KnockRoomRequest, type KnockerLeftEvent, Logger, MAXIMUM_TURN_BANDWIDTH, MAXIMUM_TURN_BANDWIDTH_UNLIMITED, MEDIA_JITTER_BUFFER_TARGET, type NewClientEvent, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, type RemoveSpotlightRequest, type RoleName, type RoomJoinedEvent, type RoomKnockedEvent, type RoomLockedEvent, type RoomSessionEndedEvent, type RtcClientConnectionStatusChangedPayload, RtcEventNames, type RtcEvents, type RtcLocalStreamTrackAddedPayload, type RtcLocalStreamTrackRemovedPayload, type RtcManager, type RtcManagerCreatedPayload, RtcManagerDispatcher, RtcStream, type RtcStreamAddedPayload, STREAM_TYPES, type ScreenshareStartedEvent, type ScreenshareStoppedEvent, type SendClientMetadataRequest, ServerSocket, Session, SfuV2Parser, type SignalClient, type SignalEvents, type SignalKnocker, type SignalRequests, type SocketConf, type SocketManager, type Spotlight, type SpotlightAddedEvent, type SpotlightRemovedEvent, type StatsMonitorOptions, type StatsMonitorState, TYPES, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, type VideoEnabledEvent, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, changeMediaDirection, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, detectMicrophoneNotWorking, enumerate, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getHandler, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getOptimalBitrate, getPeerConnectionIndex, getStats, getStream, getStream2, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, isRelayed, maybeRejectNoH264, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceSSRCs, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, variance };
|
|
1408
|
+
export { type AddSpotlightRequest, type AudioEnableRequest, type AudioEnableRequestedEvent, type AudioEnabledEvent, BandwidthTester, type ChatMessage, type ClientKickedEvent, type ClientLeftEvent, type ClientMetadataPayload, type ClientMetadataReceivedEvent, type ClientRole, type CloudRecordingStartedEvent, type Credentials, type CustomMediaStreamTrack, EVENTS, type GetConstraintsOptions, type GetDeviceDataResult, type GetMediaConstraintsOptions, type GetStreamOptions, type GetStreamResult, type GetUpdatedDevicesResult, type IdentifyDeviceRequest, type JoinRoomRequest, KNOCK_MESSAGES, KalmanFilter, type KnockAcceptedEvent, type KnockRejectedEvent, type KnockRoomRequest, type KnockerLeftEvent, type LiveTranscriptionStartedEvent, type LiveTranscriptionStoppedEvent, Logger, MAXIMUM_TURN_BANDWIDTH, MAXIMUM_TURN_BANDWIDTH_UNLIMITED, MEDIA_JITTER_BUFFER_TARGET, type NewClientEvent, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, type RemoveSpotlightRequest, type RoleName, type RoomJoinedEvent, type RoomKnockedEvent, type RoomLockedEvent, type RoomSessionEndedEvent, type RtcClientConnectionStatusChangedPayload, RtcEventNames, type RtcEvents, type RtcLocalStreamTrackAddedPayload, type RtcLocalStreamTrackRemovedPayload, type RtcManager, type RtcManagerCreatedPayload, RtcManagerDispatcher, RtcStream, type RtcStreamAddedPayload, STREAM_TYPES, type ScreenshareStartedEvent, type ScreenshareStoppedEvent, type SendClientMetadataRequest, ServerSocket, Session, SfuV2Parser, type SignalClient, type SignalEvents, type SignalKnocker, type SignalRequests, type SocketConf, type SocketManager, type Spotlight, type SpotlightAddedEvent, type SpotlightRemovedEvent, type StatsMonitorOptions, type StatsMonitorState, TYPES, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, type VideoEnabledEvent, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, changeMediaDirection, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, detectMicrophoneNotWorking, enumerate, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getHandler, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getOptimalBitrate, getPeerConnectionIndex, getStats, getStream, getStream2, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, isRelayed, maybeRejectNoH264, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceSSRCs, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, variance };
|
package/dist/index.mjs
CHANGED
|
@@ -3269,6 +3269,8 @@ const PROTOCOL_RESPONSES = {
|
|
|
3269
3269
|
USER_NOTIFIED: "user_notified",
|
|
3270
3270
|
VIDEO_ENABLED: "video_enabled",
|
|
3271
3271
|
CLIENT_UNABLE_TO_JOIN: "client_unable_to_join",
|
|
3272
|
+
LIVE_TRANSCRIPTION_STARTED: "live_transcription_started",
|
|
3273
|
+
LIVE_TRANSCRIPTION_STOPPED: "live_transcription_stopped",
|
|
3272
3274
|
};
|
|
3273
3275
|
const PROTOCOL_ERRORS = {
|
|
3274
3276
|
CANNOT_INVITE_YOURSELF: "cannot_invite_yourself",
|
|
@@ -3527,20 +3529,32 @@ class P2pRtcManager {
|
|
|
3527
3529
|
maybeRestrictRelayBandwidth(session) {
|
|
3528
3530
|
session.maybeRestrictRelayBandwidth();
|
|
3529
3531
|
}
|
|
3530
|
-
addNewStream(streamId, stream) {
|
|
3532
|
+
addNewStream(streamId, stream, audioPaused, videoPaused, beforeEffectTracks = []) {
|
|
3531
3533
|
if (stream === this.localStreams[streamId]) {
|
|
3532
3534
|
return;
|
|
3533
3535
|
}
|
|
3534
3536
|
this._addLocalStream(streamId, stream);
|
|
3535
3537
|
if (streamId === CAMERA_STREAM_ID) {
|
|
3536
3538
|
this._addStreamToPeerConnections(stream);
|
|
3537
|
-
const
|
|
3539
|
+
const audioTrack = stream.getAudioTracks()[0];
|
|
3538
3540
|
const videoTrack = stream.getVideoTracks()[0];
|
|
3539
3541
|
if (audioTrack) {
|
|
3540
|
-
|
|
3542
|
+
if (!audioTrack.effectTrack) {
|
|
3543
|
+
this._monitorAudioTrack(audioTrack);
|
|
3544
|
+
}
|
|
3545
|
+
const beforeEffectTrack = beforeEffectTracks.find((t) => t.kind === "audio");
|
|
3546
|
+
if (beforeEffectTrack) {
|
|
3547
|
+
this._monitorAudioTrack(beforeEffectTrack);
|
|
3548
|
+
}
|
|
3541
3549
|
}
|
|
3542
|
-
if (videoTrack
|
|
3543
|
-
|
|
3550
|
+
if (videoTrack) {
|
|
3551
|
+
if (!videoTrack.effectTrack) {
|
|
3552
|
+
this._monitorVideoTrack(videoTrack);
|
|
3553
|
+
}
|
|
3554
|
+
const beforeEffectTrack = beforeEffectTracks.find((t) => t.kind === "video");
|
|
3555
|
+
if (beforeEffectTrack) {
|
|
3556
|
+
this._monitorVideoTrack(beforeEffectTrack);
|
|
3557
|
+
}
|
|
3544
3558
|
}
|
|
3545
3559
|
if (this._localStreamDeregisterFunction) {
|
|
3546
3560
|
this._localStreamDeregisterFunction();
|
|
@@ -3561,17 +3575,11 @@ class P2pRtcManager {
|
|
|
3561
3575
|
return;
|
|
3562
3576
|
}
|
|
3563
3577
|
replaceTrack(oldTrack, newTrack) {
|
|
3564
|
-
if (
|
|
3565
|
-
this.
|
|
3566
|
-
}
|
|
3567
|
-
if (oldTrack && oldTrack.kind === "video" && !newTrack.replacement) {
|
|
3568
|
-
this._stopMonitoringVideoTrack(oldTrack);
|
|
3578
|
+
if (newTrack.kind === "audio" && !newTrack.effectTrack) {
|
|
3579
|
+
this._monitorAudioTrack(newTrack);
|
|
3569
3580
|
}
|
|
3570
|
-
if (newTrack
|
|
3571
|
-
this.
|
|
3572
|
-
}
|
|
3573
|
-
if (newTrack.kind === "video" && !newTrack.replacement) {
|
|
3574
|
-
this._startMonitoringVideoTrack(newTrack);
|
|
3581
|
+
if (newTrack.kind === "video" && !newTrack.effectTrack) {
|
|
3582
|
+
this._monitorVideoTrack(newTrack);
|
|
3575
3583
|
}
|
|
3576
3584
|
return this._replaceTrackToPeerConnections(oldTrack, newTrack);
|
|
3577
3585
|
}
|
|
@@ -4085,17 +4093,21 @@ class P2pRtcManager {
|
|
|
4085
4093
|
clearTimeout(this._fetchMediaServersTimer);
|
|
4086
4094
|
this._fetchMediaServersTimer = null;
|
|
4087
4095
|
}
|
|
4088
|
-
|
|
4096
|
+
_monitorAudioTrack(track) {
|
|
4097
|
+
var _a, _b;
|
|
4098
|
+
if (((_a = this._audioTrackBeingMonitored) === null || _a === void 0 ? void 0 : _a.id) === track.id)
|
|
4099
|
+
return;
|
|
4100
|
+
(_b = this._audioTrackBeingMonitored) === null || _b === void 0 ? void 0 : _b.removeEventListener("ended", this._audioTrackOnEnded);
|
|
4089
4101
|
track.addEventListener("ended", this._audioTrackOnEnded);
|
|
4102
|
+
this._audioTrackBeingMonitored = track;
|
|
4090
4103
|
}
|
|
4091
|
-
|
|
4092
|
-
|
|
4093
|
-
|
|
4094
|
-
|
|
4104
|
+
_monitorVideoTrack(track) {
|
|
4105
|
+
var _a, _b;
|
|
4106
|
+
if (((_a = this._videoTrackBeingMonitored) === null || _a === void 0 ? void 0 : _a.id) === track.id)
|
|
4107
|
+
return;
|
|
4108
|
+
(_b = this._videoTrackBeingMonitored) === null || _b === void 0 ? void 0 : _b.removeEventListener("ended", this._videoTrackOnEnded);
|
|
4095
4109
|
track.addEventListener("ended", this._videoTrackOnEnded);
|
|
4096
|
-
|
|
4097
|
-
_stopMonitoringVideoTrack(track) {
|
|
4098
|
-
track.removeEventListener("ended", this._videoTrackOnEnded);
|
|
4110
|
+
this._videoTrackBeingMonitored = track;
|
|
4099
4111
|
}
|
|
4100
4112
|
_connect(clientId) {
|
|
4101
4113
|
this.rtcStatsReconnect();
|
|
@@ -4455,7 +4467,9 @@ class P2pRtcManager {
|
|
|
4455
4467
|
return;
|
|
4456
4468
|
}
|
|
4457
4469
|
if (enable === false) {
|
|
4458
|
-
const stopCameraDelay = ((_a = localStream.getVideoTracks().find((t) => !t.enabled)) === null || _a === void 0 ? void 0 : _a.readyState) === "ended"
|
|
4470
|
+
const stopCameraDelay = ((_a = localStream.getVideoTracks().find((t) => !t.enabled)) === null || _a === void 0 ? void 0 : _a.readyState) === "ended"
|
|
4471
|
+
? 0
|
|
4472
|
+
: 5000;
|
|
4459
4473
|
setTimeout(() => {
|
|
4460
4474
|
localStream.getVideoTracks().forEach((track) => {
|
|
4461
4475
|
if (track.enabled === false) {
|
|
@@ -4479,7 +4493,7 @@ class P2pRtcManager {
|
|
|
4479
4493
|
navigator.mediaDevices.getUserMedia({ video: constraints }).then((stream) => {
|
|
4480
4494
|
const track = stream.getVideoTracks()[0];
|
|
4481
4495
|
localStream.addTrack(track);
|
|
4482
|
-
this.
|
|
4496
|
+
this._monitorVideoTrack(track);
|
|
4483
4497
|
this._emit(EVENTS.LOCAL_STREAM_TRACK_ADDED, {
|
|
4484
4498
|
streamId: localStream.id,
|
|
4485
4499
|
tracks: [track],
|
|
@@ -5706,20 +5720,16 @@ class VegaRtcManager {
|
|
|
5706
5720
|
}
|
|
5707
5721
|
}
|
|
5708
5722
|
replaceTrack(oldTrack, track) {
|
|
5709
|
-
if (oldTrack && oldTrack.kind === "audio") {
|
|
5710
|
-
this._stopMonitoringAudioTrack(oldTrack);
|
|
5711
|
-
}
|
|
5712
|
-
if (oldTrack && oldTrack.kind === "video" && !track.replacement) {
|
|
5713
|
-
this._stopMonitoringVideoTrack(oldTrack);
|
|
5714
|
-
}
|
|
5715
5723
|
if (track.kind === "audio") {
|
|
5716
|
-
|
|
5724
|
+
if (!track.effectTrack) {
|
|
5725
|
+
this._monitorAudioTrack(track);
|
|
5726
|
+
}
|
|
5717
5727
|
this._micTrack = track;
|
|
5718
5728
|
this._replaceMicTrack();
|
|
5719
5729
|
}
|
|
5720
5730
|
if (track.kind === "video") {
|
|
5721
|
-
if (!track.
|
|
5722
|
-
this.
|
|
5731
|
+
if (!track.effectTrack) {
|
|
5732
|
+
this._monitorVideoTrack(track);
|
|
5723
5733
|
}
|
|
5724
5734
|
this._webcamTrack = track;
|
|
5725
5735
|
this._replaceWebcamTrack();
|
|
@@ -5743,7 +5753,7 @@ class VegaRtcManager {
|
|
|
5743
5753
|
(_b = (_a = this._micAnalyserDebugger) === null || _a === void 0 ? void 0 : _a.onScoreUpdated) === null || _b === void 0 ? void 0 : _b.call(_a, data);
|
|
5744
5754
|
this._sendMicScore(this._micPaused ? 0 : data.out);
|
|
5745
5755
|
}
|
|
5746
|
-
addNewStream(streamId, stream, audioPaused, videoPaused) {
|
|
5756
|
+
addNewStream(streamId, stream, audioPaused, videoPaused, beforeEffectTracks = []) {
|
|
5747
5757
|
if (streamId === "0") {
|
|
5748
5758
|
this._micPaused = audioPaused;
|
|
5749
5759
|
this._webcamPaused = videoPaused;
|
|
@@ -5751,14 +5761,24 @@ class VegaRtcManager {
|
|
|
5751
5761
|
const audioTrack = stream.getAudioTracks()[0];
|
|
5752
5762
|
if (videoTrack) {
|
|
5753
5763
|
this._sendWebcam(videoTrack);
|
|
5754
|
-
if (!videoTrack.
|
|
5755
|
-
this.
|
|
5764
|
+
if (!videoTrack.effectTrack) {
|
|
5765
|
+
this._monitorVideoTrack(videoTrack);
|
|
5766
|
+
}
|
|
5767
|
+
const beforeEffectTrack = beforeEffectTracks.find(t => t.kind === "video");
|
|
5768
|
+
if (beforeEffectTrack) {
|
|
5769
|
+
this._monitorVideoTrack(beforeEffectTrack);
|
|
5756
5770
|
}
|
|
5757
5771
|
}
|
|
5758
5772
|
if (audioTrack) {
|
|
5759
5773
|
this._sendMic(audioTrack);
|
|
5760
5774
|
this._syncMicAnalyser();
|
|
5761
|
-
|
|
5775
|
+
if (!audioTrack.effectTrack) {
|
|
5776
|
+
this._monitorAudioTrack(audioTrack);
|
|
5777
|
+
}
|
|
5778
|
+
const beforeEffectTrack = beforeEffectTracks.find(t => t.kind === "audio");
|
|
5779
|
+
if (beforeEffectTrack) {
|
|
5780
|
+
this._monitorAudioTrack(beforeEffectTrack);
|
|
5781
|
+
}
|
|
5762
5782
|
}
|
|
5763
5783
|
if (this._localStreamDeregisterFunction) {
|
|
5764
5784
|
this._localStreamDeregisterFunction();
|
|
@@ -5846,7 +5866,7 @@ class VegaRtcManager {
|
|
|
5846
5866
|
navigator.mediaDevices.getUserMedia({ video: constraints }).then((stream) => {
|
|
5847
5867
|
const track = stream.getVideoTracks()[0];
|
|
5848
5868
|
localStream.addTrack(track);
|
|
5849
|
-
this.
|
|
5869
|
+
this._monitorVideoTrack(track);
|
|
5850
5870
|
this._emitToPWA(EVENTS.LOCAL_STREAM_TRACK_ADDED, {
|
|
5851
5871
|
streamId: localStream.id,
|
|
5852
5872
|
tracks: [track],
|
|
@@ -5943,17 +5963,21 @@ class VegaRtcManager {
|
|
|
5943
5963
|
rtcStats.server.connect();
|
|
5944
5964
|
}
|
|
5945
5965
|
}
|
|
5946
|
-
|
|
5966
|
+
_monitorAudioTrack(track) {
|
|
5967
|
+
var _a, _b;
|
|
5968
|
+
if (((_a = this._audioTrackBeingMonitored) === null || _a === void 0 ? void 0 : _a.id) === track.id)
|
|
5969
|
+
return;
|
|
5970
|
+
(_b = this._audioTrackBeingMonitored) === null || _b === void 0 ? void 0 : _b.removeEventListener("ended", this._audioTrackOnEnded);
|
|
5947
5971
|
track.addEventListener("ended", this._audioTrackOnEnded);
|
|
5972
|
+
this._audioTrackBeingMonitored = track;
|
|
5948
5973
|
}
|
|
5949
|
-
|
|
5950
|
-
|
|
5951
|
-
|
|
5952
|
-
|
|
5974
|
+
_monitorVideoTrack(track) {
|
|
5975
|
+
var _a, _b;
|
|
5976
|
+
if (((_a = this._videoTrackBeingMonitored) === null || _a === void 0 ? void 0 : _a.id) === track.id)
|
|
5977
|
+
return;
|
|
5978
|
+
(_b = this._videoTrackBeingMonitored) === null || _b === void 0 ? void 0 : _b.removeEventListener("ended", this._videoTrackOnEnded);
|
|
5953
5979
|
track.addEventListener("ended", this._videoTrackOnEnded);
|
|
5954
|
-
|
|
5955
|
-
_stopMonitoringVideoTrack(track) {
|
|
5956
|
-
track.removeEventListener("ended", this._videoTrackOnEnded);
|
|
5980
|
+
this._videoTrackBeingMonitored = track;
|
|
5957
5981
|
}
|
|
5958
5982
|
_onMessage(message) {
|
|
5959
5983
|
return __awaiter(this, void 0, void 0, function* () {
|
package/dist/legacy-esm.js
CHANGED
|
@@ -3269,6 +3269,8 @@ const PROTOCOL_RESPONSES = {
|
|
|
3269
3269
|
USER_NOTIFIED: "user_notified",
|
|
3270
3270
|
VIDEO_ENABLED: "video_enabled",
|
|
3271
3271
|
CLIENT_UNABLE_TO_JOIN: "client_unable_to_join",
|
|
3272
|
+
LIVE_TRANSCRIPTION_STARTED: "live_transcription_started",
|
|
3273
|
+
LIVE_TRANSCRIPTION_STOPPED: "live_transcription_stopped",
|
|
3272
3274
|
};
|
|
3273
3275
|
const PROTOCOL_ERRORS = {
|
|
3274
3276
|
CANNOT_INVITE_YOURSELF: "cannot_invite_yourself",
|
|
@@ -3527,20 +3529,32 @@ class P2pRtcManager {
|
|
|
3527
3529
|
maybeRestrictRelayBandwidth(session) {
|
|
3528
3530
|
session.maybeRestrictRelayBandwidth();
|
|
3529
3531
|
}
|
|
3530
|
-
addNewStream(streamId, stream) {
|
|
3532
|
+
addNewStream(streamId, stream, audioPaused, videoPaused, beforeEffectTracks = []) {
|
|
3531
3533
|
if (stream === this.localStreams[streamId]) {
|
|
3532
3534
|
return;
|
|
3533
3535
|
}
|
|
3534
3536
|
this._addLocalStream(streamId, stream);
|
|
3535
3537
|
if (streamId === CAMERA_STREAM_ID) {
|
|
3536
3538
|
this._addStreamToPeerConnections(stream);
|
|
3537
|
-
const
|
|
3539
|
+
const audioTrack = stream.getAudioTracks()[0];
|
|
3538
3540
|
const videoTrack = stream.getVideoTracks()[0];
|
|
3539
3541
|
if (audioTrack) {
|
|
3540
|
-
|
|
3542
|
+
if (!audioTrack.effectTrack) {
|
|
3543
|
+
this._monitorAudioTrack(audioTrack);
|
|
3544
|
+
}
|
|
3545
|
+
const beforeEffectTrack = beforeEffectTracks.find((t) => t.kind === "audio");
|
|
3546
|
+
if (beforeEffectTrack) {
|
|
3547
|
+
this._monitorAudioTrack(beforeEffectTrack);
|
|
3548
|
+
}
|
|
3541
3549
|
}
|
|
3542
|
-
if (videoTrack
|
|
3543
|
-
|
|
3550
|
+
if (videoTrack) {
|
|
3551
|
+
if (!videoTrack.effectTrack) {
|
|
3552
|
+
this._monitorVideoTrack(videoTrack);
|
|
3553
|
+
}
|
|
3554
|
+
const beforeEffectTrack = beforeEffectTracks.find((t) => t.kind === "video");
|
|
3555
|
+
if (beforeEffectTrack) {
|
|
3556
|
+
this._monitorVideoTrack(beforeEffectTrack);
|
|
3557
|
+
}
|
|
3544
3558
|
}
|
|
3545
3559
|
if (this._localStreamDeregisterFunction) {
|
|
3546
3560
|
this._localStreamDeregisterFunction();
|
|
@@ -3561,17 +3575,11 @@ class P2pRtcManager {
|
|
|
3561
3575
|
return;
|
|
3562
3576
|
}
|
|
3563
3577
|
replaceTrack(oldTrack, newTrack) {
|
|
3564
|
-
if (
|
|
3565
|
-
this.
|
|
3566
|
-
}
|
|
3567
|
-
if (oldTrack && oldTrack.kind === "video" && !newTrack.replacement) {
|
|
3568
|
-
this._stopMonitoringVideoTrack(oldTrack);
|
|
3578
|
+
if (newTrack.kind === "audio" && !newTrack.effectTrack) {
|
|
3579
|
+
this._monitorAudioTrack(newTrack);
|
|
3569
3580
|
}
|
|
3570
|
-
if (newTrack
|
|
3571
|
-
this.
|
|
3572
|
-
}
|
|
3573
|
-
if (newTrack.kind === "video" && !newTrack.replacement) {
|
|
3574
|
-
this._startMonitoringVideoTrack(newTrack);
|
|
3581
|
+
if (newTrack.kind === "video" && !newTrack.effectTrack) {
|
|
3582
|
+
this._monitorVideoTrack(newTrack);
|
|
3575
3583
|
}
|
|
3576
3584
|
return this._replaceTrackToPeerConnections(oldTrack, newTrack);
|
|
3577
3585
|
}
|
|
@@ -4085,17 +4093,21 @@ class P2pRtcManager {
|
|
|
4085
4093
|
clearTimeout(this._fetchMediaServersTimer);
|
|
4086
4094
|
this._fetchMediaServersTimer = null;
|
|
4087
4095
|
}
|
|
4088
|
-
|
|
4096
|
+
_monitorAudioTrack(track) {
|
|
4097
|
+
var _a, _b;
|
|
4098
|
+
if (((_a = this._audioTrackBeingMonitored) === null || _a === void 0 ? void 0 : _a.id) === track.id)
|
|
4099
|
+
return;
|
|
4100
|
+
(_b = this._audioTrackBeingMonitored) === null || _b === void 0 ? void 0 : _b.removeEventListener("ended", this._audioTrackOnEnded);
|
|
4089
4101
|
track.addEventListener("ended", this._audioTrackOnEnded);
|
|
4102
|
+
this._audioTrackBeingMonitored = track;
|
|
4090
4103
|
}
|
|
4091
|
-
|
|
4092
|
-
|
|
4093
|
-
|
|
4094
|
-
|
|
4104
|
+
_monitorVideoTrack(track) {
|
|
4105
|
+
var _a, _b;
|
|
4106
|
+
if (((_a = this._videoTrackBeingMonitored) === null || _a === void 0 ? void 0 : _a.id) === track.id)
|
|
4107
|
+
return;
|
|
4108
|
+
(_b = this._videoTrackBeingMonitored) === null || _b === void 0 ? void 0 : _b.removeEventListener("ended", this._videoTrackOnEnded);
|
|
4095
4109
|
track.addEventListener("ended", this._videoTrackOnEnded);
|
|
4096
|
-
|
|
4097
|
-
_stopMonitoringVideoTrack(track) {
|
|
4098
|
-
track.removeEventListener("ended", this._videoTrackOnEnded);
|
|
4110
|
+
this._videoTrackBeingMonitored = track;
|
|
4099
4111
|
}
|
|
4100
4112
|
_connect(clientId) {
|
|
4101
4113
|
this.rtcStatsReconnect();
|
|
@@ -4455,7 +4467,9 @@ class P2pRtcManager {
|
|
|
4455
4467
|
return;
|
|
4456
4468
|
}
|
|
4457
4469
|
if (enable === false) {
|
|
4458
|
-
const stopCameraDelay = ((_a = localStream.getVideoTracks().find((t) => !t.enabled)) === null || _a === void 0 ? void 0 : _a.readyState) === "ended"
|
|
4470
|
+
const stopCameraDelay = ((_a = localStream.getVideoTracks().find((t) => !t.enabled)) === null || _a === void 0 ? void 0 : _a.readyState) === "ended"
|
|
4471
|
+
? 0
|
|
4472
|
+
: 5000;
|
|
4459
4473
|
setTimeout(() => {
|
|
4460
4474
|
localStream.getVideoTracks().forEach((track) => {
|
|
4461
4475
|
if (track.enabled === false) {
|
|
@@ -4479,7 +4493,7 @@ class P2pRtcManager {
|
|
|
4479
4493
|
navigator.mediaDevices.getUserMedia({ video: constraints }).then((stream) => {
|
|
4480
4494
|
const track = stream.getVideoTracks()[0];
|
|
4481
4495
|
localStream.addTrack(track);
|
|
4482
|
-
this.
|
|
4496
|
+
this._monitorVideoTrack(track);
|
|
4483
4497
|
this._emit(EVENTS.LOCAL_STREAM_TRACK_ADDED, {
|
|
4484
4498
|
streamId: localStream.id,
|
|
4485
4499
|
tracks: [track],
|
|
@@ -5706,20 +5720,16 @@ class VegaRtcManager {
|
|
|
5706
5720
|
}
|
|
5707
5721
|
}
|
|
5708
5722
|
replaceTrack(oldTrack, track) {
|
|
5709
|
-
if (oldTrack && oldTrack.kind === "audio") {
|
|
5710
|
-
this._stopMonitoringAudioTrack(oldTrack);
|
|
5711
|
-
}
|
|
5712
|
-
if (oldTrack && oldTrack.kind === "video" && !track.replacement) {
|
|
5713
|
-
this._stopMonitoringVideoTrack(oldTrack);
|
|
5714
|
-
}
|
|
5715
5723
|
if (track.kind === "audio") {
|
|
5716
|
-
|
|
5724
|
+
if (!track.effectTrack) {
|
|
5725
|
+
this._monitorAudioTrack(track);
|
|
5726
|
+
}
|
|
5717
5727
|
this._micTrack = track;
|
|
5718
5728
|
this._replaceMicTrack();
|
|
5719
5729
|
}
|
|
5720
5730
|
if (track.kind === "video") {
|
|
5721
|
-
if (!track.
|
|
5722
|
-
this.
|
|
5731
|
+
if (!track.effectTrack) {
|
|
5732
|
+
this._monitorVideoTrack(track);
|
|
5723
5733
|
}
|
|
5724
5734
|
this._webcamTrack = track;
|
|
5725
5735
|
this._replaceWebcamTrack();
|
|
@@ -5743,7 +5753,7 @@ class VegaRtcManager {
|
|
|
5743
5753
|
(_b = (_a = this._micAnalyserDebugger) === null || _a === void 0 ? void 0 : _a.onScoreUpdated) === null || _b === void 0 ? void 0 : _b.call(_a, data);
|
|
5744
5754
|
this._sendMicScore(this._micPaused ? 0 : data.out);
|
|
5745
5755
|
}
|
|
5746
|
-
addNewStream(streamId, stream, audioPaused, videoPaused) {
|
|
5756
|
+
addNewStream(streamId, stream, audioPaused, videoPaused, beforeEffectTracks = []) {
|
|
5747
5757
|
if (streamId === "0") {
|
|
5748
5758
|
this._micPaused = audioPaused;
|
|
5749
5759
|
this._webcamPaused = videoPaused;
|
|
@@ -5751,14 +5761,24 @@ class VegaRtcManager {
|
|
|
5751
5761
|
const audioTrack = stream.getAudioTracks()[0];
|
|
5752
5762
|
if (videoTrack) {
|
|
5753
5763
|
this._sendWebcam(videoTrack);
|
|
5754
|
-
if (!videoTrack.
|
|
5755
|
-
this.
|
|
5764
|
+
if (!videoTrack.effectTrack) {
|
|
5765
|
+
this._monitorVideoTrack(videoTrack);
|
|
5766
|
+
}
|
|
5767
|
+
const beforeEffectTrack = beforeEffectTracks.find(t => t.kind === "video");
|
|
5768
|
+
if (beforeEffectTrack) {
|
|
5769
|
+
this._monitorVideoTrack(beforeEffectTrack);
|
|
5756
5770
|
}
|
|
5757
5771
|
}
|
|
5758
5772
|
if (audioTrack) {
|
|
5759
5773
|
this._sendMic(audioTrack);
|
|
5760
5774
|
this._syncMicAnalyser();
|
|
5761
|
-
|
|
5775
|
+
if (!audioTrack.effectTrack) {
|
|
5776
|
+
this._monitorAudioTrack(audioTrack);
|
|
5777
|
+
}
|
|
5778
|
+
const beforeEffectTrack = beforeEffectTracks.find(t => t.kind === "audio");
|
|
5779
|
+
if (beforeEffectTrack) {
|
|
5780
|
+
this._monitorAudioTrack(beforeEffectTrack);
|
|
5781
|
+
}
|
|
5762
5782
|
}
|
|
5763
5783
|
if (this._localStreamDeregisterFunction) {
|
|
5764
5784
|
this._localStreamDeregisterFunction();
|
|
@@ -5846,7 +5866,7 @@ class VegaRtcManager {
|
|
|
5846
5866
|
navigator.mediaDevices.getUserMedia({ video: constraints }).then((stream) => {
|
|
5847
5867
|
const track = stream.getVideoTracks()[0];
|
|
5848
5868
|
localStream.addTrack(track);
|
|
5849
|
-
this.
|
|
5869
|
+
this._monitorVideoTrack(track);
|
|
5850
5870
|
this._emitToPWA(EVENTS.LOCAL_STREAM_TRACK_ADDED, {
|
|
5851
5871
|
streamId: localStream.id,
|
|
5852
5872
|
tracks: [track],
|
|
@@ -5943,17 +5963,21 @@ class VegaRtcManager {
|
|
|
5943
5963
|
rtcStats.server.connect();
|
|
5944
5964
|
}
|
|
5945
5965
|
}
|
|
5946
|
-
|
|
5966
|
+
_monitorAudioTrack(track) {
|
|
5967
|
+
var _a, _b;
|
|
5968
|
+
if (((_a = this._audioTrackBeingMonitored) === null || _a === void 0 ? void 0 : _a.id) === track.id)
|
|
5969
|
+
return;
|
|
5970
|
+
(_b = this._audioTrackBeingMonitored) === null || _b === void 0 ? void 0 : _b.removeEventListener("ended", this._audioTrackOnEnded);
|
|
5947
5971
|
track.addEventListener("ended", this._audioTrackOnEnded);
|
|
5972
|
+
this._audioTrackBeingMonitored = track;
|
|
5948
5973
|
}
|
|
5949
|
-
|
|
5950
|
-
|
|
5951
|
-
|
|
5952
|
-
|
|
5974
|
+
_monitorVideoTrack(track) {
|
|
5975
|
+
var _a, _b;
|
|
5976
|
+
if (((_a = this._videoTrackBeingMonitored) === null || _a === void 0 ? void 0 : _a.id) === track.id)
|
|
5977
|
+
return;
|
|
5978
|
+
(_b = this._videoTrackBeingMonitored) === null || _b === void 0 ? void 0 : _b.removeEventListener("ended", this._videoTrackOnEnded);
|
|
5953
5979
|
track.addEventListener("ended", this._videoTrackOnEnded);
|
|
5954
|
-
|
|
5955
|
-
_stopMonitoringVideoTrack(track) {
|
|
5956
|
-
track.removeEventListener("ended", this._videoTrackOnEnded);
|
|
5980
|
+
this._videoTrackBeingMonitored = track;
|
|
5957
5981
|
}
|
|
5958
5982
|
_onMessage(message) {
|
|
5959
5983
|
return __awaiter(this, void 0, void 0, function* () {
|