livekit-client 0.14.3 → 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/.github/workflows/{lint.yaml → test.yaml} +7 -4
- package/.gitmodules +3 -0
- package/README.md +46 -14
- package/dist/api/SignalClient.d.ts +12 -32
- package/dist/api/SignalClient.js +59 -8
- package/dist/api/SignalClient.js.map +1 -1
- package/dist/connect.d.ts +1 -1
- package/dist/connect.js +71 -73
- package/dist/connect.js.map +1 -1
- package/dist/index.d.ts +6 -4
- package/dist/index.js +8 -5
- package/dist/index.js.map +1 -1
- package/dist/logger.d.ts +10 -0
- package/dist/logger.js +15 -0
- package/dist/logger.js.map +1 -1
- package/dist/options.d.ts +83 -19
- package/dist/options.js +0 -10
- package/dist/options.js.map +1 -1
- package/dist/proto/livekit_models.d.ts +45 -1
- package/dist/proto/livekit_models.js +333 -4
- package/dist/proto/livekit_models.js.map +1 -1
- package/dist/proto/livekit_rtc.d.ts +148 -7
- package/dist/proto/livekit_rtc.js +1047 -30
- 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.d.ts +4 -2
- package/dist/room/RTCEngine.js +36 -38
- package/dist/room/RTCEngine.js.map +1 -1
- package/dist/room/Room.d.ts +23 -17
- package/dist/room/Room.js +205 -71
- package/dist/room/Room.js.map +1 -1
- package/dist/room/events.d.ts +143 -14
- package/dist/room/events.js +142 -13
- package/dist/room/events.js.map +1 -1
- package/dist/room/participant/LocalParticipant.d.ts +53 -13
- package/dist/room/participant/LocalParticipant.js +244 -169
- package/dist/room/participant/LocalParticipant.js.map +1 -1
- package/dist/room/participant/Participant.d.ts +3 -1
- package/dist/room/participant/Participant.js +3 -1
- package/dist/room/participant/Participant.js.map +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 +10 -15
- package/dist/room/participant/RemoteParticipant.js.map +1 -1
- package/dist/room/participant/publishUtils.d.ts +11 -0
- package/dist/room/participant/publishUtils.js +148 -0
- package/dist/room/participant/publishUtils.js.map +1 -0
- package/dist/room/participant/publishUtils.test.d.ts +1 -0
- package/dist/room/participant/publishUtils.test.js +79 -0
- package/dist/room/participant/publishUtils.test.js.map +1 -0
- package/dist/room/stats.d.ts +21 -6
- package/dist/room/stats.js +22 -1
- package/dist/room/stats.js.map +1 -1
- package/dist/room/track/LocalAudioTrack.d.ts +8 -3
- package/dist/room/track/LocalAudioTrack.js +49 -3
- package/dist/room/track/LocalAudioTrack.js.map +1 -1
- package/dist/room/track/LocalTrack.d.ts +1 -3
- package/dist/room/track/LocalTrack.js +3 -50
- 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.d.ts +14 -5
- package/dist/room/track/LocalVideoTrack.js +156 -62
- package/dist/room/track/LocalVideoTrack.js.map +1 -1
- package/dist/room/track/LocalVideoTrack.test.d.ts +1 -0
- package/dist/room/track/LocalVideoTrack.test.js +68 -0
- package/dist/room/track/LocalVideoTrack.test.js.map +1 -0
- package/dist/room/track/RemoteAudioTrack.d.ts +6 -8
- package/dist/room/track/RemoteAudioTrack.js +55 -19
- 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 +10 -4
- package/dist/room/track/RemoteTrackPublication.js +41 -15
- package/dist/room/track/RemoteTrackPublication.js.map +1 -1
- package/dist/room/track/RemoteVideoTrack.d.ts +7 -9
- package/dist/room/track/RemoteVideoTrack.js +77 -41
- package/dist/room/track/RemoteVideoTrack.js.map +1 -1
- package/dist/room/track/Track.d.ts +13 -2
- package/dist/room/track/Track.js +34 -2
- package/dist/room/track/Track.js.map +1 -1
- package/dist/room/track/TrackPublication.d.ts +14 -1
- package/dist/room/track/TrackPublication.js +24 -7
- package/dist/room/track/TrackPublication.js.map +1 -1
- package/dist/room/track/create.d.ts +4 -6
- package/dist/room/track/create.js +10 -57
- package/dist/room/track/create.js.map +1 -1
- package/dist/room/track/defaults.d.ts +4 -0
- package/dist/room/track/defaults.js +21 -0
- package/dist/room/track/defaults.js.map +1 -0
- package/dist/room/track/options.d.ts +15 -65
- package/dist/room/track/options.js +14 -13
- package/dist/room/track/options.js.map +1 -1
- package/dist/room/track/utils.d.ts +3 -0
- package/dist/room/track/utils.js +68 -0
- package/dist/room/track/utils.js.map +1 -0
- package/dist/room/track/utils.test.d.ts +1 -0
- package/dist/room/track/utils.test.js +85 -0
- package/dist/room/track/utils.test.js.map +1 -0
- package/dist/room/utils.d.ts +1 -1
- package/dist/room/utils.js +5 -6
- package/dist/room/utils.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/example/index.html +193 -178
- package/example/sample.ts +467 -327
- package/example/styles.css +144 -0
- package/example/webpack.config.js +1 -1
- package/jest.config.js +6 -0
- package/package.json +9 -6
- package/tsconfig.eslint.json +8 -1
- package/dist/room/defaults.d.ts +0 -5
- package/dist/room/defaults.js +0 -32
- package/dist/room/defaults.js.map +0 -1
@@ -1,4 +1,23 @@
|
|
1
1
|
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
5
|
+
}) : (function(o, m, k, k2) {
|
6
|
+
if (k2 === undefined) k2 = k;
|
7
|
+
o[k2] = m[k];
|
8
|
+
}));
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
11
|
+
}) : function(o, v) {
|
12
|
+
o["default"] = v;
|
13
|
+
});
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
15
|
+
if (mod && mod.__esModule) return mod;
|
16
|
+
var result = {};
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
18
|
+
__setModuleDefault(result, mod);
|
19
|
+
return result;
|
20
|
+
};
|
2
21
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
3
22
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
4
23
|
return new (P || (P = Promise))(function (resolve, reject) {
|
@@ -14,22 +33,22 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
33
|
Object.defineProperty(exports, "__esModule", { value: true });
|
15
34
|
const logger_1 = __importDefault(require("../../logger"));
|
16
35
|
const livekit_rtc_1 = require("../../proto/livekit_rtc");
|
17
|
-
const defaults_1 = require("../defaults");
|
18
36
|
const errors_1 = require("../errors");
|
19
37
|
const events_1 = require("../events");
|
20
|
-
const create_1 = require("../track/create");
|
21
38
|
const LocalAudioTrack_1 = __importDefault(require("../track/LocalAudioTrack"));
|
22
39
|
const LocalTrackPublication_1 = __importDefault(require("../track/LocalTrackPublication"));
|
23
|
-
const LocalVideoTrack_1 =
|
40
|
+
const LocalVideoTrack_1 = __importStar(require("../track/LocalVideoTrack"));
|
24
41
|
const options_1 = require("../track/options");
|
25
42
|
const Track_1 = require("../track/Track");
|
43
|
+
const utils_1 = require("../track/utils");
|
26
44
|
const Participant_1 = __importDefault(require("./Participant"));
|
45
|
+
const ParticipantTrackPermission_1 = require("./ParticipantTrackPermission");
|
46
|
+
const publishUtils_1 = require("./publishUtils");
|
27
47
|
const RemoteParticipant_1 = __importDefault(require("./RemoteParticipant"));
|
28
48
|
class LocalParticipant extends Participant_1.default {
|
29
49
|
/** @internal */
|
30
|
-
constructor(sid, identity, engine) {
|
50
|
+
constructor(sid, identity, engine, options) {
|
31
51
|
super(sid, identity);
|
32
|
-
/** @internal */
|
33
52
|
this.pendingPublishing = new Set();
|
34
53
|
/** @internal */
|
35
54
|
this.onTrackUnmuted = (track) => {
|
@@ -47,32 +66,27 @@ class LocalParticipant extends Participant_1.default {
|
|
47
66
|
}
|
48
67
|
this.engine.updateMuteStatus(track.sid, muted);
|
49
68
|
};
|
50
|
-
this.
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
options_1.ScreenSharePresets.vga,
|
66
|
-
options_1.ScreenSharePresets.hd_8,
|
67
|
-
options_1.ScreenSharePresets.hd_15,
|
68
|
-
options_1.ScreenSharePresets.fhd_15,
|
69
|
-
options_1.ScreenSharePresets.fhd_30,
|
70
|
-
];
|
69
|
+
this.handleSubscribedQualityUpdate = (update) => {
|
70
|
+
var _a, _b;
|
71
|
+
if (!((_a = this.roomOptions) === null || _a === void 0 ? void 0 : _a.dynacast)) {
|
72
|
+
return;
|
73
|
+
}
|
74
|
+
const pub = this.videoTracks.get(update.trackSid);
|
75
|
+
if (!pub) {
|
76
|
+
logger_1.default.warn('handleSubscribedQualityUpdate', 'received subscribed quality update for unknown track', update.trackSid);
|
77
|
+
return;
|
78
|
+
}
|
79
|
+
(_b = pub.videoTrack) === null || _b === void 0 ? void 0 : _b.setPublishingLayers(update.subscribedQualities);
|
80
|
+
};
|
81
|
+
this.onTrackUnpublish = (track) => {
|
82
|
+
this.unpublishTrack(track);
|
83
|
+
};
|
71
84
|
this.audioTracks = new Map();
|
72
85
|
this.videoTracks = new Map();
|
73
86
|
this.tracks = new Map();
|
74
87
|
this.engine = engine;
|
75
|
-
this.
|
88
|
+
this.roomOptions = options;
|
89
|
+
this.engine.client.onRemoteMuteChanged = (trackSid, muted) => {
|
76
90
|
const pub = this.tracks.get(trackSid);
|
77
91
|
if (!pub || !pub.track) {
|
78
92
|
return;
|
@@ -83,7 +97,14 @@ class LocalParticipant extends Participant_1.default {
|
|
83
97
|
else {
|
84
98
|
pub.unmute();
|
85
99
|
}
|
86
|
-
}
|
100
|
+
};
|
101
|
+
this.engine.client.onSubscribedQualityUpdate = this.handleSubscribedQualityUpdate;
|
102
|
+
}
|
103
|
+
get lastCameraError() {
|
104
|
+
return this.cameraError;
|
105
|
+
}
|
106
|
+
get lastMicrophoneError() {
|
107
|
+
return this.microphoneError;
|
87
108
|
}
|
88
109
|
getTrack(source) {
|
89
110
|
const track = super.getTrack(source);
|
@@ -141,13 +162,17 @@ class LocalParticipant extends Participant_1.default {
|
|
141
162
|
try {
|
142
163
|
switch (source) {
|
143
164
|
case Track_1.Track.Source.Camera:
|
144
|
-
localTrack = yield
|
165
|
+
[localTrack] = yield this.createTracks({
|
166
|
+
video: true,
|
167
|
+
});
|
145
168
|
break;
|
146
169
|
case Track_1.Track.Source.Microphone:
|
147
|
-
localTrack = yield
|
170
|
+
[localTrack] = yield this.createTracks({
|
171
|
+
audio: true,
|
172
|
+
});
|
148
173
|
break;
|
149
174
|
case Track_1.Track.Source.ScreenShare:
|
150
|
-
[localTrack] = yield
|
175
|
+
[localTrack] = yield this.createScreenTracks({ audio: false });
|
151
176
|
break;
|
152
177
|
default:
|
153
178
|
throw new errors_1.TrackInvalidError(source);
|
@@ -176,24 +201,145 @@ class LocalParticipant extends Participant_1.default {
|
|
176
201
|
}
|
177
202
|
});
|
178
203
|
}
|
204
|
+
/**
|
205
|
+
* Publish both camera and microphone at the same time. This is useful for
|
206
|
+
* displaying a single Permission Dialog box to the end user.
|
207
|
+
*/
|
208
|
+
enableCameraAndMicrophone() {
|
209
|
+
return __awaiter(this, void 0, void 0, function* () {
|
210
|
+
if (this.pendingPublishing.has(Track_1.Track.Source.Camera)
|
211
|
+
|| this.pendingPublishing.has(Track_1.Track.Source.Microphone)) {
|
212
|
+
// no-op it's already been requested
|
213
|
+
return;
|
214
|
+
}
|
215
|
+
this.pendingPublishing.add(Track_1.Track.Source.Camera);
|
216
|
+
this.pendingPublishing.add(Track_1.Track.Source.Microphone);
|
217
|
+
try {
|
218
|
+
const tracks = yield this.createTracks({
|
219
|
+
audio: true,
|
220
|
+
video: true,
|
221
|
+
});
|
222
|
+
yield Promise.all(tracks.map((track) => this.publishTrack(track)));
|
223
|
+
}
|
224
|
+
finally {
|
225
|
+
this.pendingPublishing.delete(Track_1.Track.Source.Camera);
|
226
|
+
this.pendingPublishing.delete(Track_1.Track.Source.Microphone);
|
227
|
+
}
|
228
|
+
});
|
229
|
+
}
|
230
|
+
/**
|
231
|
+
* Create local camera and/or microphone tracks
|
232
|
+
* @param options
|
233
|
+
* @returns
|
234
|
+
*/
|
235
|
+
createTracks(options) {
|
236
|
+
var _a, _b;
|
237
|
+
return __awaiter(this, void 0, void 0, function* () {
|
238
|
+
const opts = utils_1.mergeDefaultOptions(options, (_a = this.roomOptions) === null || _a === void 0 ? void 0 : _a.audioCaptureDefaults, (_b = this.roomOptions) === null || _b === void 0 ? void 0 : _b.videoCaptureDefaults);
|
239
|
+
const constraints = utils_1.constraintsForOptions(opts);
|
240
|
+
let stream;
|
241
|
+
try {
|
242
|
+
stream = yield navigator.mediaDevices.getUserMedia(constraints);
|
243
|
+
}
|
244
|
+
catch (err) {
|
245
|
+
if (err instanceof Error) {
|
246
|
+
if (constraints.audio) {
|
247
|
+
this.microphoneError = err;
|
248
|
+
}
|
249
|
+
if (constraints.video) {
|
250
|
+
this.cameraError = err;
|
251
|
+
}
|
252
|
+
}
|
253
|
+
throw err;
|
254
|
+
}
|
255
|
+
if (constraints.audio) {
|
256
|
+
this.microphoneError = undefined;
|
257
|
+
}
|
258
|
+
if (constraints.video) {
|
259
|
+
this.cameraError = undefined;
|
260
|
+
}
|
261
|
+
return stream.getTracks().map((mediaStreamTrack) => {
|
262
|
+
const isAudio = mediaStreamTrack.kind === 'audio';
|
263
|
+
let trackOptions = isAudio ? options.audio : options.video;
|
264
|
+
if (typeof trackOptions === 'boolean' || !trackOptions) {
|
265
|
+
trackOptions = {};
|
266
|
+
}
|
267
|
+
let trackConstraints;
|
268
|
+
const conOrBool = isAudio ? constraints.audio : constraints.video;
|
269
|
+
if (typeof conOrBool !== 'boolean') {
|
270
|
+
trackConstraints = conOrBool;
|
271
|
+
}
|
272
|
+
const track = publishUtils_1.mediaTrackToLocalTrack(mediaStreamTrack, trackConstraints);
|
273
|
+
if (track.kind === Track_1.Track.Kind.Video) {
|
274
|
+
track.source = Track_1.Track.Source.Camera;
|
275
|
+
}
|
276
|
+
else if (track.kind === Track_1.Track.Kind.Audio) {
|
277
|
+
track.source = Track_1.Track.Source.Microphone;
|
278
|
+
}
|
279
|
+
return track;
|
280
|
+
});
|
281
|
+
});
|
282
|
+
}
|
283
|
+
/**
|
284
|
+
* Creates a screen capture tracks with getDisplayMedia().
|
285
|
+
* A LocalVideoTrack is always created and returned.
|
286
|
+
* If { audio: true }, and the browser supports audio capture, a LocalAudioTrack is also created.
|
287
|
+
*/
|
288
|
+
createScreenTracks(options) {
|
289
|
+
var _a;
|
290
|
+
return __awaiter(this, void 0, void 0, function* () {
|
291
|
+
if (options === undefined) {
|
292
|
+
options = {};
|
293
|
+
}
|
294
|
+
if (options.resolution === undefined) {
|
295
|
+
options.resolution = options_1.VideoPresets.fhd.resolution;
|
296
|
+
}
|
297
|
+
let videoConstraints = true;
|
298
|
+
if (options.resolution) {
|
299
|
+
videoConstraints = {
|
300
|
+
width: options.resolution.width,
|
301
|
+
height: options.resolution.height,
|
302
|
+
frameRate: options.resolution.frameRate,
|
303
|
+
};
|
304
|
+
}
|
305
|
+
// typescript definition is missing getDisplayMedia: https://github.com/microsoft/TypeScript/issues/33232
|
306
|
+
// @ts-ignore
|
307
|
+
const stream = yield navigator.mediaDevices.getDisplayMedia({
|
308
|
+
audio: (_a = options.audio) !== null && _a !== void 0 ? _a : false,
|
309
|
+
video: videoConstraints,
|
310
|
+
});
|
311
|
+
const tracks = stream.getVideoTracks();
|
312
|
+
if (tracks.length === 0) {
|
313
|
+
throw new errors_1.TrackInvalidError('no video track found');
|
314
|
+
}
|
315
|
+
const screenVideo = new LocalVideoTrack_1.default(tracks[0]);
|
316
|
+
screenVideo.source = Track_1.Track.Source.ScreenShare;
|
317
|
+
const localTracks = [screenVideo];
|
318
|
+
if (stream.getAudioTracks().length > 0) {
|
319
|
+
const screenAudio = new LocalAudioTrack_1.default(stream.getAudioTracks()[0]);
|
320
|
+
screenAudio.source = Track_1.Track.Source.ScreenShareAudio;
|
321
|
+
localTracks.push(screenAudio);
|
322
|
+
}
|
323
|
+
return localTracks;
|
324
|
+
});
|
325
|
+
}
|
179
326
|
/**
|
180
327
|
* Publish a new track to the room
|
181
328
|
* @param track
|
182
329
|
* @param options
|
183
330
|
*/
|
184
331
|
publishTrack(track, options) {
|
185
|
-
var _a, _b, _c, _d, _e;
|
332
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
186
333
|
return __awaiter(this, void 0, void 0, function* () {
|
187
|
-
const opts = {};
|
188
|
-
Object.assign(opts, defaults_1.getTrackPublishDefaults(), options);
|
334
|
+
const opts = Object.assign(Object.assign({}, (_a = this.roomOptions) === null || _a === void 0 ? void 0 : _a.publishDefaults), options);
|
189
335
|
// convert raw media track into audio or video track
|
190
336
|
if (track instanceof MediaStreamTrack) {
|
191
337
|
switch (track.kind) {
|
192
338
|
case 'audio':
|
193
|
-
track = new LocalAudioTrack_1.default(track
|
339
|
+
track = new LocalAudioTrack_1.default(track);
|
194
340
|
break;
|
195
341
|
case 'video':
|
196
|
-
track = new LocalVideoTrack_1.default(track
|
342
|
+
track = new LocalVideoTrack_1.default(track);
|
197
343
|
break;
|
198
344
|
default:
|
199
345
|
throw new errors_1.TrackInvalidError(`unsupported MediaStreamTrack kind ${track.kind}`);
|
@@ -214,44 +360,35 @@ class LocalParticipant extends Participant_1.default {
|
|
214
360
|
if (opts.source) {
|
215
361
|
track.source = opts.source;
|
216
362
|
}
|
217
|
-
if (opts.name) {
|
218
|
-
track.name = opts.name;
|
219
|
-
}
|
220
363
|
if (opts.stopMicTrackOnMute && track instanceof LocalAudioTrack_1.default) {
|
221
364
|
track.stopOnMute = true;
|
222
365
|
}
|
223
366
|
// handle track actions
|
224
367
|
track.on(events_1.TrackEvent.Muted, this.onTrackMuted);
|
225
368
|
track.on(events_1.TrackEvent.Unmuted, this.onTrackUnmuted);
|
226
|
-
track.on(events_1.TrackEvent.Ended,
|
227
|
-
this.unpublishTrack(track);
|
228
|
-
});
|
229
|
-
// get local track id for use during publishing
|
230
|
-
const cid = track.mediaStreamTrack.id;
|
369
|
+
track.on(events_1.TrackEvent.Ended, this.onTrackUnpublish);
|
231
370
|
// create track publication from track
|
232
371
|
const req = livekit_rtc_1.AddTrackRequest.fromPartial({
|
233
|
-
|
234
|
-
|
372
|
+
// get local track id for use during publishing
|
373
|
+
cid: track.mediaStreamTrack.id,
|
374
|
+
name: options === null || options === void 0 ? void 0 : options.name,
|
235
375
|
type: Track_1.Track.kindToProto(track.kind),
|
236
376
|
muted: track.isMuted,
|
237
377
|
source: Track_1.Track.sourceToProto(track.source),
|
238
|
-
disableDtx: !((
|
378
|
+
disableDtx: !((_b = opts === null || opts === void 0 ? void 0 : opts.dtx) !== null && _b !== void 0 ? _b : true),
|
239
379
|
});
|
240
|
-
|
241
|
-
req.width = track.dimensions.width;
|
242
|
-
req.height = track.dimensions.height;
|
243
|
-
}
|
244
|
-
const ti = yield this.engine.addTrack(req);
|
245
|
-
const publication = new LocalTrackPublication_1.default(track.kind, ti, track);
|
246
|
-
track.sid = ti.sid;
|
380
|
+
// compute encodings and layers for video
|
247
381
|
let encodings;
|
248
|
-
// for video
|
249
382
|
if (track.kind === Track_1.Track.Kind.Video) {
|
250
383
|
// TODO: support react native, which doesn't expose getSettings
|
251
384
|
const settings = track.mediaStreamTrack.getSettings();
|
252
|
-
const width = (
|
253
|
-
const height = (
|
254
|
-
|
385
|
+
const width = (_c = settings.width) !== null && _c !== void 0 ? _c : (_d = track.dimensions) === null || _d === void 0 ? void 0 : _d.width;
|
386
|
+
const height = (_e = settings.height) !== null && _e !== void 0 ? _e : (_f = track.dimensions) === null || _f === void 0 ? void 0 : _f.height;
|
387
|
+
// width and height should be defined for video
|
388
|
+
req.width = width !== null && width !== void 0 ? width : 0;
|
389
|
+
req.height = height !== null && height !== void 0 ? height : 0;
|
390
|
+
encodings = publishUtils_1.computeVideoEncodings(track.source === Track_1.Track.Source.ScreenShare, width, height, opts);
|
391
|
+
req.layers = LocalVideoTrack_1.videoLayersFromEncodings(req.width, req.height, encodings);
|
255
392
|
}
|
256
393
|
else if (track.kind === Track_1.Track.Kind.Audio && opts.audioBitrate) {
|
257
394
|
encodings = [
|
@@ -260,6 +397,9 @@ class LocalParticipant extends Participant_1.default {
|
|
260
397
|
},
|
261
398
|
];
|
262
399
|
}
|
400
|
+
const ti = yield this.engine.addTrack(req);
|
401
|
+
const publication = new LocalTrackPublication_1.default(track.kind, ti, track);
|
402
|
+
track.sid = ti.sid;
|
263
403
|
if (!this.engine.publisher) {
|
264
404
|
throw new errors_1.UnexpectedConnectionState('publisher is closed');
|
265
405
|
}
|
@@ -273,7 +413,11 @@ class LocalParticipant extends Participant_1.default {
|
|
273
413
|
// store RTPSender
|
274
414
|
track.sender = transceiver.sender;
|
275
415
|
if (track instanceof LocalVideoTrack_1.default) {
|
276
|
-
|
416
|
+
const disableLayerPause = (_h = (_g = this.roomOptions) === null || _g === void 0 ? void 0 : _g.expDisableLayerPause) !== null && _h !== void 0 ? _h : false;
|
417
|
+
track.startMonitor(this.engine.client, disableLayerPause);
|
418
|
+
}
|
419
|
+
else if (track instanceof LocalAudioTrack_1.default) {
|
420
|
+
track.startMonitor();
|
277
421
|
}
|
278
422
|
if (opts.videoCodec) {
|
279
423
|
this.setPreferredCodec(transceiver, track.kind, opts.videoCodec);
|
@@ -285,25 +429,22 @@ class LocalParticipant extends Participant_1.default {
|
|
285
429
|
});
|
286
430
|
}
|
287
431
|
unpublishTrack(track) {
|
432
|
+
var _a, _b;
|
288
433
|
// look through all published tracks to find the right ones
|
289
434
|
const publication = this.getPublicationForTrack(track);
|
290
435
|
logger_1.default.debug('unpublishTrack', 'unpublishing track', track);
|
291
|
-
if (!publication) {
|
436
|
+
if (!publication || !publication.track) {
|
292
437
|
logger_1.default.warn('unpublishTrack', 'track was not unpublished because no publication was found', track);
|
293
438
|
return null;
|
294
439
|
}
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
if (track instanceof MediaStreamTrack) {
|
302
|
-
mediaStreamTrack = track;
|
303
|
-
}
|
304
|
-
else {
|
305
|
-
mediaStreamTrack = track.mediaStreamTrack;
|
440
|
+
track = publication.track;
|
441
|
+
track.off(events_1.TrackEvent.Muted, this.onTrackMuted);
|
442
|
+
track.off(events_1.TrackEvent.Unmuted, this.onTrackUnmuted);
|
443
|
+
track.off(events_1.TrackEvent.Ended, this.onTrackUnpublish);
|
444
|
+
if ((_b = (_a = this.roomOptions) === null || _a === void 0 ? void 0 : _a.stopLocalTrackOnUnpublish) !== null && _b !== void 0 ? _b : true) {
|
445
|
+
track.stop();
|
306
446
|
}
|
447
|
+
const { mediaStreamTrack } = track;
|
307
448
|
if (this.engine.publisher) {
|
308
449
|
const senders = this.engine.publisher.pc.getSenders();
|
309
450
|
senders.forEach((sender) => {
|
@@ -331,6 +472,7 @@ class LocalParticipant extends Participant_1.default {
|
|
331
472
|
default:
|
332
473
|
break;
|
333
474
|
}
|
475
|
+
publication.setTrack(undefined);
|
334
476
|
this.emit(events_1.ParticipantEvent.LocalTrackUnpublished, publication);
|
335
477
|
return publication;
|
336
478
|
}
|
@@ -382,6 +524,26 @@ class LocalParticipant extends Participant_1.default {
|
|
382
524
|
yield this.engine.sendDataPacket(packet, kind);
|
383
525
|
});
|
384
526
|
}
|
527
|
+
/**
|
528
|
+
* Control who can subscribe to LocalParticipant's published tracks.
|
529
|
+
*
|
530
|
+
* By default, all participants can subscribe. This allows fine-grained control over
|
531
|
+
* who is able to subscribe at a participant and track level.
|
532
|
+
*
|
533
|
+
* Note: if access is given at a track-level (i.e. both [allParticipantsAllowed] and
|
534
|
+
* [ParticipantTrackPermission.allTracksAllowed] are false), any newer published tracks
|
535
|
+
* will not grant permissions to any participants and will require a subsequent
|
536
|
+
* permissions update to allow subscription.
|
537
|
+
*
|
538
|
+
* @param allParticipantsAllowed Allows all participants to subscribe all tracks.
|
539
|
+
* Takes precedence over [[participantTrackPermissions]] if set to true.
|
540
|
+
* By default this is set to true.
|
541
|
+
* @param participantTrackPermissions Full list of individual permissions per
|
542
|
+
* participant/track. Any omitted participants will not receive any permissions.
|
543
|
+
*/
|
544
|
+
setTrackSubscriptionPermissions(allParticipantsAllowed, participantTrackPermissions = []) {
|
545
|
+
this.engine.client.sendUpdateSubscriptionPermissions(allParticipantsAllowed, participantTrackPermissions.map((p) => ParticipantTrackPermission_1.trackPermissionToProto(p)));
|
546
|
+
}
|
385
547
|
getPublicationForTrack(track) {
|
386
548
|
let publication;
|
387
549
|
this.tracks.forEach((pub) => {
|
@@ -426,105 +588,18 @@ class LocalParticipant extends Participant_1.default {
|
|
426
588
|
transceiver.setCodecPreferences([selected]);
|
427
589
|
}
|
428
590
|
}
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
|
434
|
-
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
-
// encoding parameters
|
439
|
-
return undefined;
|
440
|
-
}
|
441
|
-
if (!videoEncoding) {
|
442
|
-
// find the right encoding based on width/height
|
443
|
-
videoEncoding = this.determineAppropriateEncoding(isScreenShare, width, height);
|
444
|
-
logger_1.default.debug('using video encoding', videoEncoding);
|
445
|
-
}
|
446
|
-
if (useSimulcast) {
|
447
|
-
const presets = this.presetsForResolution(isScreenShare, width, height);
|
448
|
-
const midPreset = presets[1];
|
449
|
-
const lowPreset = presets[0];
|
450
|
-
// if resolution is high enough, we would send [q, h, f] res..
|
451
|
-
// otherwise only send [q, h]
|
452
|
-
// NOTE:
|
453
|
-
// 1. Ordering of these encodings is important. Chrome seems
|
454
|
-
// to use the index into encodings to decide which layer
|
455
|
-
// to disable when constrained (bandwidth or CPU). So,
|
456
|
-
// encodings should be ordered in increasing spatial
|
457
|
-
// resolution order.
|
458
|
-
// 2. ion-sfu translates rids into layers. So, all encodings
|
459
|
-
// should have the base layer `q` and then more added
|
460
|
-
// based on other conditions.
|
461
|
-
if (width >= 960) {
|
462
|
-
encodings = [
|
463
|
-
{
|
464
|
-
rid: 'q',
|
465
|
-
scaleResolutionDownBy: height / lowPreset.height,
|
466
|
-
maxBitrate: lowPreset.encoding.maxBitrate,
|
467
|
-
/* @ts-ignore */
|
468
|
-
maxFramerate: lowPreset.encoding.maxFramerate,
|
469
|
-
},
|
470
|
-
{
|
471
|
-
rid: 'h',
|
472
|
-
scaleResolutionDownBy: height / midPreset.height,
|
473
|
-
maxBitrate: midPreset.encoding.maxBitrate,
|
474
|
-
/* @ts-ignore */
|
475
|
-
maxFramerate: midPreset.encoding.maxFramerate,
|
476
|
-
},
|
477
|
-
{
|
478
|
-
rid: 'f',
|
479
|
-
maxBitrate: videoEncoding.maxBitrate,
|
480
|
-
/* @ts-ignore */
|
481
|
-
maxFramerate: videoEncoding.maxFramerate,
|
482
|
-
},
|
483
|
-
];
|
484
|
-
}
|
485
|
-
else {
|
486
|
-
encodings = [
|
487
|
-
{
|
488
|
-
rid: 'q',
|
489
|
-
scaleResolutionDownBy: height / lowPreset.height,
|
490
|
-
maxBitrate: lowPreset.encoding.maxBitrate,
|
491
|
-
/* @ts-ignore */
|
492
|
-
maxFramerate: lowPreset.encoding.maxFramerate,
|
493
|
-
},
|
494
|
-
{
|
495
|
-
rid: 'h',
|
496
|
-
maxBitrate: videoEncoding.maxBitrate,
|
497
|
-
/* @ts-ignore */
|
498
|
-
maxFramerate: videoEncoding.maxFramerate,
|
499
|
-
},
|
500
|
-
];
|
501
|
-
}
|
502
|
-
}
|
503
|
-
else {
|
504
|
-
encodings = [videoEncoding];
|
505
|
-
}
|
506
|
-
return encodings;
|
507
|
-
}
|
508
|
-
determineAppropriateEncoding(isScreenShare, width, height) {
|
509
|
-
const presets = this.presetsForResolution(isScreenShare, width, height);
|
510
|
-
let { encoding } = presets[0];
|
511
|
-
for (let i = 0; i < presets.length; i += 1) {
|
512
|
-
const preset = presets[i];
|
513
|
-
if (width >= preset.width && height >= preset.height) {
|
514
|
-
encoding = preset.encoding;
|
591
|
+
/** @internal */
|
592
|
+
publishedTracksInfo() {
|
593
|
+
const infos = [];
|
594
|
+
this.tracks.forEach((track) => {
|
595
|
+
if (track.track !== undefined) {
|
596
|
+
infos.push({
|
597
|
+
cid: track.track.mediaStreamTrack.id,
|
598
|
+
track: track.trackInfo,
|
599
|
+
});
|
515
600
|
}
|
516
|
-
}
|
517
|
-
return
|
518
|
-
}
|
519
|
-
presetsForResolution(isScreenShare, width, height) {
|
520
|
-
if (isScreenShare) {
|
521
|
-
return this.presetsScreenShare;
|
522
|
-
}
|
523
|
-
const aspect = width / height;
|
524
|
-
if (Math.abs(aspect - 16.0 / 9) < Math.abs(aspect - 4.0 / 3)) {
|
525
|
-
return this.presets169;
|
526
|
-
}
|
527
|
-
return this.presets43;
|
601
|
+
});
|
602
|
+
return infos;
|
528
603
|
}
|
529
604
|
}
|
530
605
|
exports.default = LocalParticipant;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"LocalParticipant.js","sourceRoot":"","sources":["../../../src/room/participant/LocalParticipant.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"LocalParticipant.js","sourceRoot":"","sources":["../../../src/room/participant/LocalParticipant.ts"],"names":[],"mappings":"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"}
|
@@ -2,7 +2,7 @@
|
|
2
2
|
import { EventEmitter } from 'events';
|
3
3
|
import { ConnectionQuality as ProtoQuality, ParticipantInfo } from '../../proto/livekit_models';
|
4
4
|
import { Track } from '../track/Track';
|
5
|
-
import TrackPublication from '../track/TrackPublication';
|
5
|
+
import { TrackPublication } from '../track/TrackPublication';
|
6
6
|
export declare enum ConnectionQuality {
|
7
7
|
Excellent = "excellent",
|
8
8
|
Good = "good",
|
@@ -23,6 +23,8 @@ export default class Participant extends EventEmitter {
|
|
23
23
|
sid: string;
|
24
24
|
/** client assigned identity, encoded in JWT token */
|
25
25
|
identity: string;
|
26
|
+
/** client assigned display name, encoded in JWT token */
|
27
|
+
name?: string;
|
26
28
|
/** client metadata, opaque to livekit */
|
27
29
|
metadata?: string;
|
28
30
|
lastSpokeAt?: Date | undefined;
|
@@ -112,6 +112,7 @@ class Participant extends events_1.EventEmitter {
|
|
112
112
|
updateInfo(info) {
|
113
113
|
this.identity = info.identity;
|
114
114
|
this.sid = info.sid;
|
115
|
+
this.name = info.name;
|
115
116
|
this.setMetadata(info.metadata);
|
116
117
|
// set this last so setMetadata can detect changes
|
117
118
|
this.participantInfo = info;
|
@@ -122,7 +123,8 @@ class Participant extends events_1.EventEmitter {
|
|
122
123
|
const prevMetadata = this.metadata;
|
123
124
|
this.metadata = md;
|
124
125
|
if (changed) {
|
125
|
-
this.emit(events_2.ParticipantEvent.MetadataChanged, prevMetadata);
|
126
|
+
this.emit(events_2.ParticipantEvent.MetadataChanged, prevMetadata, this);
|
127
|
+
this.emit(events_2.ParticipantEvent.ParticipantMetadataChanged, prevMetadata, this);
|
126
128
|
}
|
127
129
|
}
|
128
130
|
/** @internal */
|