livekit-client 0.14.0 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/.github/workflows/{lint.yaml → test.yaml} +7 -4
  2. package/README.md +27 -12
  3. package/dist/api/SignalClient.d.ts +4 -31
  4. package/dist/api/SignalClient.js +25 -7
  5. package/dist/api/SignalClient.js.map +1 -1
  6. package/dist/connect.d.ts +1 -1
  7. package/dist/connect.js +70 -56
  8. package/dist/connect.js.map +1 -1
  9. package/dist/index.d.ts +3 -4
  10. package/dist/index.js +4 -4
  11. package/dist/index.js.map +1 -1
  12. package/dist/logger.d.ts +10 -0
  13. package/dist/logger.js +14 -0
  14. package/dist/logger.js.map +1 -1
  15. package/dist/options.d.ts +77 -12
  16. package/dist/options.js +0 -10
  17. package/dist/options.js.map +1 -1
  18. package/dist/proto/livekit_models.d.ts +28 -1
  19. package/dist/proto/livekit_models.js +194 -3
  20. package/dist/proto/livekit_models.js.map +1 -1
  21. package/dist/proto/livekit_rtc.d.ts +49 -7
  22. package/dist/proto/livekit_rtc.js +303 -28
  23. package/dist/proto/livekit_rtc.js.map +1 -1
  24. package/dist/room/RTCEngine.d.ts +2 -2
  25. package/dist/room/RTCEngine.js +6 -4
  26. package/dist/room/RTCEngine.js.map +1 -1
  27. package/dist/room/Room.d.ts +12 -14
  28. package/dist/room/Room.js +78 -45
  29. package/dist/room/Room.js.map +1 -1
  30. package/dist/room/events.d.ts +98 -1
  31. package/dist/room/events.js +97 -0
  32. package/dist/room/events.js.map +1 -1
  33. package/dist/room/participant/LocalParticipant.d.ts +27 -9
  34. package/dist/room/participant/LocalParticipant.js +194 -155
  35. package/dist/room/participant/LocalParticipant.js.map +1 -1
  36. package/dist/room/participant/Participant.js +6 -2
  37. package/dist/room/participant/Participant.js.map +1 -1
  38. package/dist/room/participant/RemoteParticipant.d.ts +1 -1
  39. package/dist/room/participant/RemoteParticipant.js +6 -5
  40. package/dist/room/participant/RemoteParticipant.js.map +1 -1
  41. package/dist/room/participant/publishUtils.d.ts +11 -0
  42. package/dist/room/participant/publishUtils.js +148 -0
  43. package/dist/room/participant/publishUtils.js.map +1 -0
  44. package/dist/room/participant/publishUtils.test.d.ts +1 -0
  45. package/dist/room/participant/publishUtils.test.js +79 -0
  46. package/dist/room/participant/publishUtils.test.js.map +1 -0
  47. package/dist/room/track/LocalAudioTrack.d.ts +4 -3
  48. package/dist/room/track/LocalAudioTrack.js +5 -3
  49. package/dist/room/track/LocalAudioTrack.js.map +1 -1
  50. package/dist/room/track/LocalTrack.d.ts +1 -3
  51. package/dist/room/track/LocalTrack.js +2 -49
  52. package/dist/room/track/LocalTrack.js.map +1 -1
  53. package/dist/room/track/LocalVideoTrack.d.ts +6 -4
  54. package/dist/room/track/LocalVideoTrack.js +41 -12
  55. package/dist/room/track/LocalVideoTrack.js.map +1 -1
  56. package/dist/room/track/LocalVideoTrack.test.d.ts +1 -0
  57. package/dist/room/track/LocalVideoTrack.test.js +68 -0
  58. package/dist/room/track/LocalVideoTrack.test.js.map +1 -0
  59. package/dist/room/track/RemoteTrackPublication.d.ts +10 -4
  60. package/dist/room/track/RemoteTrackPublication.js +60 -4
  61. package/dist/room/track/RemoteTrackPublication.js.map +1 -1
  62. package/dist/room/track/RemoteVideoTrack.d.ts +15 -1
  63. package/dist/room/track/RemoteVideoTrack.js +98 -1
  64. package/dist/room/track/RemoteVideoTrack.js.map +1 -1
  65. package/dist/room/track/Track.d.ts +15 -2
  66. package/dist/room/track/Track.js +6 -2
  67. package/dist/room/track/Track.js.map +1 -1
  68. package/dist/room/track/options.d.ts +15 -65
  69. package/dist/room/track/options.js +14 -13
  70. package/dist/room/track/options.js.map +1 -1
  71. package/dist/room/track/utils.d.ts +3 -0
  72. package/dist/room/track/utils.js +68 -0
  73. package/dist/room/track/utils.js.map +1 -0
  74. package/dist/room/track/utils.test.d.ts +1 -0
  75. package/dist/room/track/utils.test.js +85 -0
  76. package/dist/room/track/utils.test.js.map +1 -0
  77. package/dist/room/utils.d.ts +6 -0
  78. package/dist/room/utils.js +25 -1
  79. package/dist/room/utils.js.map +1 -1
  80. package/dist/version.d.ts +1 -1
  81. package/dist/version.js +1 -1
  82. package/example/index.html +183 -178
  83. package/example/sample.ts +410 -326
  84. package/example/styles.css +144 -0
  85. package/example/webpack.config.js +1 -1
  86. package/jest.config.js +6 -0
  87. package/package.json +9 -6
  88. package/tsconfig.eslint.json +8 -1
  89. package/dist/room/defaults.d.ts +0 -5
  90. package/dist/room/defaults.js +0 -32
  91. package/dist/room/defaults.js.map +0 -1
  92. package/dist/room/track/create.d.ts +0 -25
  93. package/dist/room/track/create.js +0 -170
  94. package/dist/room/track/create.js.map +0 -1
