livekit-client 0.11.2 → 0.13.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 (87) hide show
  1. package/.eslintrc.js +1 -0
  2. package/.github/workflows/publish.yaml +1 -3
  3. package/CHANGELOG.md +5 -0
  4. package/README.md +21 -1
  5. package/dist/api/SignalClient.d.ts +10 -7
  6. package/dist/api/SignalClient.js +19 -10
  7. package/dist/api/SignalClient.js.map +1 -1
  8. package/dist/connect.d.ts +23 -0
  9. package/dist/connect.js +93 -0
  10. package/dist/connect.js.map +1 -0
  11. package/dist/index.d.ts +4 -2
  12. package/dist/index.js +4 -2
  13. package/dist/index.js.map +1 -1
  14. package/dist/options.d.ts +5 -3
  15. package/dist/options.js.map +1 -1
  16. package/dist/proto/livekit_models.d.ts +68 -54
  17. package/dist/proto/livekit_models.js +324 -362
  18. package/dist/proto/livekit_models.js.map +1 -1
  19. package/dist/proto/livekit_rtc.d.ts +31 -61
  20. package/dist/proto/livekit_rtc.js +177 -356
  21. package/dist/proto/livekit_rtc.js.map +1 -1
  22. package/dist/room/DeviceManager.d.ts +10 -0
  23. package/dist/room/DeviceManager.js +77 -0
  24. package/dist/room/DeviceManager.js.map +1 -0
  25. package/dist/room/PCTransport.d.ts +5 -0
  26. package/dist/room/PCTransport.js +43 -0
  27. package/dist/room/PCTransport.js.map +1 -1
  28. package/dist/room/RTCEngine.d.ts +21 -15
  29. package/dist/room/RTCEngine.js +122 -87
  30. package/dist/room/RTCEngine.js.map +1 -1
  31. package/dist/room/Room.d.ts +47 -3
  32. package/dist/room/Room.js +167 -10
  33. package/dist/room/Room.js.map +1 -1
  34. package/dist/room/defaults.d.ts +3 -0
  35. package/dist/room/defaults.js +13 -0
  36. package/dist/room/defaults.js.map +1 -0
  37. package/dist/room/events.d.ts +26 -3
  38. package/dist/room/events.js +25 -2
  39. package/dist/room/events.js.map +1 -1
  40. package/dist/room/participant/LocalParticipant.d.ts +32 -9
  41. package/dist/room/participant/LocalParticipant.js +165 -60
  42. package/dist/room/participant/LocalParticipant.js.map +1 -1
  43. package/dist/room/participant/Participant.d.ts +14 -0
  44. package/dist/room/participant/Participant.js +39 -0
  45. package/dist/room/participant/Participant.js.map +1 -1
  46. package/dist/room/participant/RemoteParticipant.d.ts +2 -0
  47. package/dist/room/participant/RemoteParticipant.js +14 -0
  48. package/dist/room/participant/RemoteParticipant.js.map +1 -1
  49. package/dist/room/track/LocalAudioTrack.d.ts +3 -0
  50. package/dist/room/track/LocalAudioTrack.js +37 -0
  51. package/dist/room/track/LocalAudioTrack.js.map +1 -1
  52. package/dist/room/track/LocalTrack.d.ts +6 -2
  53. package/dist/room/track/LocalTrack.js +49 -6
  54. package/dist/room/track/LocalTrack.js.map +1 -1
  55. package/dist/room/track/LocalTrackPublication.d.ts +6 -3
  56. package/dist/room/track/LocalTrackPublication.js +21 -2
  57. package/dist/room/track/LocalTrackPublication.js.map +1 -1
  58. package/dist/room/track/LocalVideoTrack.d.ts +3 -2
  59. package/dist/room/track/LocalVideoTrack.js +34 -5
  60. package/dist/room/track/LocalVideoTrack.js.map +1 -1
  61. package/dist/room/track/RemoteAudioTrack.d.ts +2 -0
  62. package/dist/room/track/RemoteAudioTrack.js +8 -0
  63. package/dist/room/track/RemoteAudioTrack.js.map +1 -1
  64. package/dist/room/track/RemoteVideoTrack.d.ts +1 -0
  65. package/dist/room/track/RemoteVideoTrack.js +6 -1
  66. package/dist/room/track/RemoteVideoTrack.js.map +1 -1
  67. package/dist/room/track/Track.d.ts +14 -2
  68. package/dist/room/track/Track.js +42 -0
  69. package/dist/room/track/Track.js.map +1 -1
  70. package/dist/room/track/TrackPublication.d.ts +1 -0
  71. package/dist/room/track/TrackPublication.js +2 -0
  72. package/dist/room/track/TrackPublication.js.map +1 -1
  73. package/dist/room/track/create.d.ts +23 -0
  74. package/dist/room/track/create.js +166 -0
  75. package/dist/room/track/create.js.map +1 -0
  76. package/dist/room/track/options.d.ts +47 -17
  77. package/dist/room/track/options.js +11 -6
  78. package/dist/room/track/options.js.map +1 -1
  79. package/dist/version.d.ts +2 -2
  80. package/dist/version.js +2 -2
  81. package/example/index.html +51 -20
  82. package/example/sample.ts +204 -75
  83. package/example/webpack.config.js +8 -2
  84. package/package.json +11 -10
  85. package/dist/livekit.d.ts +0 -42
  86. package/dist/livekit.js +0 -194
  87. package/dist/livekit.js.map +0 -1
