@whereby.com/media 1.6.4 → 1.6.5
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 +69 -47
- package/dist/index.d.cts +12 -12
- package/dist/index.d.mts +12 -12
- package/dist/index.d.ts +12 -12
- package/dist/index.mjs +69 -47
- package/dist/legacy-esm.js +69 -47
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -3548,20 +3548,32 @@ class P2pRtcManager {
|
|
|
3548
3548
|
maybeRestrictRelayBandwidth(session) {
|
|
3549
3549
|
session.maybeRestrictRelayBandwidth();
|
|
3550
3550
|
}
|
|
3551
|
-
addNewStream(streamId, stream) {
|
|
3551
|
+
addNewStream(streamId, stream, audioPaused, videoPaused, beforeEffectTracks = []) {
|
|
3552
3552
|
if (stream === this.localStreams[streamId]) {
|
|
3553
3553
|
return;
|
|
3554
3554
|
}
|
|
3555
3555
|
this._addLocalStream(streamId, stream);
|
|
3556
3556
|
if (streamId === CAMERA_STREAM_ID) {
|
|
3557
3557
|
this._addStreamToPeerConnections(stream);
|
|
3558
|
-
const
|
|
3558
|
+
const audioTrack = stream.getAudioTracks()[0];
|
|
3559
3559
|
const videoTrack = stream.getVideoTracks()[0];
|
|
3560
3560
|
if (audioTrack) {
|
|
3561
|
-
|
|
3561
|
+
if (!audioTrack.effectTrack) {
|
|
3562
|
+
this._monitorAudioTrack(audioTrack);
|
|
3563
|
+
}
|
|
3564
|
+
const beforeEffectTrack = beforeEffectTracks.find((t) => t.kind === "audio");
|
|
3565
|
+
if (beforeEffectTrack) {
|
|
3566
|
+
this._monitorAudioTrack(beforeEffectTrack);
|
|
3567
|
+
}
|
|
3562
3568
|
}
|
|
3563
|
-
if (videoTrack
|
|
3564
|
-
|
|
3569
|
+
if (videoTrack) {
|
|
3570
|
+
if (!videoTrack.effectTrack) {
|
|
3571
|
+
this._monitorVideoTrack(videoTrack);
|
|
3572
|
+
}
|
|
3573
|
+
const beforeEffectTrack = beforeEffectTracks.find((t) => t.kind === "video");
|
|
3574
|
+
if (beforeEffectTrack) {
|
|
3575
|
+
this._monitorVideoTrack(beforeEffectTrack);
|
|
3576
|
+
}
|
|
3565
3577
|
}
|
|
3566
3578
|
if (this._localStreamDeregisterFunction) {
|
|
3567
3579
|
this._localStreamDeregisterFunction();
|
|
@@ -3582,17 +3594,11 @@ class P2pRtcManager {
|
|
|
3582
3594
|
return;
|
|
3583
3595
|
}
|
|
3584
3596
|
replaceTrack(oldTrack, newTrack) {
|
|
3585
|
-
if (
|
|
3586
|
-
this.
|
|
3587
|
-
}
|
|
3588
|
-
if (oldTrack && oldTrack.kind === "video" && !newTrack.replacement) {
|
|
3589
|
-
this._stopMonitoringVideoTrack(oldTrack);
|
|
3597
|
+
if (newTrack.kind === "audio" && !newTrack.effectTrack) {
|
|
3598
|
+
this._monitorAudioTrack(newTrack);
|
|
3590
3599
|
}
|
|
3591
|
-
if (newTrack
|
|
3592
|
-
this.
|
|
3593
|
-
}
|
|
3594
|
-
if (newTrack.kind === "video" && !newTrack.replacement) {
|
|
3595
|
-
this._startMonitoringVideoTrack(newTrack);
|
|
3600
|
+
if (newTrack.kind === "video" && !newTrack.effectTrack) {
|
|
3601
|
+
this._monitorVideoTrack(newTrack);
|
|
3596
3602
|
}
|
|
3597
3603
|
return this._replaceTrackToPeerConnections(oldTrack, newTrack);
|
|
3598
3604
|
}
|
|
@@ -4106,17 +4112,21 @@ class P2pRtcManager {
|
|
|
4106
4112
|
clearTimeout(this._fetchMediaServersTimer);
|
|
4107
4113
|
this._fetchMediaServersTimer = null;
|
|
4108
4114
|
}
|
|
4109
|
-
|
|
4115
|
+
_monitorAudioTrack(track) {
|
|
4116
|
+
var _a, _b;
|
|
4117
|
+
if (((_a = this._audioTrackBeingMonitored) === null || _a === void 0 ? void 0 : _a.id) === track.id)
|
|
4118
|
+
return;
|
|
4119
|
+
(_b = this._audioTrackBeingMonitored) === null || _b === void 0 ? void 0 : _b.removeEventListener("ended", this._audioTrackOnEnded);
|
|
4110
4120
|
track.addEventListener("ended", this._audioTrackOnEnded);
|
|
4121
|
+
this._audioTrackBeingMonitored = track;
|
|
4111
4122
|
}
|
|
4112
|
-
|
|
4113
|
-
|
|
4114
|
-
|
|
4115
|
-
|
|
4123
|
+
_monitorVideoTrack(track) {
|
|
4124
|
+
var _a, _b;
|
|
4125
|
+
if (((_a = this._videoTrackBeingMonitored) === null || _a === void 0 ? void 0 : _a.id) === track.id)
|
|
4126
|
+
return;
|
|
4127
|
+
(_b = this._videoTrackBeingMonitored) === null || _b === void 0 ? void 0 : _b.removeEventListener("ended", this._videoTrackOnEnded);
|
|
4116
4128
|
track.addEventListener("ended", this._videoTrackOnEnded);
|
|
4117
|
-
|
|
4118
|
-
_stopMonitoringVideoTrack(track) {
|
|
4119
|
-
track.removeEventListener("ended", this._videoTrackOnEnded);
|
|
4129
|
+
this._videoTrackBeingMonitored = track;
|
|
4120
4130
|
}
|
|
4121
4131
|
_connect(clientId) {
|
|
4122
4132
|
this.rtcStatsReconnect();
|
|
@@ -4476,7 +4486,9 @@ class P2pRtcManager {
|
|
|
4476
4486
|
return;
|
|
4477
4487
|
}
|
|
4478
4488
|
if (enable === false) {
|
|
4479
|
-
const stopCameraDelay = ((_a = localStream.getVideoTracks().find((t) => !t.enabled)) === null || _a === void 0 ? void 0 : _a.readyState) === "ended"
|
|
4489
|
+
const stopCameraDelay = ((_a = localStream.getVideoTracks().find((t) => !t.enabled)) === null || _a === void 0 ? void 0 : _a.readyState) === "ended"
|
|
4490
|
+
? 0
|
|
4491
|
+
: 5000;
|
|
4480
4492
|
setTimeout(() => {
|
|
4481
4493
|
localStream.getVideoTracks().forEach((track) => {
|
|
4482
4494
|
if (track.enabled === false) {
|
|
@@ -4500,7 +4512,7 @@ class P2pRtcManager {
|
|
|
4500
4512
|
navigator.mediaDevices.getUserMedia({ video: constraints }).then((stream) => {
|
|
4501
4513
|
const track = stream.getVideoTracks()[0];
|
|
4502
4514
|
localStream.addTrack(track);
|
|
4503
|
-
this.
|
|
4515
|
+
this._monitorVideoTrack(track);
|
|
4504
4516
|
this._emit(EVENTS.LOCAL_STREAM_TRACK_ADDED, {
|
|
4505
4517
|
streamId: localStream.id,
|
|
4506
4518
|
tracks: [track],
|
|
@@ -5727,20 +5739,16 @@ class VegaRtcManager {
|
|
|
5727
5739
|
}
|
|
5728
5740
|
}
|
|
5729
5741
|
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
5742
|
if (track.kind === "audio") {
|
|
5737
|
-
|
|
5743
|
+
if (!track.effectTrack) {
|
|
5744
|
+
this._monitorAudioTrack(track);
|
|
5745
|
+
}
|
|
5738
5746
|
this._micTrack = track;
|
|
5739
5747
|
this._replaceMicTrack();
|
|
5740
5748
|
}
|
|
5741
5749
|
if (track.kind === "video") {
|
|
5742
|
-
if (!track.
|
|
5743
|
-
this.
|
|
5750
|
+
if (!track.effectTrack) {
|
|
5751
|
+
this._monitorVideoTrack(track);
|
|
5744
5752
|
}
|
|
5745
5753
|
this._webcamTrack = track;
|
|
5746
5754
|
this._replaceWebcamTrack();
|
|
@@ -5764,7 +5772,7 @@ class VegaRtcManager {
|
|
|
5764
5772
|
(_b = (_a = this._micAnalyserDebugger) === null || _a === void 0 ? void 0 : _a.onScoreUpdated) === null || _b === void 0 ? void 0 : _b.call(_a, data);
|
|
5765
5773
|
this._sendMicScore(this._micPaused ? 0 : data.out);
|
|
5766
5774
|
}
|
|
5767
|
-
addNewStream(streamId, stream, audioPaused, videoPaused) {
|
|
5775
|
+
addNewStream(streamId, stream, audioPaused, videoPaused, beforeEffectTracks = []) {
|
|
5768
5776
|
if (streamId === "0") {
|
|
5769
5777
|
this._micPaused = audioPaused;
|
|
5770
5778
|
this._webcamPaused = videoPaused;
|
|
@@ -5772,14 +5780,24 @@ class VegaRtcManager {
|
|
|
5772
5780
|
const audioTrack = stream.getAudioTracks()[0];
|
|
5773
5781
|
if (videoTrack) {
|
|
5774
5782
|
this._sendWebcam(videoTrack);
|
|
5775
|
-
if (!videoTrack.
|
|
5776
|
-
this.
|
|
5783
|
+
if (!videoTrack.effectTrack) {
|
|
5784
|
+
this._monitorVideoTrack(videoTrack);
|
|
5785
|
+
}
|
|
5786
|
+
const beforeEffectTrack = beforeEffectTracks.find(t => t.kind === "video");
|
|
5787
|
+
if (beforeEffectTrack) {
|
|
5788
|
+
this._monitorVideoTrack(beforeEffectTrack);
|
|
5777
5789
|
}
|
|
5778
5790
|
}
|
|
5779
5791
|
if (audioTrack) {
|
|
5780
5792
|
this._sendMic(audioTrack);
|
|
5781
5793
|
this._syncMicAnalyser();
|
|
5782
|
-
|
|
5794
|
+
if (!audioTrack.effectTrack) {
|
|
5795
|
+
this._monitorAudioTrack(audioTrack);
|
|
5796
|
+
}
|
|
5797
|
+
const beforeEffectTrack = beforeEffectTracks.find(t => t.kind === "audio");
|
|
5798
|
+
if (beforeEffectTrack) {
|
|
5799
|
+
this._monitorAudioTrack(beforeEffectTrack);
|
|
5800
|
+
}
|
|
5783
5801
|
}
|
|
5784
5802
|
if (this._localStreamDeregisterFunction) {
|
|
5785
5803
|
this._localStreamDeregisterFunction();
|
|
@@ -5867,7 +5885,7 @@ class VegaRtcManager {
|
|
|
5867
5885
|
navigator.mediaDevices.getUserMedia({ video: constraints }).then((stream) => {
|
|
5868
5886
|
const track = stream.getVideoTracks()[0];
|
|
5869
5887
|
localStream.addTrack(track);
|
|
5870
|
-
this.
|
|
5888
|
+
this._monitorVideoTrack(track);
|
|
5871
5889
|
this._emitToPWA(EVENTS.LOCAL_STREAM_TRACK_ADDED, {
|
|
5872
5890
|
streamId: localStream.id,
|
|
5873
5891
|
tracks: [track],
|
|
@@ -5964,17 +5982,21 @@ class VegaRtcManager {
|
|
|
5964
5982
|
rtcStats.server.connect();
|
|
5965
5983
|
}
|
|
5966
5984
|
}
|
|
5967
|
-
|
|
5985
|
+
_monitorAudioTrack(track) {
|
|
5986
|
+
var _a, _b;
|
|
5987
|
+
if (((_a = this._audioTrackBeingMonitored) === null || _a === void 0 ? void 0 : _a.id) === track.id)
|
|
5988
|
+
return;
|
|
5989
|
+
(_b = this._audioTrackBeingMonitored) === null || _b === void 0 ? void 0 : _b.removeEventListener("ended", this._audioTrackOnEnded);
|
|
5968
5990
|
track.addEventListener("ended", this._audioTrackOnEnded);
|
|
5991
|
+
this._audioTrackBeingMonitored = track;
|
|
5969
5992
|
}
|
|
5970
|
-
|
|
5971
|
-
|
|
5972
|
-
|
|
5973
|
-
|
|
5993
|
+
_monitorVideoTrack(track) {
|
|
5994
|
+
var _a, _b;
|
|
5995
|
+
if (((_a = this._videoTrackBeingMonitored) === null || _a === void 0 ? void 0 : _a.id) === track.id)
|
|
5996
|
+
return;
|
|
5997
|
+
(_b = this._videoTrackBeingMonitored) === null || _b === void 0 ? void 0 : _b.removeEventListener("ended", this._videoTrackOnEnded);
|
|
5974
5998
|
track.addEventListener("ended", this._videoTrackOnEnded);
|
|
5975
|
-
|
|
5976
|
-
_stopMonitoringVideoTrack(track) {
|
|
5977
|
-
track.removeEventListener("ended", this._videoTrackOnEnded);
|
|
5999
|
+
this._videoTrackBeingMonitored = track;
|
|
5978
6000
|
}
|
|
5979
6001
|
_onMessage(message) {
|
|
5980
6002
|
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;
|
|
@@ -1110,6 +1110,8 @@ declare class VegaRtcManager implements RtcManager {
|
|
|
1110
1110
|
_iceServers: any;
|
|
1111
1111
|
_sfuServer: any;
|
|
1112
1112
|
_mediaserverConfigTtlSeconds: any;
|
|
1113
|
+
_videoTrackBeingMonitored?: CustomMediaStreamTrack;
|
|
1114
|
+
_audioTrackBeingMonitored?: CustomMediaStreamTrack;
|
|
1113
1115
|
constructor({ selfId, room, emitter, serverSocket, webrtcProvider, features, eventClaim, deviceHandlerFactory, }: {
|
|
1114
1116
|
selfId: any;
|
|
1115
1117
|
room: any;
|
|
@@ -1165,7 +1167,7 @@ declare class VegaRtcManager implements RtcManager {
|
|
|
1165
1167
|
replaceTrack(oldTrack: CustomMediaStreamTrack | null, track: CustomMediaStreamTrack): void;
|
|
1166
1168
|
removeStream(streamId: string, _stream: MediaStream, requestedByClientId: string): void;
|
|
1167
1169
|
_onMicAnalyserScoreUpdated(data: any): void;
|
|
1168
|
-
addNewStream(streamId: string, stream: MediaStream, audioPaused: boolean, videoPaused: boolean): void;
|
|
1170
|
+
addNewStream(streamId: string, stream: MediaStream, audioPaused: boolean, videoPaused: boolean, beforeEffectTracks?: CustomMediaStreamTrack[]): void;
|
|
1169
1171
|
_syncMicAnalyser(): void;
|
|
1170
1172
|
stopOrResumeAudio(stream: MediaStream, enabled: boolean): void;
|
|
1171
1173
|
_handleStopOrResumeVideo({ enable, track }: {
|
|
@@ -1188,10 +1190,8 @@ declare class VegaRtcManager implements RtcManager {
|
|
|
1188
1190
|
sendStatsCustomEvent(eventName: string, data?: any): void;
|
|
1189
1191
|
rtcStatsDisconnect(): void;
|
|
1190
1192
|
rtcStatsReconnect(): void;
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
_startMonitoringVideoTrack(track: CustomMediaStreamTrack): void;
|
|
1194
|
-
_stopMonitoringVideoTrack(track: CustomMediaStreamTrack): void;
|
|
1193
|
+
_monitorAudioTrack(track: any): void;
|
|
1194
|
+
_monitorVideoTrack(track: CustomMediaStreamTrack): void;
|
|
1195
1195
|
_onMessage(message: any): Promise<void>;
|
|
1196
1196
|
_onConsumerReady(options: any): Promise<void>;
|
|
1197
1197
|
_onConsumerClosed({ consumerId, reason }: {
|
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;
|
|
@@ -1110,6 +1110,8 @@ declare class VegaRtcManager implements RtcManager {
|
|
|
1110
1110
|
_iceServers: any;
|
|
1111
1111
|
_sfuServer: any;
|
|
1112
1112
|
_mediaserverConfigTtlSeconds: any;
|
|
1113
|
+
_videoTrackBeingMonitored?: CustomMediaStreamTrack;
|
|
1114
|
+
_audioTrackBeingMonitored?: CustomMediaStreamTrack;
|
|
1113
1115
|
constructor({ selfId, room, emitter, serverSocket, webrtcProvider, features, eventClaim, deviceHandlerFactory, }: {
|
|
1114
1116
|
selfId: any;
|
|
1115
1117
|
room: any;
|
|
@@ -1165,7 +1167,7 @@ declare class VegaRtcManager implements RtcManager {
|
|
|
1165
1167
|
replaceTrack(oldTrack: CustomMediaStreamTrack | null, track: CustomMediaStreamTrack): void;
|
|
1166
1168
|
removeStream(streamId: string, _stream: MediaStream, requestedByClientId: string): void;
|
|
1167
1169
|
_onMicAnalyserScoreUpdated(data: any): void;
|
|
1168
|
-
addNewStream(streamId: string, stream: MediaStream, audioPaused: boolean, videoPaused: boolean): void;
|
|
1170
|
+
addNewStream(streamId: string, stream: MediaStream, audioPaused: boolean, videoPaused: boolean, beforeEffectTracks?: CustomMediaStreamTrack[]): void;
|
|
1169
1171
|
_syncMicAnalyser(): void;
|
|
1170
1172
|
stopOrResumeAudio(stream: MediaStream, enabled: boolean): void;
|
|
1171
1173
|
_handleStopOrResumeVideo({ enable, track }: {
|
|
@@ -1188,10 +1190,8 @@ declare class VegaRtcManager implements RtcManager {
|
|
|
1188
1190
|
sendStatsCustomEvent(eventName: string, data?: any): void;
|
|
1189
1191
|
rtcStatsDisconnect(): void;
|
|
1190
1192
|
rtcStatsReconnect(): void;
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
_startMonitoringVideoTrack(track: CustomMediaStreamTrack): void;
|
|
1194
|
-
_stopMonitoringVideoTrack(track: CustomMediaStreamTrack): void;
|
|
1193
|
+
_monitorAudioTrack(track: any): void;
|
|
1194
|
+
_monitorVideoTrack(track: CustomMediaStreamTrack): void;
|
|
1195
1195
|
_onMessage(message: any): Promise<void>;
|
|
1196
1196
|
_onConsumerReady(options: any): Promise<void>;
|
|
1197
1197
|
_onConsumerClosed({ consumerId, reason }: {
|
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;
|
|
@@ -1110,6 +1110,8 @@ declare class VegaRtcManager implements RtcManager {
|
|
|
1110
1110
|
_iceServers: any;
|
|
1111
1111
|
_sfuServer: any;
|
|
1112
1112
|
_mediaserverConfigTtlSeconds: any;
|
|
1113
|
+
_videoTrackBeingMonitored?: CustomMediaStreamTrack;
|
|
1114
|
+
_audioTrackBeingMonitored?: CustomMediaStreamTrack;
|
|
1113
1115
|
constructor({ selfId, room, emitter, serverSocket, webrtcProvider, features, eventClaim, deviceHandlerFactory, }: {
|
|
1114
1116
|
selfId: any;
|
|
1115
1117
|
room: any;
|
|
@@ -1165,7 +1167,7 @@ declare class VegaRtcManager implements RtcManager {
|
|
|
1165
1167
|
replaceTrack(oldTrack: CustomMediaStreamTrack | null, track: CustomMediaStreamTrack): void;
|
|
1166
1168
|
removeStream(streamId: string, _stream: MediaStream, requestedByClientId: string): void;
|
|
1167
1169
|
_onMicAnalyserScoreUpdated(data: any): void;
|
|
1168
|
-
addNewStream(streamId: string, stream: MediaStream, audioPaused: boolean, videoPaused: boolean): void;
|
|
1170
|
+
addNewStream(streamId: string, stream: MediaStream, audioPaused: boolean, videoPaused: boolean, beforeEffectTracks?: CustomMediaStreamTrack[]): void;
|
|
1169
1171
|
_syncMicAnalyser(): void;
|
|
1170
1172
|
stopOrResumeAudio(stream: MediaStream, enabled: boolean): void;
|
|
1171
1173
|
_handleStopOrResumeVideo({ enable, track }: {
|
|
@@ -1188,10 +1190,8 @@ declare class VegaRtcManager implements RtcManager {
|
|
|
1188
1190
|
sendStatsCustomEvent(eventName: string, data?: any): void;
|
|
1189
1191
|
rtcStatsDisconnect(): void;
|
|
1190
1192
|
rtcStatsReconnect(): void;
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
_startMonitoringVideoTrack(track: CustomMediaStreamTrack): void;
|
|
1194
|
-
_stopMonitoringVideoTrack(track: CustomMediaStreamTrack): void;
|
|
1193
|
+
_monitorAudioTrack(track: any): void;
|
|
1194
|
+
_monitorVideoTrack(track: CustomMediaStreamTrack): void;
|
|
1195
1195
|
_onMessage(message: any): Promise<void>;
|
|
1196
1196
|
_onConsumerReady(options: any): Promise<void>;
|
|
1197
1197
|
_onConsumerClosed({ consumerId, reason }: {
|
package/dist/index.mjs
CHANGED
|
@@ -3527,20 +3527,32 @@ class P2pRtcManager {
|
|
|
3527
3527
|
maybeRestrictRelayBandwidth(session) {
|
|
3528
3528
|
session.maybeRestrictRelayBandwidth();
|
|
3529
3529
|
}
|
|
3530
|
-
addNewStream(streamId, stream) {
|
|
3530
|
+
addNewStream(streamId, stream, audioPaused, videoPaused, beforeEffectTracks = []) {
|
|
3531
3531
|
if (stream === this.localStreams[streamId]) {
|
|
3532
3532
|
return;
|
|
3533
3533
|
}
|
|
3534
3534
|
this._addLocalStream(streamId, stream);
|
|
3535
3535
|
if (streamId === CAMERA_STREAM_ID) {
|
|
3536
3536
|
this._addStreamToPeerConnections(stream);
|
|
3537
|
-
const
|
|
3537
|
+
const audioTrack = stream.getAudioTracks()[0];
|
|
3538
3538
|
const videoTrack = stream.getVideoTracks()[0];
|
|
3539
3539
|
if (audioTrack) {
|
|
3540
|
-
|
|
3540
|
+
if (!audioTrack.effectTrack) {
|
|
3541
|
+
this._monitorAudioTrack(audioTrack);
|
|
3542
|
+
}
|
|
3543
|
+
const beforeEffectTrack = beforeEffectTracks.find((t) => t.kind === "audio");
|
|
3544
|
+
if (beforeEffectTrack) {
|
|
3545
|
+
this._monitorAudioTrack(beforeEffectTrack);
|
|
3546
|
+
}
|
|
3541
3547
|
}
|
|
3542
|
-
if (videoTrack
|
|
3543
|
-
|
|
3548
|
+
if (videoTrack) {
|
|
3549
|
+
if (!videoTrack.effectTrack) {
|
|
3550
|
+
this._monitorVideoTrack(videoTrack);
|
|
3551
|
+
}
|
|
3552
|
+
const beforeEffectTrack = beforeEffectTracks.find((t) => t.kind === "video");
|
|
3553
|
+
if (beforeEffectTrack) {
|
|
3554
|
+
this._monitorVideoTrack(beforeEffectTrack);
|
|
3555
|
+
}
|
|
3544
3556
|
}
|
|
3545
3557
|
if (this._localStreamDeregisterFunction) {
|
|
3546
3558
|
this._localStreamDeregisterFunction();
|
|
@@ -3561,17 +3573,11 @@ class P2pRtcManager {
|
|
|
3561
3573
|
return;
|
|
3562
3574
|
}
|
|
3563
3575
|
replaceTrack(oldTrack, newTrack) {
|
|
3564
|
-
if (
|
|
3565
|
-
this.
|
|
3566
|
-
}
|
|
3567
|
-
if (oldTrack && oldTrack.kind === "video" && !newTrack.replacement) {
|
|
3568
|
-
this._stopMonitoringVideoTrack(oldTrack);
|
|
3576
|
+
if (newTrack.kind === "audio" && !newTrack.effectTrack) {
|
|
3577
|
+
this._monitorAudioTrack(newTrack);
|
|
3569
3578
|
}
|
|
3570
|
-
if (newTrack
|
|
3571
|
-
this.
|
|
3572
|
-
}
|
|
3573
|
-
if (newTrack.kind === "video" && !newTrack.replacement) {
|
|
3574
|
-
this._startMonitoringVideoTrack(newTrack);
|
|
3579
|
+
if (newTrack.kind === "video" && !newTrack.effectTrack) {
|
|
3580
|
+
this._monitorVideoTrack(newTrack);
|
|
3575
3581
|
}
|
|
3576
3582
|
return this._replaceTrackToPeerConnections(oldTrack, newTrack);
|
|
3577
3583
|
}
|
|
@@ -4085,17 +4091,21 @@ class P2pRtcManager {
|
|
|
4085
4091
|
clearTimeout(this._fetchMediaServersTimer);
|
|
4086
4092
|
this._fetchMediaServersTimer = null;
|
|
4087
4093
|
}
|
|
4088
|
-
|
|
4094
|
+
_monitorAudioTrack(track) {
|
|
4095
|
+
var _a, _b;
|
|
4096
|
+
if (((_a = this._audioTrackBeingMonitored) === null || _a === void 0 ? void 0 : _a.id) === track.id)
|
|
4097
|
+
return;
|
|
4098
|
+
(_b = this._audioTrackBeingMonitored) === null || _b === void 0 ? void 0 : _b.removeEventListener("ended", this._audioTrackOnEnded);
|
|
4089
4099
|
track.addEventListener("ended", this._audioTrackOnEnded);
|
|
4100
|
+
this._audioTrackBeingMonitored = track;
|
|
4090
4101
|
}
|
|
4091
|
-
|
|
4092
|
-
|
|
4093
|
-
|
|
4094
|
-
|
|
4102
|
+
_monitorVideoTrack(track) {
|
|
4103
|
+
var _a, _b;
|
|
4104
|
+
if (((_a = this._videoTrackBeingMonitored) === null || _a === void 0 ? void 0 : _a.id) === track.id)
|
|
4105
|
+
return;
|
|
4106
|
+
(_b = this._videoTrackBeingMonitored) === null || _b === void 0 ? void 0 : _b.removeEventListener("ended", this._videoTrackOnEnded);
|
|
4095
4107
|
track.addEventListener("ended", this._videoTrackOnEnded);
|
|
4096
|
-
|
|
4097
|
-
_stopMonitoringVideoTrack(track) {
|
|
4098
|
-
track.removeEventListener("ended", this._videoTrackOnEnded);
|
|
4108
|
+
this._videoTrackBeingMonitored = track;
|
|
4099
4109
|
}
|
|
4100
4110
|
_connect(clientId) {
|
|
4101
4111
|
this.rtcStatsReconnect();
|
|
@@ -4455,7 +4465,9 @@ class P2pRtcManager {
|
|
|
4455
4465
|
return;
|
|
4456
4466
|
}
|
|
4457
4467
|
if (enable === false) {
|
|
4458
|
-
const stopCameraDelay = ((_a = localStream.getVideoTracks().find((t) => !t.enabled)) === null || _a === void 0 ? void 0 : _a.readyState) === "ended"
|
|
4468
|
+
const stopCameraDelay = ((_a = localStream.getVideoTracks().find((t) => !t.enabled)) === null || _a === void 0 ? void 0 : _a.readyState) === "ended"
|
|
4469
|
+
? 0
|
|
4470
|
+
: 5000;
|
|
4459
4471
|
setTimeout(() => {
|
|
4460
4472
|
localStream.getVideoTracks().forEach((track) => {
|
|
4461
4473
|
if (track.enabled === false) {
|
|
@@ -4479,7 +4491,7 @@ class P2pRtcManager {
|
|
|
4479
4491
|
navigator.mediaDevices.getUserMedia({ video: constraints }).then((stream) => {
|
|
4480
4492
|
const track = stream.getVideoTracks()[0];
|
|
4481
4493
|
localStream.addTrack(track);
|
|
4482
|
-
this.
|
|
4494
|
+
this._monitorVideoTrack(track);
|
|
4483
4495
|
this._emit(EVENTS.LOCAL_STREAM_TRACK_ADDED, {
|
|
4484
4496
|
streamId: localStream.id,
|
|
4485
4497
|
tracks: [track],
|
|
@@ -5706,20 +5718,16 @@ class VegaRtcManager {
|
|
|
5706
5718
|
}
|
|
5707
5719
|
}
|
|
5708
5720
|
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
5721
|
if (track.kind === "audio") {
|
|
5716
|
-
|
|
5722
|
+
if (!track.effectTrack) {
|
|
5723
|
+
this._monitorAudioTrack(track);
|
|
5724
|
+
}
|
|
5717
5725
|
this._micTrack = track;
|
|
5718
5726
|
this._replaceMicTrack();
|
|
5719
5727
|
}
|
|
5720
5728
|
if (track.kind === "video") {
|
|
5721
|
-
if (!track.
|
|
5722
|
-
this.
|
|
5729
|
+
if (!track.effectTrack) {
|
|
5730
|
+
this._monitorVideoTrack(track);
|
|
5723
5731
|
}
|
|
5724
5732
|
this._webcamTrack = track;
|
|
5725
5733
|
this._replaceWebcamTrack();
|
|
@@ -5743,7 +5751,7 @@ class VegaRtcManager {
|
|
|
5743
5751
|
(_b = (_a = this._micAnalyserDebugger) === null || _a === void 0 ? void 0 : _a.onScoreUpdated) === null || _b === void 0 ? void 0 : _b.call(_a, data);
|
|
5744
5752
|
this._sendMicScore(this._micPaused ? 0 : data.out);
|
|
5745
5753
|
}
|
|
5746
|
-
addNewStream(streamId, stream, audioPaused, videoPaused) {
|
|
5754
|
+
addNewStream(streamId, stream, audioPaused, videoPaused, beforeEffectTracks = []) {
|
|
5747
5755
|
if (streamId === "0") {
|
|
5748
5756
|
this._micPaused = audioPaused;
|
|
5749
5757
|
this._webcamPaused = videoPaused;
|
|
@@ -5751,14 +5759,24 @@ class VegaRtcManager {
|
|
|
5751
5759
|
const audioTrack = stream.getAudioTracks()[0];
|
|
5752
5760
|
if (videoTrack) {
|
|
5753
5761
|
this._sendWebcam(videoTrack);
|
|
5754
|
-
if (!videoTrack.
|
|
5755
|
-
this.
|
|
5762
|
+
if (!videoTrack.effectTrack) {
|
|
5763
|
+
this._monitorVideoTrack(videoTrack);
|
|
5764
|
+
}
|
|
5765
|
+
const beforeEffectTrack = beforeEffectTracks.find(t => t.kind === "video");
|
|
5766
|
+
if (beforeEffectTrack) {
|
|
5767
|
+
this._monitorVideoTrack(beforeEffectTrack);
|
|
5756
5768
|
}
|
|
5757
5769
|
}
|
|
5758
5770
|
if (audioTrack) {
|
|
5759
5771
|
this._sendMic(audioTrack);
|
|
5760
5772
|
this._syncMicAnalyser();
|
|
5761
|
-
|
|
5773
|
+
if (!audioTrack.effectTrack) {
|
|
5774
|
+
this._monitorAudioTrack(audioTrack);
|
|
5775
|
+
}
|
|
5776
|
+
const beforeEffectTrack = beforeEffectTracks.find(t => t.kind === "audio");
|
|
5777
|
+
if (beforeEffectTrack) {
|
|
5778
|
+
this._monitorAudioTrack(beforeEffectTrack);
|
|
5779
|
+
}
|
|
5762
5780
|
}
|
|
5763
5781
|
if (this._localStreamDeregisterFunction) {
|
|
5764
5782
|
this._localStreamDeregisterFunction();
|
|
@@ -5846,7 +5864,7 @@ class VegaRtcManager {
|
|
|
5846
5864
|
navigator.mediaDevices.getUserMedia({ video: constraints }).then((stream) => {
|
|
5847
5865
|
const track = stream.getVideoTracks()[0];
|
|
5848
5866
|
localStream.addTrack(track);
|
|
5849
|
-
this.
|
|
5867
|
+
this._monitorVideoTrack(track);
|
|
5850
5868
|
this._emitToPWA(EVENTS.LOCAL_STREAM_TRACK_ADDED, {
|
|
5851
5869
|
streamId: localStream.id,
|
|
5852
5870
|
tracks: [track],
|
|
@@ -5943,17 +5961,21 @@ class VegaRtcManager {
|
|
|
5943
5961
|
rtcStats.server.connect();
|
|
5944
5962
|
}
|
|
5945
5963
|
}
|
|
5946
|
-
|
|
5964
|
+
_monitorAudioTrack(track) {
|
|
5965
|
+
var _a, _b;
|
|
5966
|
+
if (((_a = this._audioTrackBeingMonitored) === null || _a === void 0 ? void 0 : _a.id) === track.id)
|
|
5967
|
+
return;
|
|
5968
|
+
(_b = this._audioTrackBeingMonitored) === null || _b === void 0 ? void 0 : _b.removeEventListener("ended", this._audioTrackOnEnded);
|
|
5947
5969
|
track.addEventListener("ended", this._audioTrackOnEnded);
|
|
5970
|
+
this._audioTrackBeingMonitored = track;
|
|
5948
5971
|
}
|
|
5949
|
-
|
|
5950
|
-
|
|
5951
|
-
|
|
5952
|
-
|
|
5972
|
+
_monitorVideoTrack(track) {
|
|
5973
|
+
var _a, _b;
|
|
5974
|
+
if (((_a = this._videoTrackBeingMonitored) === null || _a === void 0 ? void 0 : _a.id) === track.id)
|
|
5975
|
+
return;
|
|
5976
|
+
(_b = this._videoTrackBeingMonitored) === null || _b === void 0 ? void 0 : _b.removeEventListener("ended", this._videoTrackOnEnded);
|
|
5953
5977
|
track.addEventListener("ended", this._videoTrackOnEnded);
|
|
5954
|
-
|
|
5955
|
-
_stopMonitoringVideoTrack(track) {
|
|
5956
|
-
track.removeEventListener("ended", this._videoTrackOnEnded);
|
|
5978
|
+
this._videoTrackBeingMonitored = track;
|
|
5957
5979
|
}
|
|
5958
5980
|
_onMessage(message) {
|
|
5959
5981
|
return __awaiter(this, void 0, void 0, function* () {
|
package/dist/legacy-esm.js
CHANGED
|
@@ -3527,20 +3527,32 @@ class P2pRtcManager {
|
|
|
3527
3527
|
maybeRestrictRelayBandwidth(session) {
|
|
3528
3528
|
session.maybeRestrictRelayBandwidth();
|
|
3529
3529
|
}
|
|
3530
|
-
addNewStream(streamId, stream) {
|
|
3530
|
+
addNewStream(streamId, stream, audioPaused, videoPaused, beforeEffectTracks = []) {
|
|
3531
3531
|
if (stream === this.localStreams[streamId]) {
|
|
3532
3532
|
return;
|
|
3533
3533
|
}
|
|
3534
3534
|
this._addLocalStream(streamId, stream);
|
|
3535
3535
|
if (streamId === CAMERA_STREAM_ID) {
|
|
3536
3536
|
this._addStreamToPeerConnections(stream);
|
|
3537
|
-
const
|
|
3537
|
+
const audioTrack = stream.getAudioTracks()[0];
|
|
3538
3538
|
const videoTrack = stream.getVideoTracks()[0];
|
|
3539
3539
|
if (audioTrack) {
|
|
3540
|
-
|
|
3540
|
+
if (!audioTrack.effectTrack) {
|
|
3541
|
+
this._monitorAudioTrack(audioTrack);
|
|
3542
|
+
}
|
|
3543
|
+
const beforeEffectTrack = beforeEffectTracks.find((t) => t.kind === "audio");
|
|
3544
|
+
if (beforeEffectTrack) {
|
|
3545
|
+
this._monitorAudioTrack(beforeEffectTrack);
|
|
3546
|
+
}
|
|
3541
3547
|
}
|
|
3542
|
-
if (videoTrack
|
|
3543
|
-
|
|
3548
|
+
if (videoTrack) {
|
|
3549
|
+
if (!videoTrack.effectTrack) {
|
|
3550
|
+
this._monitorVideoTrack(videoTrack);
|
|
3551
|
+
}
|
|
3552
|
+
const beforeEffectTrack = beforeEffectTracks.find((t) => t.kind === "video");
|
|
3553
|
+
if (beforeEffectTrack) {
|
|
3554
|
+
this._monitorVideoTrack(beforeEffectTrack);
|
|
3555
|
+
}
|
|
3544
3556
|
}
|
|
3545
3557
|
if (this._localStreamDeregisterFunction) {
|
|
3546
3558
|
this._localStreamDeregisterFunction();
|
|
@@ -3561,17 +3573,11 @@ class P2pRtcManager {
|
|
|
3561
3573
|
return;
|
|
3562
3574
|
}
|
|
3563
3575
|
replaceTrack(oldTrack, newTrack) {
|
|
3564
|
-
if (
|
|
3565
|
-
this.
|
|
3566
|
-
}
|
|
3567
|
-
if (oldTrack && oldTrack.kind === "video" && !newTrack.replacement) {
|
|
3568
|
-
this._stopMonitoringVideoTrack(oldTrack);
|
|
3576
|
+
if (newTrack.kind === "audio" && !newTrack.effectTrack) {
|
|
3577
|
+
this._monitorAudioTrack(newTrack);
|
|
3569
3578
|
}
|
|
3570
|
-
if (newTrack
|
|
3571
|
-
this.
|
|
3572
|
-
}
|
|
3573
|
-
if (newTrack.kind === "video" && !newTrack.replacement) {
|
|
3574
|
-
this._startMonitoringVideoTrack(newTrack);
|
|
3579
|
+
if (newTrack.kind === "video" && !newTrack.effectTrack) {
|
|
3580
|
+
this._monitorVideoTrack(newTrack);
|
|
3575
3581
|
}
|
|
3576
3582
|
return this._replaceTrackToPeerConnections(oldTrack, newTrack);
|
|
3577
3583
|
}
|
|
@@ -4085,17 +4091,21 @@ class P2pRtcManager {
|
|
|
4085
4091
|
clearTimeout(this._fetchMediaServersTimer);
|
|
4086
4092
|
this._fetchMediaServersTimer = null;
|
|
4087
4093
|
}
|
|
4088
|
-
|
|
4094
|
+
_monitorAudioTrack(track) {
|
|
4095
|
+
var _a, _b;
|
|
4096
|
+
if (((_a = this._audioTrackBeingMonitored) === null || _a === void 0 ? void 0 : _a.id) === track.id)
|
|
4097
|
+
return;
|
|
4098
|
+
(_b = this._audioTrackBeingMonitored) === null || _b === void 0 ? void 0 : _b.removeEventListener("ended", this._audioTrackOnEnded);
|
|
4089
4099
|
track.addEventListener("ended", this._audioTrackOnEnded);
|
|
4100
|
+
this._audioTrackBeingMonitored = track;
|
|
4090
4101
|
}
|
|
4091
|
-
|
|
4092
|
-
|
|
4093
|
-
|
|
4094
|
-
|
|
4102
|
+
_monitorVideoTrack(track) {
|
|
4103
|
+
var _a, _b;
|
|
4104
|
+
if (((_a = this._videoTrackBeingMonitored) === null || _a === void 0 ? void 0 : _a.id) === track.id)
|
|
4105
|
+
return;
|
|
4106
|
+
(_b = this._videoTrackBeingMonitored) === null || _b === void 0 ? void 0 : _b.removeEventListener("ended", this._videoTrackOnEnded);
|
|
4095
4107
|
track.addEventListener("ended", this._videoTrackOnEnded);
|
|
4096
|
-
|
|
4097
|
-
_stopMonitoringVideoTrack(track) {
|
|
4098
|
-
track.removeEventListener("ended", this._videoTrackOnEnded);
|
|
4108
|
+
this._videoTrackBeingMonitored = track;
|
|
4099
4109
|
}
|
|
4100
4110
|
_connect(clientId) {
|
|
4101
4111
|
this.rtcStatsReconnect();
|
|
@@ -4455,7 +4465,9 @@ class P2pRtcManager {
|
|
|
4455
4465
|
return;
|
|
4456
4466
|
}
|
|
4457
4467
|
if (enable === false) {
|
|
4458
|
-
const stopCameraDelay = ((_a = localStream.getVideoTracks().find((t) => !t.enabled)) === null || _a === void 0 ? void 0 : _a.readyState) === "ended"
|
|
4468
|
+
const stopCameraDelay = ((_a = localStream.getVideoTracks().find((t) => !t.enabled)) === null || _a === void 0 ? void 0 : _a.readyState) === "ended"
|
|
4469
|
+
? 0
|
|
4470
|
+
: 5000;
|
|
4459
4471
|
setTimeout(() => {
|
|
4460
4472
|
localStream.getVideoTracks().forEach((track) => {
|
|
4461
4473
|
if (track.enabled === false) {
|
|
@@ -4479,7 +4491,7 @@ class P2pRtcManager {
|
|
|
4479
4491
|
navigator.mediaDevices.getUserMedia({ video: constraints }).then((stream) => {
|
|
4480
4492
|
const track = stream.getVideoTracks()[0];
|
|
4481
4493
|
localStream.addTrack(track);
|
|
4482
|
-
this.
|
|
4494
|
+
this._monitorVideoTrack(track);
|
|
4483
4495
|
this._emit(EVENTS.LOCAL_STREAM_TRACK_ADDED, {
|
|
4484
4496
|
streamId: localStream.id,
|
|
4485
4497
|
tracks: [track],
|
|
@@ -5706,20 +5718,16 @@ class VegaRtcManager {
|
|
|
5706
5718
|
}
|
|
5707
5719
|
}
|
|
5708
5720
|
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
5721
|
if (track.kind === "audio") {
|
|
5716
|
-
|
|
5722
|
+
if (!track.effectTrack) {
|
|
5723
|
+
this._monitorAudioTrack(track);
|
|
5724
|
+
}
|
|
5717
5725
|
this._micTrack = track;
|
|
5718
5726
|
this._replaceMicTrack();
|
|
5719
5727
|
}
|
|
5720
5728
|
if (track.kind === "video") {
|
|
5721
|
-
if (!track.
|
|
5722
|
-
this.
|
|
5729
|
+
if (!track.effectTrack) {
|
|
5730
|
+
this._monitorVideoTrack(track);
|
|
5723
5731
|
}
|
|
5724
5732
|
this._webcamTrack = track;
|
|
5725
5733
|
this._replaceWebcamTrack();
|
|
@@ -5743,7 +5751,7 @@ class VegaRtcManager {
|
|
|
5743
5751
|
(_b = (_a = this._micAnalyserDebugger) === null || _a === void 0 ? void 0 : _a.onScoreUpdated) === null || _b === void 0 ? void 0 : _b.call(_a, data);
|
|
5744
5752
|
this._sendMicScore(this._micPaused ? 0 : data.out);
|
|
5745
5753
|
}
|
|
5746
|
-
addNewStream(streamId, stream, audioPaused, videoPaused) {
|
|
5754
|
+
addNewStream(streamId, stream, audioPaused, videoPaused, beforeEffectTracks = []) {
|
|
5747
5755
|
if (streamId === "0") {
|
|
5748
5756
|
this._micPaused = audioPaused;
|
|
5749
5757
|
this._webcamPaused = videoPaused;
|
|
@@ -5751,14 +5759,24 @@ class VegaRtcManager {
|
|
|
5751
5759
|
const audioTrack = stream.getAudioTracks()[0];
|
|
5752
5760
|
if (videoTrack) {
|
|
5753
5761
|
this._sendWebcam(videoTrack);
|
|
5754
|
-
if (!videoTrack.
|
|
5755
|
-
this.
|
|
5762
|
+
if (!videoTrack.effectTrack) {
|
|
5763
|
+
this._monitorVideoTrack(videoTrack);
|
|
5764
|
+
}
|
|
5765
|
+
const beforeEffectTrack = beforeEffectTracks.find(t => t.kind === "video");
|
|
5766
|
+
if (beforeEffectTrack) {
|
|
5767
|
+
this._monitorVideoTrack(beforeEffectTrack);
|
|
5756
5768
|
}
|
|
5757
5769
|
}
|
|
5758
5770
|
if (audioTrack) {
|
|
5759
5771
|
this._sendMic(audioTrack);
|
|
5760
5772
|
this._syncMicAnalyser();
|
|
5761
|
-
|
|
5773
|
+
if (!audioTrack.effectTrack) {
|
|
5774
|
+
this._monitorAudioTrack(audioTrack);
|
|
5775
|
+
}
|
|
5776
|
+
const beforeEffectTrack = beforeEffectTracks.find(t => t.kind === "audio");
|
|
5777
|
+
if (beforeEffectTrack) {
|
|
5778
|
+
this._monitorAudioTrack(beforeEffectTrack);
|
|
5779
|
+
}
|
|
5762
5780
|
}
|
|
5763
5781
|
if (this._localStreamDeregisterFunction) {
|
|
5764
5782
|
this._localStreamDeregisterFunction();
|
|
@@ -5846,7 +5864,7 @@ class VegaRtcManager {
|
|
|
5846
5864
|
navigator.mediaDevices.getUserMedia({ video: constraints }).then((stream) => {
|
|
5847
5865
|
const track = stream.getVideoTracks()[0];
|
|
5848
5866
|
localStream.addTrack(track);
|
|
5849
|
-
this.
|
|
5867
|
+
this._monitorVideoTrack(track);
|
|
5850
5868
|
this._emitToPWA(EVENTS.LOCAL_STREAM_TRACK_ADDED, {
|
|
5851
5869
|
streamId: localStream.id,
|
|
5852
5870
|
tracks: [track],
|
|
@@ -5943,17 +5961,21 @@ class VegaRtcManager {
|
|
|
5943
5961
|
rtcStats.server.connect();
|
|
5944
5962
|
}
|
|
5945
5963
|
}
|
|
5946
|
-
|
|
5964
|
+
_monitorAudioTrack(track) {
|
|
5965
|
+
var _a, _b;
|
|
5966
|
+
if (((_a = this._audioTrackBeingMonitored) === null || _a === void 0 ? void 0 : _a.id) === track.id)
|
|
5967
|
+
return;
|
|
5968
|
+
(_b = this._audioTrackBeingMonitored) === null || _b === void 0 ? void 0 : _b.removeEventListener("ended", this._audioTrackOnEnded);
|
|
5947
5969
|
track.addEventListener("ended", this._audioTrackOnEnded);
|
|
5970
|
+
this._audioTrackBeingMonitored = track;
|
|
5948
5971
|
}
|
|
5949
|
-
|
|
5950
|
-
|
|
5951
|
-
|
|
5952
|
-
|
|
5972
|
+
_monitorVideoTrack(track) {
|
|
5973
|
+
var _a, _b;
|
|
5974
|
+
if (((_a = this._videoTrackBeingMonitored) === null || _a === void 0 ? void 0 : _a.id) === track.id)
|
|
5975
|
+
return;
|
|
5976
|
+
(_b = this._videoTrackBeingMonitored) === null || _b === void 0 ? void 0 : _b.removeEventListener("ended", this._videoTrackOnEnded);
|
|
5953
5977
|
track.addEventListener("ended", this._videoTrackOnEnded);
|
|
5954
|
-
|
|
5955
|
-
_stopMonitoringVideoTrack(track) {
|
|
5956
|
-
track.removeEventListener("ended", this._videoTrackOnEnded);
|
|
5978
|
+
this._videoTrackBeingMonitored = track;
|
|
5957
5979
|
}
|
|
5958
5980
|
_onMessage(message) {
|
|
5959
5981
|
return __awaiter(this, void 0, void 0, function* () {
|