package/dist/room/Room.js CHANGED
@@ -35,13 +35,13 @@ exports.RoomState = void 0;
35
35
  const events_1 = require("events");
36
36
  const logger_1 = __importDefault(require("../logger"));
37
37
  const livekit_models_1 = require("../proto/livekit_models");
38
- const defaults_1 = require("./defaults");
39
38
  const DeviceManager_1 = __importDefault(require("./DeviceManager"));
40
39
  const errors_1 = require("./errors");
41
40
  const events_2 = require("./events");
42
41
  const LocalParticipant_1 = __importDefault(require("./participant/LocalParticipant"));
43
42
  const RemoteParticipant_1 = __importDefault(require("./participant/RemoteParticipant"));
44
43
  const RTCEngine_1 = __importStar(require("./RTCEngine"));
44
+ const options_1 = require("./track/options");
45
45
  const Track_1 = require("./track/Track");
46
46
  const utils_1 = require("./utils");
47
47
  var RoomState;
@@ -50,6 +50,22 @@ var RoomState;
50
50
  RoomState["Connected"] = "connected";
51
51
  RoomState["Reconnecting"] = "reconnecting";
52
52
  })(RoomState = exports.RoomState || (exports.RoomState = {}));
53
+ const publishDefaults = {
54
+ audioBitrate: options_1.AudioPresets.speech.maxBitrate,
55
+ dtx: true,
56
+ simulcast: true,
57
+ screenShareEncoding: options_1.ScreenSharePresets.hd_15.encoding,
58
+ stopMicTrackOnMute: false,
59
+ };
60
+ const audioDefaults = {
61
+ autoGainControl: true,
62
+ channelCount: 1,
63
+ echoCancellation: true,
64
+ noiseSuppression: true,
65
+ };
66
+ const videoDefaults = {
67
+ resolution: options_1.VideoPresets.qhd.resolution,
68
+ };
53
69
  /**
54
70
  * In LiveKit, a room is the logical grouping for a list of participants.
55
71
  * Participants in a room can publish tracks, and subscribe to others' tracks.
@@ -59,8 +75,11 @@ var RoomState;
59
75
  * @noInheritDoc
60
76
  */