@@ -12,8 +12,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.maxICEConnectTimeout = void 0;
15
16
  const events_1 = require("events");
16
17
  const loglevel_1 = __importDefault(require("loglevel"));
18
+ const livekit_models_1 = require("../proto/livekit_models");
17
19
  const livekit_rtc_1 = require("../proto/livekit_rtc");
18
20
  const errors_1 = require("./errors");
19
21
  const events_2 = require("./events");
@@ -22,13 +24,34 @@ const utils_1 = require("./utils");
22
24
  const lossyDataChannel = '_lossy';
23
25
  const reliableDataChannel = '_reliable';
24
26
  const maxReconnectRetries = 5;
27
+ exports.maxICEConnectTimeout = 5 * 1000;
28
+ /** @internal */
25
29
  class RTCEngine extends events_1.EventEmitter {
26
30
  constructor(client, config) {
27
31
  super();
32
+ this.subscriberPrimary = false;
28
33
  this.iceConnected = false;
29
34
  this.isClosed = true;
30
35
  this.pendingTrackResolvers = {};
36
+ // true if publisher connection has already been established.
37
+ // this is helpful to know if we need to restart ICE on the publisher connection
38
+ this.hasPublished = false;
31
39
  this.reconnectAttempts = 0;
40
+ this.handleDataChannel = ({ channel }) => __awaiter(this, void 0, void 0, function* () {
41
+ if (!channel) {
42
+ return;
43
+ }
44
+ if (channel.label === reliableDataChannel) {
45
+ this.reliableDCSub = channel;
46
+ }
47
+ else if (channel.label === lossyDataChannel) {
48
+ this.lossyDCSub = channel;
49
+ }
50
+ else {
51
+ return;
52
+ }
53
+ channel.onmessage = this.handleDataMessage;
54
+ });
32
55
  this.handleDataMessage = (message) => __awaiter(this, void 0, void 0, function* () {
33
56
  // decode
34
57
  let buffer;
@@ -42,10 +65,10 @@ class RTCEngine extends events_1.EventEmitter {
42
65
  loglevel_1.default.error('unsupported data type', message.data);
43
66
  return;
44
67
  }
45
- const dp = livekit_rtc_1.DataPacket.decode(new Uint8Array(buffer));
68
+ const dp = livekit_models_1.DataPacket.decode(new Uint8Array(buffer));
46
69
  if (dp.speaker) {
47
70
  // dispatch speaker updates
48
- this.emit(events_2.EngineEvent.SpeakersUpdate, dp.speaker.speakers);
71
+ this.emit(events_2.EngineEvent.ActiveSpeakersUpdate, dp.speaker.speakers);
49
72
  }
50
73
  else if (dp.user) {
51
74
  this.emit(events_2.EngineEvent.DataPacketReceived, dp.user, dp.kind);
@@ -74,47 +97,23 @@ class RTCEngine extends events_1.EventEmitter {
74
97
  .catch(this.handleDisconnect);
75
98
  }, delay);
76
99
  };
77
- this.emitTrackEvent = (track, stream, receiver) => {
78
- this.emit(events_2.EngineEvent.MediaTrackAdded, track, stream, receiver);
79
- };
80
100
  this.client = client;
81
101
  this.rtcConfig = config || {};
82
- this.useLegacy = utils_1.useLegacyAPI();
83
- loglevel_1.default.trace('creating RTCEngine', 'useLegacy', this.useLegacy);
84
102
  }
85
103
  join(url, token, opts) {
86
104
  return __awaiter(this, void 0, void 0, function* () {
87
105
  this.url = url;
88
106
  this.token = token;
89
- const joinResponse = yield this.client.join(url, token, this.useLegacy, opts);
107
+ const joinResponse = yield this.client.join(url, token, opts);
90
108
  this.isClosed = false;
91
- if (joinResponse.iceServers && !this.rtcConfig.iceServers) {
92
- const rtcIceServers = [];
93
- joinResponse.iceServers.forEach((iceServer) => {
94
- const rtcIceServer = {
95
- urls: iceServer.urls,
96
- };
97
- if (iceServer.username)
98
- rtcIceServer.username = iceServer.username;
99
- if (iceServer.credential) {
100
- rtcIceServer.credential = iceServer.credential;
101
- }
102
- rtcIceServers.push(rtcIceServer);
103
- });
104
- this.rtcConfig.iceServers = rtcIceServers;
105
- }
106
- // update ICE servers before creating PeerConnection
109
+ this.subscriberPrimary = joinResponse.subscriberPrimary;
107
110
  if (!this.publisher) {
108
- const conf = this.rtcConfig;
109
- if (this.useLegacy) {
110
- conf.sdpSemantics = 'plan-b';
111
- }
112
- this.publisher = new PCTransport_1.default(this.rtcConfig);
113
- this.subscriber = new PCTransport_1.default(this.rtcConfig);
114
- this.configure();
111
+ this.configure(joinResponse);
115
112
  }
116
113
  // create offer
117
- yield this.negotiate();
114
+ if (!this.subscriberPrimary) {
115
+ yield this.negotiate();
116
+ }
118
117
  return joinResponse;
119
118
  });
120
119
  }
@@ -151,10 +150,29 @@ class RTCEngine extends events_1.EventEmitter {
151
150
  updateMuteStatus(trackSid, muted) {
152
151
  this.client.sendMuteTrack(trackSid, muted);
153
152
  }
154
- configure() {
155
- if (!this.publisher || !this.subscriber) {
153
+ configure(joinResponse) {
154
+ // already configured
155
+ if (this.publisher || this.subscriber) {
156
156
  return;
157
157
  }
158
+ // update ICE servers before creating PeerConnection
159
+ if (joinResponse.iceServers && !this.rtcConfig.iceServers) {
160
+ const rtcIceServers = [];
161
+ joinResponse.iceServers.forEach((iceServer) => {
162
+ const rtcIceServer = {
163
+ urls: iceServer.urls,
164
+ };
165
+ if (iceServer.username)
166
+ rtcIceServer.username = iceServer.username;
167
+ if (iceServer.credential) {
168
+ rtcIceServer.credential = iceServer.credential;
169
+ }
170
+ rtcIceServers.push(rtcIceServer);
171
+ });
172
+ this.rtcConfig.iceServers = rtcIceServers;
173
+ }
174
+ this.publisher = new PCTransport_1.default(this.rtcConfig);
175
+ this.subscriber = new PCTransport_1.default(this.rtcConfig);
158
176
  this.publisher.pc.onicecandidate = (ev) => {
159
177
  if (!ev.candidate)
160
178
  return;
@@ -166,52 +184,44 @@ class RTCEngine extends events_1.EventEmitter {
166
184
  return;
167
185
  this.client.sendIceCandidate(ev.candidate, livekit_rtc_1.SignalTarget.SUBSCRIBER);
168
186
  };
169
- this.publisher.pc.onnegotiationneeded = () => {
170
- var _a;
171
- if (((_a = this.publisher) === null || _a === void 0 ? void 0 : _a.pc.iceConnectionState) === 'new') {
172
- return;
173
- }
174
- this.negotiate();
187
+ this.publisher.onOffer = (offer) => {
188
+ this.client.sendOffer(offer);
175
189
  };
176
- this.publisher.pc.oniceconnectionstatechange = () => {
177
- if (!this.publisher) {
178
- return;
179
- }
180
- if (this.publisher.pc.iceConnectionState === 'connected') {
190
+ let primaryPC = this.publisher.pc;
191
+ if (joinResponse.subscriberPrimary) {
192
+ primaryPC = this.subscriber.pc;
193
+ // in subscriber primary mode, server side opens sub data channels.
194
+ this.subscriber.pc.ondatachannel = this.handleDataChannel;
195
+ }
196
+ primaryPC.oniceconnectionstatechange = () => {
197
+ if (primaryPC.iceConnectionState === 'connected') {
181
198
  loglevel_1.default.trace('ICE connected');
182
199
  if (!this.iceConnected) {
183
200
  this.iceConnected = true;
184
201
  this.emit(events_2.EngineEvent.Connected);
185
202
  }
186
203
  }
187
- else if (this.publisher.pc.iceConnectionState === 'failed') {
188
- this.iceConnected = false;
204
+ else if (primaryPC.iceConnectionState === 'failed') {
189
205
  loglevel_1.default.trace('ICE disconnected');
190
- this.handleDisconnect('peerconnection');
206
+ if (this.iceConnected) {
207
+ this.iceConnected = false;
208
+ this.handleDisconnect('peerconnection');
209
+ }
191
210
  }
192
211
  };
193
- if (this.useLegacy) {
194
- this.subscriber.pc.addEventListener('addstream', (ev) => {
195
- const { stream } = ev;
196
- stream.getTracks().forEach((t) => {
197
- this.emitTrackEvent(t, stream);
198
- });
199
- });
200
- }
201
- else {
202
- this.subscriber.pc.ontrack = (ev) => {
203
- this.emitTrackEvent(ev.track, ev.streams[0], ev.receiver);
204
- };
205
- }
212
+ this.subscriber.pc.ontrack = (ev) => {
213
+ this.emit(events_2.EngineEvent.MediaTrackAdded, ev.track, ev.streams[0], ev.receiver);
214
+ };
206
215
  // data channels
207
216
  this.lossyDC = this.publisher.pc.createDataChannel(lossyDataChannel, {
208
217
  // will drop older packets that arrive
209
218
  ordered: true,
210
- maxRetransmits: 1,
219
+ maxRetransmits: 0,
211
220
  });
212
221
  this.reliableDC = this.publisher.pc.createDataChannel(reliableDataChannel, {
213
222
  ordered: true,
214
223
  });
224
+ // also handle messages over the pub channel, for backwards compatibility
215
225
  this.lossyDC.onmessage = this.handleDataMessage;
216
226
  this.reliableDC.onmessage = this.handleDataMessage;
217
227
  // configure signaling client
@@ -259,8 +269,8 @@ class RTCEngine extends events_1.EventEmitter {
259
269
  delete this.pendingTrackResolvers[res.cid];
260
270
  resolve(res.track);
261
271
  };
262
- this.client.onActiveSpeakersChanged = (speakers) => {
263
- this.emit(events_2.EngineEvent.SpeakersUpdate, speakers);
272
+ this.client.onSpeakersChanged = (speakers) => {
273
+ this.emit(events_2.EngineEvent.SpeakersChanged, speakers);
264
274
  };
265
275
  this.client.onClose = () => {
266
276
  this.handleDisconnect('signal');
@@ -269,6 +279,12 @@ class RTCEngine extends events_1.EventEmitter {
269
279
  this.close();
270
280
  this.emit(events_2.EngineEvent.Disconnected);
271
281
  };
282
+ this.client.onRemoteMuteChanged = (trackSid, muted) => {
283
+ this.emit(events_2.EngineEvent.RemoteMuteChanged, trackSid, muted);
284
+ };
285
+ this.client.onRoomUpdate = (room) => {
286
+ this.emit(events_2.EngineEvent.RoomUpdate, room);
287
+ };
272
288
  }
273
289
  reconnect() {
274
290
  return __awaiter(this, void 0, void 0, function* () {
@@ -288,18 +304,13 @@ class RTCEngine extends events_1.EventEmitter {
288
304
  if (!this.publisher || !this.subscriber) {
289
305
  throw new errors_1.UnexpectedConnectionState('publisher and subscriber connections unset');
290
306
  }
291
- this.publisher.restartingIce = true;
292
307
  this.subscriber.restartingIce = true;
293
- // @ts-ignore
294
- if (this.publisher.pc.restartIce) {
295
- // @ts-ignore
296
- this.publisher.pc.restartIce();
297
- }
298
- else {
299
- yield this.negotiate({ iceRestart: true });
308
+ // only restart publisher if it's needed
309
+ if (this.hasPublished) {
310
+ yield this.publisher.createAndSendOffer({ iceRestart: true });
300
311
  }
301
312
  const startTime = (new Date()).getTime();
302
- while ((new Date()).getTime() - startTime < 10 * 1000) {
313
+ while ((new Date()).getTime() - startTime < exports.maxICEConnectTimeout * 2) {
303
314
  if (this.iceConnected) {
304
315
  // reconnect success
305
316
  this.emit(events_2.EngineEvent.Reconnected);
@@ -311,25 +322,49 @@ class RTCEngine extends events_1.EventEmitter {
311
322
  throw new errors_1.ConnectionError('could not establish ICE connection');
312
323
  });
313
324
  }
314
- negotiate(options) {
325
+ /* @internal */
326
+ sendDataPacket(packet, kind) {
315
327
  return __awaiter(this, void 0, void 0, function* () {
316
- if (!this.publisher) {
328
+ const msg = livekit_models_1.DataPacket.encode(packet).finish();
329
+ // make sure we do have a data connection
330
+ yield this.ensurePublisherConnected();
331
+ if (kind === livekit_models_1.DataPacket_Kind.LOSSY && this.lossyDC) {
332
+ this.lossyDC.send(msg);
333
+ }
334
+ else if (kind === livekit_models_1.DataPacket_Kind.RELIABLE && this.reliableDC) {
335
+ this.reliableDC.send(msg);
336
+ }
337
+ });
338
+ }
339
+ ensurePublisherConnected() {
340
+ return __awaiter(this, void 0, void 0, function* () {
341
+ if (!this.subscriberPrimary) {
317
342
  return;
318
343
  }
319
- const { pc } = this.publisher;
320
- if (pc.remoteDescription && pc.signalingState === 'have-local-offer') {
321
- // it's still waiting for the last offer, and it won't be able to create
322
- // a new offer in this state. We'll reuse the last remote description to
323
- // get it out of this state
324
- yield pc.setRemoteDescription(pc.remoteDescription);
325
- }
326
- // TODO: what if signaling state changed? will need to queue and retry
327
- loglevel_1.default.debug('starting to negotiate', pc.signalingState);
328
- const offer = yield pc.createOffer(options);
329
- yield pc.setLocalDescription(offer);
330
- this.client.sendOffer(offer);
344
+ if (this.publisher && this.publisher.pc.iceConnectionState === 'connected') {
345
+ return;
346
+ }
347
+ // start negotiation
348
+ yield this.negotiate();
349
+ // wait until publisher ICE connected
350
+ const endTime = (new Date()).getTime() + exports.maxICEConnectTimeout;
351
+ while ((new Date()).getTime() < endTime) {
352
+ if (this.publisher && this.publisher.pc.iceConnectionState === 'connected') {
353
+ return;
354
+ }
355
+ yield utils_1.sleep(50);
356
+ }
357
+ throw new errors_1.ConnectionError('could not establish publisher connection');
331
358
  });
332
359
  }
360
+ /** @internal */
361
+ negotiate() {
362
+ if (!this.publisher) {
363
+ return;
364
+ }
365
+ this.hasPublished = true;
366
+ this.publisher.negotiate();
367
+ }
333
368
  }
334
369
  exports.default = RTCEngine;
335
370
  //# sourceMappingURL=RTCEngine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RTCEngine.js","sourceRoot":"","sources":["../../src/room/RTCEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RTCEngine.js","sourceRoot":"","sources":["../../src/room/RTCEngine.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ import LocalParticipant from './participant/LocalParticipant';
5
5
  import Participant from './participant/Participant';
6
6
  import RemoteParticipant from './participant/RemoteParticipant';
7
7
  import RTCEngine from './RTCEngine';
8
+ import { TrackPublishDefaults } from './track/options';
8
9
  export declare enum RoomState {
9
10
  Disconnected = "disconnected",
10
11
  Connected = "connected",
@@ -35,12 +36,45 @@ declare class Room extends EventEmitter {
35
36
  name: string;
36
37
  /** the current participant */
37
38
  localParticipant: LocalParticipant;
39
+ /** room metadata */
40
+ metadata: string | undefined;
38
41
  private audioEnabled;
39
42
  private audioContext?;
40
43
  /** @internal */
41
44
  constructor(client: SignalClient, config?: RTCConfiguration);
45
+ /**
46
+ * getLocalDevices abstracts navigator.mediaDevices.enumerateDevices.
47
+ * In particular, it handles Chrome's unique behavior of creating `default`
48
+ * devices. When encountered, it'll be removed from the list of devices.
49
+ * The actual default device will be placed at top.
50
+ * @param kind
51
+ * @returns a list of available local devices
52
+ */
53
+ static getLocalDevices(kind: MediaDeviceKind): Promise<MediaDeviceInfo[]>;
54
+ /**
55
+ * Sets the default device to use for the MediaDeviceKind. Subsequent tracks
56
+ * created will be using the specified device.
57
+ *
58
+ * @param kind
59
+ * @param deviceId set to undefined to clear the default
60
+ * @returns
61
+ */
62
+ static setDefaultDevice(kind: MediaDeviceKind, deviceId: string | undefined): void;
63
+ /**
64
+ * @returns the default device set by the user. If no device is explicitly set, returns undefined
65
+ */
66
+ static getDefaultDevice(kind: MediaDeviceKind): string | undefined;
42
67
  /** @internal */
43
68
  connect: (url: string, token: string, opts?: SignalOptions | undefined) => Promise<Room>;
69
+ /**
70
+ * disconnects the room, emits [[RoomEvent.Disconnected]]
71
+ */
72
+ disconnect: () => void;
73
+ /**
74
+ * Set default publish options
75
+ */
76
+ set defaultTrackOptions(opts: TrackPublishDefaults);
77
+ get defaultTrackOptions(): TrackPublishDefaults;
44
78
  /**
45
79
  * Browsers have different policies regarding audio playback. Most requiring
46
80
  * some form of user interaction (click/tap/etc).
@@ -54,17 +88,27 @@ declare class Room extends EventEmitter {
54
88
  */
55
89
  get canPlaybackAudio(): boolean;
56
90
  /**
57
- * disconnects the room, emits [[RoomEvent.Disconnected]]
91
+ * Switches all active device used in this room to the given device.
92
+ *
93
+ * Note: setting AudioOutput is not supported on some browsers. See [setSinkId](https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/setSinkId#browser_compatibility)
94
+ *
95
+ * @param kind use `videoinput` for camera track,
96
+ * `audioinput` for microphone track,
97
+ * `audiooutput` to set speaker for all incoming audio tracks
98
+ * @param deviceId
58
99
  */
59
- disconnect: () => void;
100
+ switchActiveDevice(kind: MediaDeviceKind, deviceId: string): Promise<void>;
60
101
  private onTrackAdded;
61
102
  private handleDisconnect;
62
103
  private handleParticipantUpdates;
63
104
  private handleParticipantDisconnected;
64
- private handleSpeakerUpdate;
105
+ private handleActiveSpeakersUpdate;
106
+ private handleSpeakersChanged;
65
107
  private handleDataPacket;
66
108
  private handleAudioPlaybackStarted;
67
109
  private handleAudioPlaybackFailed;
110
+ private handleDeviceChange;
111
+ private handleRoomUpdate;
68
112
  private acquireAudioContext;
69
113
  private getOrCreateParticipant;
70
114
  /** @internal */