livekit-client 0.15.2 → 0.15.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/SignalClient.d.ts +6 -1
- package/dist/api/SignalClient.js +23 -1
- package/dist/api/SignalClient.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/dist/proto/livekit_models.d.ts +3 -0
- package/dist/proto/livekit_models.js +44 -3
- package/dist/proto/livekit_models.js.map +1 -1
- package/dist/proto/livekit_rtc.d.ts +33 -0
- package/dist/proto/livekit_rtc.js +238 -1
- package/dist/proto/livekit_rtc.js.map +1 -1
- package/dist/room/PCTransport.js +4 -0
- package/dist/room/PCTransport.js.map +1 -1
- package/dist/room/RTCEngine.js +5 -3
- package/dist/room/RTCEngine.js.map +1 -1
- package/dist/room/Room.d.ts +8 -0
- package/dist/room/Room.js +97 -6
- package/dist/room/Room.js.map +1 -1
- package/dist/room/events.d.ts +38 -18
- package/dist/room/events.js +37 -17
- package/dist/room/events.js.map +1 -1
- package/dist/room/participant/LocalParticipant.d.ts +24 -2
- package/dist/room/participant/LocalParticipant.js +41 -15
- package/dist/room/participant/LocalParticipant.js.map +1 -1
- package/dist/room/participant/Participant.d.ts +1 -1
- package/dist/room/participant/ParticipantTrackPermission.d.ts +19 -0
- package/dist/room/participant/ParticipantTrackPermission.js +16 -0
- package/dist/room/participant/ParticipantTrackPermission.js.map +1 -0
- package/dist/room/participant/RemoteParticipant.d.ts +2 -2
- package/dist/room/participant/RemoteParticipant.js +8 -14
- package/dist/room/participant/RemoteParticipant.js.map +1 -1
- package/dist/room/track/LocalTrack.d.ts +0 -3
- package/dist/room/track/LocalTrack.js +1 -6
- package/dist/room/track/LocalTrack.js.map +1 -1
- package/dist/room/track/LocalTrackPublication.d.ts +3 -1
- package/dist/room/track/LocalTrackPublication.js +15 -5
- package/dist/room/track/LocalTrackPublication.js.map +1 -1
- package/dist/room/track/LocalVideoTrack.js +2 -0
- package/dist/room/track/LocalVideoTrack.js.map +1 -1
- package/dist/room/track/RemoteAudioTrack.d.ts +5 -14
- package/dist/room/track/RemoteAudioTrack.js +7 -32
- package/dist/room/track/RemoteAudioTrack.js.map +1 -1
- package/dist/room/track/RemoteTrack.d.ts +14 -0
- package/dist/room/track/RemoteTrack.js +47 -0
- package/dist/room/track/RemoteTrack.js.map +1 -0
- package/dist/room/track/RemoteTrackPublication.d.ts +8 -1
- package/dist/room/track/RemoteTrackPublication.js +29 -5
- package/dist/room/track/RemoteTrackPublication.js.map +1 -1
- package/dist/room/track/RemoteVideoTrack.d.ts +3 -9
- package/dist/room/track/RemoteVideoTrack.js +8 -29
- package/dist/room/track/RemoteVideoTrack.js.map +1 -1
- package/dist/room/track/Track.d.ts +3 -0
- package/dist/room/track/Track.js +5 -0
- package/dist/room/track/Track.js.map +1 -1
- package/dist/room/track/TrackPublication.d.ts +12 -1
- package/dist/room/track/TrackPublication.js +23 -7
- package/dist/room/track/TrackPublication.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/example/index.html +8 -9
- package/example/sample.ts +30 -19
- package/package.json +1 -1
@@ -8,12 +8,17 @@ const livekit_models_1 = require("../../proto/livekit_models");
|
|
8
8
|
const livekit_rtc_1 = require("../../proto/livekit_rtc");
|
9
9
|
const events_1 = require("../events");
|
10
10
|
const RemoteVideoTrack_1 = __importDefault(require("./RemoteVideoTrack"));
|
11
|
-
const TrackPublication_1 =
|
12
|
-
class RemoteTrackPublication extends TrackPublication_1.
|
11
|
+
const TrackPublication_1 = require("./TrackPublication");
|
12
|
+
class RemoteTrackPublication extends TrackPublication_1.TrackPublication {
|
13
13
|
constructor() {
|
14
14
|
super(...arguments);
|
15
|
+
/** @internal */
|
16
|
+
this._allowed = true;
|
15
17
|
this.disabled = false;
|
16
18
|
this.currentVideoQuality = livekit_models_1.VideoQuality.HIGH;
|
19
|
+
this.handleEnded = (track) => {
|
20
|
+
this.emit(events_1.TrackEvent.Ended, track);
|
21
|
+
};
|
17
22
|
this.handleVisibilityChange = (visible) => {
|
18
23
|
logger_1.default.debug('adaptivestream video visibility', this.trackSid, `visible=${visible}`);
|
19
24
|
this.disabled = !visible;
|
@@ -38,10 +43,25 @@ class RemoteTrackPublication extends TrackPublication_1.default {
|
|
38
43
|
};
|
39
44
|
this.emit(events_1.TrackEvent.UpdateSubscription, sub);
|
40
45
|
}
|
46
|
+
get subscriptionStatus() {
|
47
|
+
if (this.subscribed === false || !super.isSubscribed) {
|
48
|
+
return TrackPublication_1.TrackPublication.SubscriptionStatus.Unsubscribed;
|
49
|
+
}
|
50
|
+
if (!this._allowed) {
|
51
|
+
return TrackPublication_1.TrackPublication.SubscriptionStatus.NotAllowed;
|
52
|
+
}
|
53
|
+
return TrackPublication_1.TrackPublication.SubscriptionStatus.Subscribed;
|
54
|
+
}
|
55
|
+
/**
|
56
|
+
* Returns true if track is subscribed, and ready for playback
|
57
|
+
*/
|
41
58
|
get isSubscribed() {
|
42
59
|
if (this.subscribed === false) {
|
43
60
|
return false;
|
44
61
|
}
|
62
|
+
if (!this._allowed) {
|
63
|
+
return false;
|
64
|
+
}
|
45
65
|
return super.isSubscribed;
|
46
66
|
}
|
47
67
|
get isEnabled() {
|
@@ -97,15 +117,19 @@ class RemoteTrackPublication extends TrackPublication_1.default {
|
|
97
117
|
return this.currentVideoQuality;
|
98
118
|
}
|
99
119
|
setTrack(track) {
|
100
|
-
var _a, _b;
|
101
120
|
if (this.track) {
|
102
121
|
// unregister listener
|
103
122
|
this.track.off(events_1.TrackEvent.VideoDimensionsChanged, this.handleVideoDimensionsChange);
|
104
123
|
this.track.off(events_1.TrackEvent.VisibilityChanged, this.handleVisibilityChange);
|
124
|
+
this.track.off(events_1.TrackEvent.Ended, this.handleEnded);
|
105
125
|
}
|
106
126
|
super.setTrack(track);
|
107
|
-
(
|
108
|
-
|
127
|
+
if (track) {
|
128
|
+
track.sid = this.trackSid;
|
129
|
+
track.on(events_1.TrackEvent.VideoDimensionsChanged, this.handleVideoDimensionsChange);
|
130
|
+
track.on(events_1.TrackEvent.VisibilityChanged, this.handleVisibilityChange);
|
131
|
+
track.on(events_1.TrackEvent.Ended, this.handleEnded);
|
132
|
+
}
|
109
133
|
}
|
110
134
|
/** @internal */
|
111
135
|
updateInfo(info) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"RemoteTrackPublication.js","sourceRoot":"","sources":["../../../src/room/track/RemoteTrackPublication.ts"],"names":[],"mappings":";;;;;AAAA,0DAA+B;AAC/B,+DAAqE;AACrE,yDAGiC;AACjC,sCAAuC;AACvC,0EAAkD;AAElD,
|
1
|
+
{"version":3,"file":"RemoteTrackPublication.js","sourceRoot":"","sources":["../../../src/room/track/RemoteTrackPublication.ts"],"names":[],"mappings":"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"}
|
@@ -1,5 +1,5 @@
|
|
1
|
-
import
|
2
|
-
export default class RemoteVideoTrack extends
|
1
|
+
import RemoteTrack from './RemoteTrack';
|
2
|
+
export default class RemoteVideoTrack extends RemoteTrack {
|
3
3
|
/** @internal */
|
4
4
|
receiver?: RTCRtpReceiver;
|
5
5
|
private prevStats?;
|
@@ -7,21 +7,15 @@ export default class RemoteVideoTrack extends Track {
|
|
7
7
|
private adaptiveStream?;
|
8
8
|
private lastVisible?;
|
9
9
|
private lastDimensions?;
|
10
|
-
private _currentBitrate;
|
11
10
|
constructor(mediaTrack: MediaStreamTrack, sid: string, receiver?: RTCRtpReceiver, adaptiveStream?: boolean);
|
12
11
|
get isAdaptiveStream(): boolean;
|
13
|
-
/** current receive bits per second */
|
14
|
-
get currentBitrate(): number;
|
15
12
|
/** @internal */
|
16
13
|
setMuted(muted: boolean): void;
|
17
14
|
attach(): HTMLMediaElement;
|
18
15
|
attach(element: HTMLMediaElement): HTMLMediaElement;
|
19
16
|
detach(): HTMLMediaElement[];
|
20
17
|
detach(element: HTMLMediaElement): HTMLMediaElement;
|
21
|
-
|
22
|
-
stop(): void;
|
23
|
-
startMonitor(): void;
|
24
|
-
private monitorReceiver;
|
18
|
+
protected monitorReceiver: () => Promise<void>;
|
25
19
|
private getReceiverStats;
|
26
20
|
private stopObservingElement;
|
27
21
|
private handleVisibilityChanged;
|
@@ -8,25 +8,28 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
9
9
|
});
|
10
10
|
};
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
13
|
+
};
|
11
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
12
15
|
const ts_debounce_1 = require("ts-debounce");
|
13
16
|
const events_1 = require("../events");
|
14
17
|
const stats_1 = require("../stats");
|
15
18
|
const utils_1 = require("../utils");
|
19
|
+
const RemoteTrack_1 = __importDefault(require("./RemoteTrack"));
|
16
20
|
const Track_1 = require("./Track");
|
17
21
|
const REACTION_DELAY = 100;
|
18
|
-
class RemoteVideoTrack extends
|
22
|
+
class RemoteVideoTrack extends RemoteTrack_1.default {
|
19
23
|
constructor(mediaTrack, sid, receiver, adaptiveStream) {
|
20
|
-
super(mediaTrack, Track_1.Track.Kind.Video);
|
24
|
+
super(mediaTrack, sid, Track_1.Track.Kind.Video, receiver);
|
21
25
|
this.elementInfos = [];
|
22
|
-
this._currentBitrate = 0;
|
23
26
|
this.monitorReceiver = () => __awaiter(this, void 0, void 0, function* () {
|
24
27
|
if (!this.receiver) {
|
25
28
|
this._currentBitrate = 0;
|
26
29
|
return;
|
27
30
|
}
|
28
31
|
const stats = yield this.getReceiverStats();
|
29
|
-
if (stats && this.prevStats) {
|
32
|
+
if (stats && this.prevStats && this.receiver) {
|
30
33
|
this._currentBitrate = stats_1.computeBitrate(stats, this.prevStats);
|
31
34
|
}
|
32
35
|
this.prevStats = stats;
|
@@ -46,25 +49,15 @@ class RemoteVideoTrack extends Track_1.Track {
|
|
46
49
|
this.debouncedHandleResize = ts_debounce_1.debounce(() => {
|
47
50
|
this.updateDimensions();
|
48
51
|
}, REACTION_DELAY);
|
49
|
-
// override id to parsed ID
|
50
|
-
this.sid = sid;
|
51
|
-
this.receiver = receiver;
|
52
52
|
this.adaptiveStream = adaptiveStream;
|
53
53
|
}
|
54
54
|
get isAdaptiveStream() {
|
55
55
|
var _a;
|
56
56
|
return (_a = this.adaptiveStream) !== null && _a !== void 0 ? _a : false;
|
57
57
|
}
|
58
|
-
/** current receive bits per second */
|
59
|
-
get currentBitrate() {
|
60
|
-
return this._currentBitrate;
|
61
|
-
}
|
62
58
|
/** @internal */
|
63
59
|
setMuted(muted) {
|
64
|
-
|
65
|
-
this.isMuted = muted;
|
66
|
-
this.emit(muted ? events_1.TrackEvent.Muted : events_1.TrackEvent.Unmuted, this);
|
67
|
-
}
|
60
|
+
super.setMuted(muted);
|
68
61
|
this.attachedElements.forEach((element) => {
|
69
62
|
// detach or attach
|
70
63
|
if (muted) {
|
@@ -108,20 +101,6 @@ class RemoteVideoTrack extends Track_1.Track {
|
|
108
101
|
}
|
109
102
|
return detachedElements;
|
110
103
|
}
|
111
|
-
start() {
|
112
|
-
// use `enabled` of track to enable re-use of transceiver
|
113
|
-
super.enable();
|
114
|
-
}
|
115
|
-
stop() {
|
116
|
-
// use `enabled` of track to enable re-use of transceiver
|
117
|
-
super.disable();
|
118
|
-
}
|
119
|
-
/* @internal */
|
120
|
-
startMonitor() {
|
121
|
-
setTimeout(() => {
|
122
|
-
this.monitorReceiver();
|
123
|
-
}, stats_1.monitorFrequency);
|
124
|
-
}
|
125
104
|
getReceiverStats() {
|
126
105
|
return __awaiter(this, void 0, void 0, function* () {
|
127
106
|
if (!this.receiver) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"RemoteVideoTrack.js","sourceRoot":"","sources":["../../../src/room/track/RemoteVideoTrack.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"RemoteVideoTrack.js","sourceRoot":"","sources":["../../../src/room/track/RemoteVideoTrack.ts"],"names":[],"mappings":"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"}
|
@@ -13,7 +13,10 @@ export declare class Track extends EventEmitter {
|
|
13
13
|
* sid is set after track is published to server, or if it's a remote track
|
14
14
|
*/
|
15
15
|
sid?: Track.SID;
|
16
|
+
protected _currentBitrate: number;
|
16
17
|
protected constructor(mediaTrack: MediaStreamTrack, kind: Track.Kind);
|
18
|
+
/** current receive bits per second */
|
19
|
+
get currentBitrate(): number;
|
17
20
|
/**
|
18
21
|
* creates a new HTMLAudioElement or HTMLVideoElement, attaches to it, and returns it
|
19
22
|
*/
|
package/dist/room/track/Track.js
CHANGED
@@ -15,10 +15,15 @@ class Track extends events_1.EventEmitter {
|
|
15
15
|
this.attachedElements = [];
|
16
16
|
this.isMuted = false;
|
17
17
|
this.streamState = Track.StreamState.Active;
|
18
|
+
this._currentBitrate = 0;
|
18
19
|
this.kind = kind;
|
19
20
|
this.mediaStreamTrack = mediaTrack;
|
20
21
|
this.source = Track.Source.Unknown;
|
21
22
|
}
|
23
|
+
/** current receive bits per second */
|
24
|
+
get currentBitrate() {
|
25
|
+
return this._currentBitrate;
|
26
|
+
}
|
22
27
|
attach(element) {
|
23
28
|
let elementType = 'audio';
|
24
29
|
if (this.kind === Track.Kind.Video) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Track.js","sourceRoot":"","sources":["../../../src/room/track/Track.ts"],"names":[],"mappings":";;;AAAA,mCAAsC;AACtC,+DAAoE;AACpE,yDAA0E;AAC1E,sCAAuC;AACvC,oCAAqC;AAErC,2EAA2E;AAC3E,sEAAsE;AACtE,MAAM,gBAAgB,GAA4B,EAAE,CAAC;AAErD,MAAa,KAAM,SAAQ,qBAAY;
|
1
|
+
{"version":3,"file":"Track.js","sourceRoot":"","sources":["../../../src/room/track/Track.ts"],"names":[],"mappings":"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"}
|
@@ -6,7 +6,7 @@ import LocalVideoTrack from './LocalVideoTrack';
|
|
6
6
|
import RemoteAudioTrack from './RemoteAudioTrack';
|
7
7
|
import RemoteVideoTrack from './RemoteVideoTrack';
|
8
8
|
import { Track } from './Track';
|
9
|
-
export
|
9
|
+
export declare class TrackPublication extends EventEmitter {
|
10
10
|
kind: Track.Kind;
|
11
11
|
trackName: string;
|
12
12
|
trackSid: Track.SID;
|
@@ -18,6 +18,8 @@ export default class TrackPublication extends EventEmitter {
|
|
18
18
|
dimensions?: Track.Dimensions;
|
19
19
|
/** true if track was simulcasted to server, video-only */
|
20
20
|
simulcasted?: boolean;
|
21
|
+
/** @internal */
|
22
|
+
trackInfo?: TrackInfo;
|
21
23
|
protected metadataMuted: boolean;
|
22
24
|
constructor(kind: Track.Kind, id: string, name: string);
|
23
25
|
/** @internal */
|
@@ -33,6 +35,15 @@ export default class TrackPublication extends EventEmitter {
|
|
33
35
|
* an [VideoTrack] if this publication holds a video track
|
34
36
|
*/
|
35
37
|
get videoTrack(): LocalVideoTrack | RemoteVideoTrack | undefined;
|
38
|
+
handleMuted: () => void;
|
39
|
+
handleUnmuted: () => void;
|
36
40
|
/** @internal */
|
37
41
|
updateInfo(info: TrackInfo): void;
|
38
42
|
}
|
43
|
+
export declare namespace TrackPublication {
|
44
|
+
enum SubscriptionStatus {
|
45
|
+
Subscribed = "subscribed",
|
46
|
+
NotAllowed = "not_allowed",
|
47
|
+
Unsubscribed = "unsubscribed"
|
48
|
+
}
|
49
|
+
}
|
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
4
|
};
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
exports.TrackPublication = void 0;
|
6
7
|
const events_1 = require("events");
|
7
8
|
const events_2 = require("../events");
|
8
9
|
const LocalAudioTrack_1 = __importDefault(require("./LocalAudioTrack"));
|
@@ -14,6 +15,12 @@ class TrackPublication extends events_1.EventEmitter {
|
|
14
15
|
constructor(kind, id, name) {
|
15
16
|
super();
|
16
17
|
this.metadataMuted = false;
|
18
|
+
this.handleMuted = () => {
|
19
|
+
this.emit(events_2.TrackEvent.Muted);
|
20
|
+
};
|
21
|
+
this.handleUnmuted = () => {
|
22
|
+
this.emit(events_2.TrackEvent.Unmuted);
|
23
|
+
};
|
17
24
|
this.kind = kind;
|
18
25
|
this.trackSid = id;
|
19
26
|
this.trackName = name;
|
@@ -21,15 +28,15 @@ class TrackPublication extends events_1.EventEmitter {
|
|
21
28
|
}
|
22
29
|
/** @internal */
|
23
30
|
setTrack(track) {
|
31
|
+
if (this.track) {
|
32
|
+
this.track.off(events_2.TrackEvent.Muted, this.handleMuted);
|
33
|
+
this.track.off(events_2.TrackEvent.Unmuted, this.handleUnmuted);
|
34
|
+
}
|
24
35
|
this.track = track;
|
25
36
|
if (track) {
|
26
37
|
// forward events
|
27
|
-
track.on(events_2.TrackEvent.Muted,
|
28
|
-
|
29
|
-
});
|
30
|
-
track.on(events_2.TrackEvent.Unmuted, () => {
|
31
|
-
this.emit(events_2.TrackEvent.Unmuted);
|
32
|
-
});
|
38
|
+
track.on(events_2.TrackEvent.Muted, this.handleMuted);
|
39
|
+
track.on(events_2.TrackEvent.Unmuted, this.handleUnmuted);
|
33
40
|
}
|
34
41
|
}
|
35
42
|
get isMuted() {
|
@@ -70,7 +77,16 @@ class TrackPublication extends events_1.EventEmitter {
|
|
70
77
|
};
|
71
78
|
this.simulcasted = info.simulcast;
|
72
79
|
}
|
80
|
+
this.trackInfo = info;
|
73
81
|
}
|
74
82
|
}
|
75
|
-
exports.
|
83
|
+
exports.TrackPublication = TrackPublication;
|
84
|
+
(function (TrackPublication) {
|
85
|
+
let SubscriptionStatus;
|
86
|
+
(function (SubscriptionStatus) {
|
87
|
+
SubscriptionStatus["Subscribed"] = "subscribed";
|
88
|
+
SubscriptionStatus["NotAllowed"] = "not_allowed";
|
89
|
+
SubscriptionStatus["Unsubscribed"] = "unsubscribed";
|
90
|
+
})(SubscriptionStatus = TrackPublication.SubscriptionStatus || (TrackPublication.SubscriptionStatus = {}));
|
91
|
+
})(TrackPublication = exports.TrackPublication || (exports.TrackPublication = {}));
|
76
92
|
//# sourceMappingURL=TrackPublication.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"TrackPublication.js","sourceRoot":"","sources":["../../../src/room/track/TrackPublication.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"TrackPublication.js","sourceRoot":"","sources":["../../../src/room/track/TrackPublication.ts"],"names":[],"mappings":"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"}
|
package/dist/version.d.ts
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
export declare const version = "0.15.
|
1
|
+
export declare const version = "0.15.3";
|
2
2
|
export declare const protocolVersion = 5;
|
package/dist/version.js
CHANGED
package/example/index.html
CHANGED
@@ -151,15 +151,14 @@
|
|
151
151
|
>
|
152
152
|
Share Screen
|
153
153
|
</button>
|
154
|
-
<
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
</button>
|
154
|
+
<select id="simulate-scenario" class="custom-select" style="width: auto;" onchange="appActions.handleScenario(event)">
|
155
|
+
<option value="" selected>Simulate</option>
|
156
|
+
<option value="signal-reconnect">Signal reconnect</option>
|
157
|
+
<option value="speaker">Speaker update</option>
|
158
|
+
<option value="node-failure">Node failure</option>
|
159
|
+
<option value="server-leave">Server booted</option>
|
160
|
+
<option value="migration">Migration</option>
|
161
|
+
</select>
|
163
162
|
<button
|
164
163
|
id="disconnect-room-button"
|
165
164
|
class="btn btn-danger mt-1"
|
package/example/sample.ts
CHANGED
@@ -1,11 +1,7 @@
|
|
1
1
|
import {
|
2
|
-
DataPacket_Kind, LocalParticipant,
|
3
|
-
|
4
|
-
|
5
|
-
Participant,
|
6
|
-
ParticipantEvent,
|
7
|
-
RemoteAudioTrack,
|
8
|
-
RemoteParticipant, RemoteVideoTrack, Room, RoomConnectOptions, RoomEvent,
|
2
|
+
DataPacket_Kind, LocalParticipant, MediaDeviceFailure,
|
3
|
+
Participant, ParticipantEvent, RemoteParticipant, Room,
|
4
|
+
RoomConnectOptions, RoomEvent,
|
9
5
|
RoomOptions, RoomState, setLogLevel, Track, TrackPublication,
|
10
6
|
VideoCaptureOptions, VideoPresets,
|
11
7
|
} from '../src/index';
|
@@ -107,7 +103,10 @@ const appActions = {
|
|
107
103
|
});
|
108
104
|
|
109
105
|
try {
|
106
|
+
const start = Date.now();
|
110
107
|
await room.connect(url, token, connectOptions);
|
108
|
+
const elapsed = Date.now() - start;
|
109
|
+
appendLog(`successfully connected to ${room.name} in ${Math.round(elapsed)}ms`);
|
111
110
|
} catch (error) {
|
112
111
|
let message: any = error;
|
113
112
|
if (error.message) {
|
@@ -116,13 +115,10 @@ const appActions = {
|
|
116
115
|
appendLog('could not connect:', message);
|
117
116
|
return;
|
118
117
|
}
|
119
|
-
|
120
|
-
appendLog('connected to room', room.name);
|
121
118
|
currentRoom = room;
|
122
119
|
window.currentRoom = room;
|
123
120
|
setButtonsForState(true);
|
124
121
|
|
125
|
-
appendLog('room participants', room.participants.keys());
|
126
122
|
room.participants.forEach((participant) => {
|
127
123
|
participantConnected(participant);
|
128
124
|
});
|
@@ -211,6 +207,18 @@ const appActions = {
|
|
211
207
|
}
|
212
208
|
},
|
213
209
|
|
210
|
+
handleScenario: (e: Event) => {
|
211
|
+
const scenario = (<HTMLSelectElement>e.target).value;
|
212
|
+
if (scenario !== '') {
|
213
|
+
if (scenario === 'signal-reconnect') {
|
214
|
+
appActions.disconnectSignal();
|
215
|
+
} else {
|
216
|
+
currentRoom?.simulateScenario(scenario);
|
217
|
+
}
|
218
|
+
(<HTMLSelectElement>e.target).value = '';
|
219
|
+
}
|
220
|
+
},
|
221
|
+
|
214
222
|
disconnectSignal: () => {
|
215
223
|
if (!currentRoom) return;
|
216
224
|
currentRoom.engine.client.close();
|
@@ -404,18 +412,22 @@ function renderParticipant(participant: Participant, remove: boolean = false) {
|
|
404
412
|
} else if (!cameraPub?.videoTrack?.attachedElements.includes(videoElm)) {
|
405
413
|
const startTime = Date.now();
|
406
414
|
// measure time to render
|
407
|
-
videoElm.
|
415
|
+
videoElm.onloadeddata = () => {
|
408
416
|
const elapsed = Date.now() - startTime;
|
409
417
|
appendLog(`RemoteVideoTrack ${cameraPub?.trackSid} rendered in ${elapsed}ms`);
|
410
|
-
}
|
418
|
+
};
|
411
419
|
}
|
412
420
|
cameraPub?.videoTrack?.attach(videoElm);
|
413
|
-
} else if (cameraPub?.videoTrack) {
|
414
|
-
// detach manually whenever possible
|
415
|
-
cameraPub.videoTrack?.detach(videoElm);
|
416
421
|
} else {
|
417
|
-
|
418
|
-
|
422
|
+
// clear information display
|
423
|
+
$(`size-${participant.sid}`)!.innerHTML = '';
|
424
|
+
if (cameraPub?.videoTrack) {
|
425
|
+
// detach manually whenever possible
|
426
|
+
cameraPub.videoTrack?.detach(videoElm);
|
427
|
+
} else {
|
428
|
+
videoElm.src = '';
|
429
|
+
videoElm.srcObject = null;
|
430
|
+
}
|
419
431
|
}
|
420
432
|
|
421
433
|
const micEnabled = micPub && micPub.isSubscribed && !micPub.isMuted;
|
@@ -494,8 +506,7 @@ function renderBitrate() {
|
|
494
506
|
const elm = $(`bitrate-${p.sid}`);
|
495
507
|
let totalBitrate = 0;
|
496
508
|
for (const t of p.tracks.values()) {
|
497
|
-
if (t.track
|
498
|
-
|| t.track instanceof LocalTrack) {
|
509
|
+
if (t.track) {
|
499
510
|
totalBitrate += t.track.currentBitrate;
|
500
511
|
}
|
501
512
|
}
|