61
77
  class Room extends events_1.EventEmitter {
62
- /** @internal */
63
- constructor(client, config) {
78
+ /**
79
+ * Creates a new Room, the primary construct for a LiveKit session.
80
+ * @param options
81
+ */
82
+ constructor(options) {
64
83
  super();
65
84
  this.state = RoomState.Disconnected;
66
85
  /**
@@ -68,15 +87,25 @@ class Room extends events_1.EventEmitter {
68
87
  * a [[RoomEvent.ActiveSpeakersChanged]] event is fired
69
88
  */
70
89
  this.activeSpeakers = [];
90
+ // available after connected
91
+ /** server assigned unique room id */
92
+ this.sid = '';
93
+ /** user assigned name, derived from JWT token */
94
+ this.name = '';
71
95
  /** room metadata */
72
96
  this.metadata = undefined;
73
97
  this.audioEnabled = true;
74
- /** @internal */
75
98
  this.connect = (url, token, opts) => __awaiter(this, void 0, void 0, function* () {
76
99
  // guard against calling connect
77
- if (this.localParticipant) {
100
+ if (this.state !== RoomState.Disconnected) {
78
101
  logger_1.default.warn('already connected to room', this.name);
79
- return this;
102
+ return;
103
+ }
104
+ // recreate engine if previously disconnected
105
+ this.createEngine();
106
+ this.acquireAudioContext();
107
+ if (opts === null || opts === void 0 ? void 0 : opts.rtcConfig) {
108
+ this.engine.rtcConfig = opts.rtcConfig;
80
109
  }
81
110
  try {
82
111
  const joinResponse = yield this.engine.join(url, token, opts);
@@ -86,15 +115,15 @@ class Room extends events_1.EventEmitter {
86
115
  }
87
116
  this.state = RoomState.Connected;
88
117
  const pi = joinResponse.participant;
89
- this.localParticipant = new LocalParticipant_1.default(pi.sid, pi.identity, this.engine);
118
+ this.localParticipant = new LocalParticipant_1.default(pi.sid, pi.identity, this.engine, this.options);
90
119
  this.localParticipant.updateInfo(pi);
91
120
  // forward metadata changed for the local participant
92
121
  this.localParticipant
93
- .on(events_2.ParticipantEvent.MetadataChanged, (metadata, p) => {
94
- this.emit(events_2.RoomEvent.MetadataChanged, metadata, p);
122
+ .on(events_2.ParticipantEvent.MetadataChanged, (metadata) => {
123
+ this.emit(events_2.RoomEvent.MetadataChanged, metadata, this.localParticipant);
95
124
  })
96
- .on(events_2.ParticipantEvent.ParticipantMetadataChanged, (metadata, p) => {
97
- this.emit(events_2.RoomEvent.ParticipantMetadataChanged, metadata, p);
125
+ .on(events_2.ParticipantEvent.ParticipantMetadataChanged, (metadata) => {
126
+ this.emit(events_2.RoomEvent.ParticipantMetadataChanged, metadata, this.localParticipant);
98
127
  })
99
128
  .on(events_2.ParticipantEvent.TrackMuted, (pub) => {
100
129
  this.emit(events_2.RoomEvent.TrackMuted, pub, this.localParticipant);
@@ -135,7 +164,7 @@ class Room extends events_1.EventEmitter {
135
164
  this.engine.once(events_2.EngineEvent.Connected, () => {
136
165
  clearTimeout(connectTimeout);
137
166
  // also hook unload event
138
- window.addEventListener('beforeunload', this.disconnect);
167
+ window.addEventListener('beforeunload', this.onBeforeUnload);
139
168
  navigator.mediaDevices.addEventListener('devicechange', this.handleDeviceChange);
140
169
  resolve(this);
141
170
  });
@@ -144,11 +173,16 @@ class Room extends events_1.EventEmitter {
144
173
  /**
145
174
  * disconnects the room, emits [[RoomEvent.Disconnected]]
146
175
  */
147
- this.disconnect = () => {
176
+ this.disconnect = (stopTracks = true) => {
148
177
  // send leave
149
178
  this.engine.client.sendLeave();
150
179
  this.engine.close();
151
- this.handleDisconnect();
180
+ this.handleDisconnect(stopTracks);
181
+ /* @ts-ignore */
182
+ this.engine = undefined;
183
+ };
184
+ this.onBeforeUnload = () => {
185
+ this.disconnect();
152
186
  };
153
187
  // updates are sent only when there's a change to speaker ordering
154
188
  this.handleActiveSpeakersUpdate = (speakers) => {
@@ -253,8 +287,18 @@ class Room extends events_1.EventEmitter {
253
287
  });
254
288
  };
255
289
  this.participants = new Map();
256
- this.engine = new RTCEngine_1.default(client, config);
257
- this.acquireAudioContext();
290
+ this.options = options || {};
291
+ this.options.audioCaptureDefaults = Object.assign(Object.assign({}, audioDefaults), options === null || options === void 0 ? void 0 : options.audioCaptureDefaults);
292
+ this.options.videoCaptureDefaults = Object.assign(Object.assign({}, videoDefaults), options === null || options === void 0 ? void 0 : options.videoCaptureDefaults);
293
+ this.options.publishDefaults = Object.assign(Object.assign({}, publishDefaults), options === null || options === void 0 ? void 0 : options.publishDefaults);
294
+ this.createEngine();
295
+ this.localParticipant = new LocalParticipant_1.default('', '', this.engine, this.options);
296
+ }
297
+ createEngine() {
298
+ if (this.engine) {
299
+ return;
300
+ }
301
+ this.engine = new RTCEngine_1.default();
258
302
  this.engine.on(events_2.EngineEvent.MediaTrackAdded, (mediaTrack, stream, receiver) => {
259
303
  this.onTrackAdded(mediaTrack, stream, receiver);
260
304
  });
@@ -289,21 +333,6 @@ class Room extends events_1.EventEmitter {
289
333
  static getLocalDevices(kind) {
290
334
  return DeviceManager_1.default.getInstance().getDevices(kind);
291
335
  }
292
- /**
293
- * Set default publish options
294
- */
295
- set defaultPublishOptions(opts) {
296
- defaults_1.setTrackPublishDefaults(opts);
297
- }
298
- get defaultPublishOptions() {
299
- return defaults_1.getTrackPublishDefaults();
300
- }
301
- set defaultCaptureOptions(opts) {
302
- defaults_1.setTrackCaptureDefaults(opts);
303
- }
304
- get defaultCaptureOptions() {
305
- return defaults_1.getTrackCaptureDefaults();
306
- }
307
336
  /**
308
337
  * Browsers have different policies regarding audio playback. Most requiring
309
338
  * some form of user interaction (click/tap/etc).
@@ -357,14 +386,14 @@ class Room extends events_1.EventEmitter {
357
386
  .from(this.localParticipant.audioTracks.values())
358
387
  .filter((track) => track.source === Track_1.Track.Source.Microphone);
359
388
  yield Promise.all(tracks.map((t) => { var _a; return (_a = t.audioTrack) === null || _a === void 0 ? void 0 : _a.setDeviceId(deviceId); }));
360
- this.defaultCaptureOptions.audioDeviceId = deviceId;
389
+ this.options.audioCaptureDefaults.deviceId = deviceId;
361
390
  }
362
391
  else if (kind === 'videoinput') {
363
392
  const tracks = Array
364
393
  .from(this.localParticipant.videoTracks.values())
365
394
  .filter((track) => track.source === Track_1.Track.Source.Camera);
366
395
  yield Promise.all(tracks.map((t) => { var _a; return (_a = t.videoTrack) === null || _a === void 0 ? void 0 : _a.setDeviceId(deviceId); }));
367
- this.defaultCaptureOptions.videoDeviceId = deviceId;
396
+ this.options.videoCaptureDefaults.deviceId = deviceId;
368
397
  }
369
398
  else if (kind === 'audiooutput') {
370
399
  const elements = [];
@@ -393,9 +422,9 @@ class Room extends events_1.EventEmitter {
393
422
  if (!trackId || trackId === '')
394
423
  trackId = mediaTrack.id;
395
424
  const participant = this.getOrCreateParticipant(participantId);
396
- participant.addSubscribedMediaTrack(mediaTrack, trackId, receiver);
425
+ participant.addSubscribedMediaTrack(mediaTrack, trackId, receiver, this.options.autoManageVideo);
397
426
  }
398
- handleDisconnect() {
427
+ handleDisconnect(shouldStopTracks = true) {
399
428
  if (this.state === RoomState.Disconnected) {
400
429
  return;
401
430
  }
@@ -404,21 +433,23 @@ class Room extends events_1.EventEmitter {
404
433
  p.unpublishTrack(pub.trackSid);
405
434
  });
406
435
  });
407
- this.localParticipant.tracks.forEach((pub) => {
408
- var _a, _b;
409
- (_a = pub.track) === null || _a === void 0 ? void 0 : _a.detach();
410
- (_b = pub.track) === null || _b === void 0 ? void 0 : _b.stop();
411
- });
436
+ if (shouldStopTracks) {
437
+ this.localParticipant.tracks.forEach((pub) => {
438
+ var _a, _b;
439
+ (_a = pub.track) === null || _a === void 0 ? void 0 : _a.detach();
440
+ (_b = pub.track) === null || _b === void 0 ? void 0 : _b.stop();
441
+ });
442
+ }
412
443
  this.participants.clear();
413
444
  this.activeSpeakers = [];
414
445
  if (this.audioContext) {
415
446
  this.audioContext.close();
416
447
  this.audioContext = undefined;
417
448
  }
418
- window.removeEventListener('beforeunload', this.disconnect);
449
+ window.removeEventListener('beforeunload', this.onBeforeUnload);
419
450
  navigator.mediaDevices.removeEventListener('devicechange', this.handleDeviceChange);
420
- this.emit(events_2.RoomEvent.Disconnected);
421
451
  this.state = RoomState.Disconnected;
452
+ this.emit(events_2.RoomEvent.Disconnected);
422
453
  }
423
454
  handleParticipantUpdates(participantInfos) {
424
455
  // handle changes to participant state, and send events
@@ -510,9 +541,11 @@ class Room extends events_1.EventEmitter {
510
541
  .on(events_2.ParticipantEvent.TrackUnmuted, (pub) => {
511
542
  this.emit(events_2.RoomEvent.TrackUnmuted, pub, participant);
512
543
  })
513
- .on(events_2.ParticipantEvent.MetadataChanged, (metadata, p) => {
514
- this.emit(events_2.RoomEvent.ParticipantMetadataChanged, metadata, p);
515
- this.emit(events_2.RoomEvent.MetadataChanged, metadata, p);
544
+ .on(events_2.ParticipantEvent.MetadataChanged, (metadata) => {
545
+ this.emit(events_2.RoomEvent.MetadataChanged, metadata, participant);
546
+ })
547
+ .on(events_2.ParticipantEvent.ParticipantMetadataChanged, (metadata) => {
548
+ this.emit(events_2.RoomEvent.ParticipantMetadataChanged, metadata, participant);
516
549
  })
517
550
  .on(events_2.ParticipantEvent.ConnectionQualityChanged, (quality) => {
518
551
  this.emit(events_2.RoomEvent.ConnectionQualityChanged, quality, participant);
@@ -1 +1 @@
1
- {"version":3,"file":"Room.js","sourceRoot":"","sources":["../../src/room/Room.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Room.js","sourceRoot":"","sources":["../../src/room/Room.ts"],"names":[],"mappings":"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"}
@@ -171,19 +171,112 @@ export declare enum RoomEvent {
171
171
  ConnectionQualityChanged = "connectionQualityChanged"
172
172
  }
173
173
  export declare enum ParticipantEvent {
174
+ /**
175
+ * When a new track is published to room *after* the local
176
+ * participant has joined. It will not fire for tracks that are already published.
177
+ *
178
+ * A track published doesn't mean the participant has subscribed to it. It's
179
+ * simply reflecting the state of the room.
180
+ *
181
+ * args: ([[RemoteTrackPublication]])
182
+ */
174
183
  TrackPublished = "trackPublished",
184
+ /**
185
+ * The [[LocalParticipant]] has subscribed to a new track. This event will **always**
186
+ * fire as long as new tracks are ready for use.
187
+ *
188
+ * args: ([[RemoteTrack]], [[RemoteTrackPublication]])
189
+ */
175
190
  TrackSubscribed = "trackSubscribed",
191
+ /**
192
+ * Could not subscribe to a track
193
+ *
194
+ * args: (track sid)
195
+ */
176
196
  TrackSubscriptionFailed = "trackSubscriptionFailed",
197
+ /**
198
+ * A local track was unpublished. This event is helpful to know when to remove
199
+ * the local track from your UI.
200
+ *
201
+ * When a user stops sharing their screen by pressing "End" on the browser UI,
202
+ * this event will also fire.
203
+ *
204
+ * args: ([[LocalTrackPublication]])
205
+ */
177
206
  TrackUnpublished = "trackUnpublished",
207
+ /**
208
+ * A subscribed track is no longer available. Clients should listen to this
209
+ * event and ensure they detach tracks.
210
+ *
211
+ * args: ([[Track]], [[RemoteTrackPublication]])
212
+ */
178
213
  TrackUnsubscribed = "trackUnsubscribed",
214
+ /**
215
+ * A track that was muted, fires on both [[RemoteParticipant]]s and [[LocalParticipant]]
216
+ *
217
+ * args: ([[TrackPublication]])
218
+ */
179
219
  TrackMuted = "trackMuted",
220
+ /**
221
+ * A track that was unmuted, fires on both [[RemoteParticipant]]s and [[LocalParticipant]]
222
+ *
223
+ * args: ([[TrackPublication]])
224
+ */
180
225
  TrackUnmuted = "trackUnmuted",
226
+ /**
227
+ * A local track was published successfully. This event is helpful to know
228
+ * when to update your local UI with the newly published track.
229
+ *
230
+ * args: ([[LocalTrackPublication]])
231
+ */
181
232
  LocalTrackPublished = "localTrackPublished",
233
+ /**
234
+ * A local track was unpublished. This event is helpful to know when to remove
235
+ * the local track from your UI.
236
+ *
237
+ * When a user stops sharing their screen by pressing "End" on the browser UI,
238
+ * this event will also fire.
239
+ *
240
+ * args: ([[LocalTrackPublication]])
241
+ */
182
242
  LocalTrackUnpublished = "localTrackUnpublished",
243
+ /**
244
+ * @deprecated Use ParticipantMetadataChanged instead
245
+ * @internal
246
+ */
183
247
  MetadataChanged = "metadataChanged",
248
+ /**
249
+ * Participant metadata is a simple way for app-specific state to be pushed to
250
+ * all users.
251
+ * When RoomService.UpdateParticipantMetadata is called to change a participant's
252
+ * state, *all* participants in the room will fire this event.
253
+ * To access the current metadata, see [[Participant.metadata]].
254
+ *
255
+ * args: (prevMetadata: string)
256
+ *
257
+ */
184
258
  ParticipantMetadataChanged = "participantMetadataChanged",
259
+ /**
260
+ * Data received from this participant as sender.
261
+ * Data packets provides the ability to use LiveKit to send/receive arbitrary payloads.
262
+ * All participants in the room will receive the messages sent to the room.
263
+ *
264
+ * args: (payload: Uint8Array, kind: [[DataPacket_Kind]])
265
+ */
185
266
  DataReceived = "dataReceived",
267
+ /**
268
+ * Has speaking status changed for the current participant
269
+ *
270
+ * args: (speaking: boolean)
271
+ */
186
272
  IsSpeakingChanged = "isSpeakingChanged",
273
+ /**
274
+ * Connection quality was changed for a Participant. It'll receive updates
275
+ * from the local participant, as well as any [[RemoteParticipant]]s that we are
276
+ * subscribed to.
277
+ *
278
+ * args: (connectionQuality: [[ConnectionQuality]])
279
+ */
187
280
  ConnectionQualityChanged = "connectionQualityChanged",
188
281
  /** @internal */
189
282
  MediaDevicesError = "mediaDevicesError"
@@ -215,5 +308,9 @@ export declare enum TrackEvent {
215
308
  /** @internal */
216
309
  AudioPlaybackStarted = "audioPlaybackStarted",
217
310
  /** @internal */
218
- AudioPlaybackFailed = "audioPlaybackFailed"
311
+ AudioPlaybackFailed = "audioPlaybackFailed",
312
+ /** @internal */
313
+ VisibilityChanged = "visibilityChanged",
314
+ /** @internal */
315
+ VideoDimensionsChanged = "videoDimensionsChanged"
219
316
  }
@@ -176,19 +176,112 @@ var RoomEvent;
176
176
  })(RoomEvent = exports.RoomEvent || (exports.RoomEvent = {}));
177
177
  var ParticipantEvent;
178
178
  (function (ParticipantEvent) {
179
+ /**
180
+ * When a new track is published to room *after* the local
181
+ * participant has joined. It will not fire for tracks that are already published.
182
+ *
183
+ * A track published doesn't mean the participant has subscribed to it. It's
184
+ * simply reflecting the state of the room.
185
+ *
186
+ * args: ([[RemoteTrackPublication]])
187
+ */
179
188
  ParticipantEvent["TrackPublished"] = "trackPublished";
189
+ /**
190
+ * The [[LocalParticipant]] has subscribed to a new track. This event will **always**
191
+ * fire as long as new tracks are ready for use.
192
+ *
193
+ * args: ([[RemoteTrack]], [[RemoteTrackPublication]])
194
+ */
180
195
  ParticipantEvent["TrackSubscribed"] = "trackSubscribed";
196
+ /**
197
+ * Could not subscribe to a track
198
+ *
199
+ * args: (track sid)
200
+ */
181
201
  ParticipantEvent["TrackSubscriptionFailed"] = "trackSubscriptionFailed";
202
+ /**
203
+ * A local track was unpublished. This event is helpful to know when to remove
204
+ * the local track from your UI.
205
+ *
206
+ * When a user stops sharing their screen by pressing "End" on the browser UI,
207
+ * this event will also fire.
208
+ *
209
+ * args: ([[LocalTrackPublication]])
210
+ */
182
211
  ParticipantEvent["TrackUnpublished"] = "trackUnpublished";
212
+ /**
213
+ * A subscribed track is no longer available. Clients should listen to this
214
+ * event and ensure they detach tracks.
215
+ *
216
+ * args: ([[Track]], [[RemoteTrackPublication]])
217
+ */
183
218
  ParticipantEvent["TrackUnsubscribed"] = "trackUnsubscribed";
219
+ /**
220
+ * A track that was muted, fires on both [[RemoteParticipant]]s and [[LocalParticipant]]
221
+ *
222
+ * args: ([[TrackPublication]])
223
+ */
184
224
  ParticipantEvent["TrackMuted"] = "trackMuted";
225
+ /**
226
+ * A track that was unmuted, fires on both [[RemoteParticipant]]s and [[LocalParticipant]]
227
+ *
228
+ * args: ([[TrackPublication]])
229
+ */
185
230
  ParticipantEvent["TrackUnmuted"] = "trackUnmuted";
231
+ /**
232
+ * A local track was published successfully. This event is helpful to know
233
+ * when to update your local UI with the newly published track.
234
+ *
235
+ * args: ([[LocalTrackPublication]])
236
+ */
186
237
  ParticipantEvent["LocalTrackPublished"] = "localTrackPublished";
238
+ /**
239
+ * A local track was unpublished. This event is helpful to know when to remove
240
+ * the local track from your UI.
241
+ *
242
+ * When a user stops sharing their screen by pressing "End" on the browser UI,
243
+ * this event will also fire.
244
+ *
245
+ * args: ([[LocalTrackPublication]])
246
+ */
187
247
  ParticipantEvent["LocalTrackUnpublished"] = "localTrackUnpublished";
248
+ /**
249
+ * @deprecated Use ParticipantMetadataChanged instead
250
+ * @internal
251
+ */
188
252
  ParticipantEvent["MetadataChanged"] = "metadataChanged";
253
+ /**
254
+ * Participant metadata is a simple way for app-specific state to be pushed to
255
+ * all users.
256
+ * When RoomService.UpdateParticipantMetadata is called to change a participant's
257
+ * state, *all* participants in the room will fire this event.
258
+ * To access the current metadata, see [[Participant.metadata]].
259
+ *
260
+ * args: (prevMetadata: string)
261
+ *
262
+ */
189
263
  ParticipantEvent["ParticipantMetadataChanged"] = "participantMetadataChanged";
264
+ /**
265
+ * Data received from this participant as sender.
266
+ * Data packets provides the ability to use LiveKit to send/receive arbitrary payloads.
267
+ * All participants in the room will receive the messages sent to the room.
268
+ *
269
+ * args: (payload: Uint8Array, kind: [[DataPacket_Kind]])
270
+ */
190
271
  ParticipantEvent["DataReceived"] = "dataReceived";
272
+ /**
273
+ * Has speaking status changed for the current participant
274
+ *
275
+ * args: (speaking: boolean)
276
+ */
191
277
  ParticipantEvent["IsSpeakingChanged"] = "isSpeakingChanged";
278
+ /**
279
+ * Connection quality was changed for a Participant. It'll receive updates
280
+ * from the local participant, as well as any [[RemoteParticipant]]s that we are
281
+ * subscribed to.
282
+ *
283
+ * args: (connectionQuality: [[ConnectionQuality]])
284
+ */
192
285
  ParticipantEvent["ConnectionQualityChanged"] = "connectionQualityChanged";
193
286
  // fired only on LocalParticipant
194
287
  /** @internal */
@@ -224,5 +317,9 @@ var TrackEvent;
224
317
  TrackEvent["AudioPlaybackStarted"] = "audioPlaybackStarted";
225
318
  /** @internal */
226
319
  TrackEvent["AudioPlaybackFailed"] = "audioPlaybackFailed";
320
+ /** @internal */
321
+ TrackEvent["VisibilityChanged"] = "visibilityChanged";
322
+ /** @internal */
323
+ TrackEvent["VideoDimensionsChanged"] = "videoDimensionsChanged";
227
324
  })(TrackEvent = exports.TrackEvent || (exports.TrackEvent = {}));
228
325
  //# sourceMappingURL=events.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/room/events.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;GAQG;AACH,IAAY,SAwLX;AAxLD,WAAY,SAAS;IACnB;;;OAGG;IACH,0CAA6B,CAAA;IAE7B;;OAEG;IACH,wCAA2B,CAAA;IAE3B;;;OAGG;IACH,0CAA6B,CAAA;IAE7B;;OAEG;IACH,wDAA2C,CAAA;IAE3C;;;;;;OAMG;IACH,0DAA6C,CAAA;IAE7C;;;;;OAKG;IACH,gEAAmD,CAAA;IAEnD;;;;;;;;OAQG;IACH,8CAAiC,CAAA;IAEjC;;;;;OAKG;IACH,gDAAmC,CAAA;IAEnC;;;;OAIG;IACH,gEAAmD,CAAA;IAEnD;;;;OAIG;IACH,kDAAqC,CAAA;IAErC;;;;;OAKG;IACH,oDAAuC,CAAA;IAEvC;;;;OAIG;IACH,sCAAyB,CAAA;IAEzB;;;;OAIG;IACH,0CAA6B,CAAA;IAE7B;;;;;OAKG;IACH,wDAA2C,CAAA;IAE3C;;;;;;;;OAQG;IACH,4DAA+C,CAAA;IAE/C;;;;;OAKG;IACH,4DAA+C,CAAA;IAE/C;;;OAGG;IACH,gDAAmC,CAAA;IAEnC;;;;;;;;OAQG;IACH,sEAAyD,CAAA;IAEzD;;;;;;;OAOG;IACH,wDAA2C,CAAA;IAE3C;;;;;;OAMG;IACH,0CAA6B,CAAA;IAE7B;;;;OAIG;IACH,gEAAmD,CAAA;IAEnD;;;;;;;;OAQG;IACH,oDAAuC,CAAA;IAEvC;;;;;;OAMG;IACH,kEAAqD,CAAA;AACvD,CAAC,EAxLW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAwLpB;AAED,IAAY,gBAkBX;AAlBD,WAAY,gBAAgB;IAC1B,qDAAiC,CAAA;IACjC,uDAAmC,CAAA;IACnC,uEAAmD,CAAA;IACnD,yDAAqC,CAAA;IACrC,2DAAuC,CAAA;IACvC,6CAAyB,CAAA;IACzB,iDAA6B,CAAA;IAC7B,+DAA2C,CAAA;IAC3C,mEAA+C,CAAA;IAC/C,uDAAmC,CAAA;IACnC,6EAAyD,CAAA;IACzD,iDAA6B,CAAA;IAC7B,2DAAuC,CAAA;IACvC,yEAAqD,CAAA;IACrD,iCAAiC;IACjC,gBAAgB;IAChB,2DAAuC,CAAA;AACzC,CAAC,EAlBW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAkB3B;AAED,gBAAgB;AAChB,IAAY,WAaX;AAbD,WAAY,WAAW;IACrB,sCAAuB,CAAA;IACvB,4CAA6B,CAAA;IAC7B,4CAA6B,CAAA;IAC7B,0CAA2B,CAAA;IAC3B,sDAAuC,CAAA;IACvC,kDAAmC,CAAA;IACnC,4DAA6C,CAAA;IAC7C,kDAAmC,CAAA;IACnC,wDAAyC,CAAA;IACzC,sDAAuC,CAAA;IACvC,wCAAyB,CAAA;IACzB,kEAAmD,CAAA;AACrD,CAAC,EAbW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAatB;AAED,IAAY,UAaX;AAbD,WAAY,UAAU;IACpB,iCAAmB,CAAA;IACnB,6BAAe,CAAA;IACf,iCAAmB,CAAA;IACnB,6BAAe,CAAA;IACf,gBAAgB;IAChB,+CAAiC,CAAA;IACjC,gBAAgB;IAChB,uDAAyC,CAAA;IACzC,gBAAgB;IAChB,2DAA6C,CAAA;IAC7C,gBAAgB;IAChB,yDAA2C,CAAA;AAC7C,CAAC,EAbW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAarB"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/room/events.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,26 @@
1
+ import { RoomOptions } from '../../options';
1
2
  import { DataPacket_Kind } from '../../proto/livekit_models';
2
3
  import RTCEngine from '../RTCEngine';
3
4
  import LocalTrack from '../track/LocalTrack';
4
5
  import LocalTrackPublication from '../track/LocalTrackPublication';
5
- import { TrackPublishOptions } from '../track/options';
6
+ import { CreateLocalTracksOptions, ScreenShareCaptureOptions, TrackPublishOptions } from '../track/options';
6
7
  import { Track } from '../track/Track';
7
8
  import Participant from './Participant';
8
9
  import RemoteParticipant from './RemoteParticipant';
9
10
  export default class LocalParticipant extends Participant {
10
- private engine;
11
11
  audioTracks: Map<string, LocalTrackPublication>;
12
12
  videoTracks: Map<string, LocalTrackPublication>;
13
13
  /** map of track sid => all published tracks */
14
14
  tracks: Map<string, LocalTrackPublication>;
15
+ private pendingPublishing;
16
+ private cameraError;
17
+ private microphoneError;
18
+ private engine;
19
+ private roomOptions?;
15
20
  /** @internal */
16
- constructor(sid: string, identity: string, engine: RTCEngine);
21
+ constructor(sid: string, identity: string, engine: RTCEngine, options: RoomOptions);
22
+ get lastCameraError(): Error | undefined;
23
+ get lastMicrophoneError(): Error | undefined;
17
24
  getTrack(source: Track.Source): LocalTrackPublication | undefined;
18
25
  getTrackByName(name: string): LocalTrackPublication | undefined;
19
26
  /**
@@ -37,6 +44,23 @@ export default class LocalParticipant extends Participant {
37
44
  * way to manage the common tracks (camera, mic, or screen share)
38
45
  */
39
46
  private setTrackEnabled;
47
+ /**
48
+ * Publish both camera and microphone at the same time. This is useful for
49
+ * displaying a single Permission Dialog box to the end user.
50
+ */
51
+ enableCameraAndMicrophone(): Promise<void>;
52
+ /**
53
+ * Create local camera and/or microphone tracks
54
+ * @param options
55
+ * @returns
56
+ */
57
+ createTracks(options?: CreateLocalTracksOptions): Promise<LocalTrack[]>;
58
+ /**
59
+ * Creates a screen capture tracks with getDisplayMedia().
60
+ * A LocalVideoTrack is always created and returned.
61
+ * If { audio: true }, and the browser supports audio capture, a LocalAudioTrack is also created.
62
+ */
63
+ createScreenTracks(options?: ScreenShareCaptureOptions): Promise<Array<LocalTrack>>;
40
64
  /**
41
65
  * Publish a new track to the room
42
66
  * @param track
@@ -64,10 +88,4 @@ export default class LocalParticipant extends Participant {
64
88
  onTrackMuted: (track: LocalTrack, muted?: boolean | undefined) => void;
65
89
  private getPublicationForTrack;
66
90
  private setPreferredCodec;
67
- private computeVideoEncodings;
68
- private presets169;
69
- private presets43;
70
- private presetsScreenShare;
71
- private determineAppropriateEncoding;
72
- private presetsForResolution;
73
91
  }