livekit-client 1.1.8 → 1.1.9

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 (36) hide show
  1. package/README.md +1 -0
  2. package/dist/livekit-client.esm.mjs +460 -118
  3. package/dist/livekit-client.esm.mjs.map +1 -1
  4. package/dist/livekit-client.umd.js +1 -1
  5. package/dist/livekit-client.umd.js.map +1 -1
  6. package/dist/src/api/SignalClient.d.ts +2 -1
  7. package/dist/src/api/SignalClient.d.ts.map +1 -1
  8. package/dist/src/index.d.ts +4 -3
  9. package/dist/src/index.d.ts.map +1 -1
  10. package/dist/src/proto/livekit_models.d.ts +234 -0
  11. package/dist/src/proto/livekit_models.d.ts.map +1 -1
  12. package/dist/src/proto/livekit_rtc.d.ts +944 -6
  13. package/dist/src/proto/livekit_rtc.d.ts.map +1 -1
  14. package/dist/src/room/RTCEngine.d.ts +2 -2
  15. package/dist/src/room/RTCEngine.d.ts.map +1 -1
  16. package/dist/src/room/Room.d.ts +2 -2
  17. package/dist/src/room/Room.d.ts.map +1 -1
  18. package/dist/src/room/track/LocalAudioTrack.d.ts.map +1 -1
  19. package/dist/src/room/track/LocalTrack.d.ts +2 -0
  20. package/dist/src/room/track/LocalTrack.d.ts.map +1 -1
  21. package/dist/src/room/track/LocalVideoTrack.d.ts.map +1 -1
  22. package/dist/src/room/track/RemoteTrack.d.ts.map +1 -1
  23. package/package.json +3 -1
  24. package/src/api/SignalClient.ts +19 -6
  25. package/src/index.ts +6 -2
  26. package/src/proto/livekit_models.ts +179 -4
  27. package/src/proto/livekit_rtc.ts +14 -1
  28. package/src/room/RTCEngine.ts +3 -2
  29. package/src/room/Room.ts +10 -8
  30. package/src/room/track/LocalAudioTrack.ts +16 -12
  31. package/src/room/track/LocalTrack.ts +37 -25
  32. package/src/room/track/LocalVideoTrack.ts +15 -11
  33. package/src/room/track/RemoteTrack.ts +1 -0
  34. package/dist/src/api/RequestQueue.d.ts +0 -13
  35. package/dist/src/api/RequestQueue.d.ts.map +0 -1
  36. package/src/api/RequestQueue.ts +0 -53
@@ -86,21 +86,25 @@ export default class LocalVideoTrack extends LocalTrack {
86
86
  }
87
87
 
88
88
  async mute(): Promise<LocalVideoTrack> {
89
- if (this.source === Track.Source.Camera) {
90
- log.debug('stopping camera track');
91
- // also stop the track, so that camera indicator is turned off
92
- this._mediaStreamTrack.stop();
93
- }
94
- await super.mute();
89
+ await this.muteQueue.run(async () => {
90
+ if (this.source === Track.Source.Camera && !this.isUserProvided) {
91
+ log.debug('stopping camera track');
92
+ // also stop the track, so that camera indicator is turned off
93
+ this._mediaStreamTrack.stop();
94
+ }
95
+ await super.mute();
96
+ });
95
97
  return this;
96
98
  }
97
99
 
98
100
  async unmute(): Promise<LocalVideoTrack> {
99
- if (this.source === Track.Source.Camera && !this.isUserProvided) {
100
- log.debug('reacquiring camera track');
101
- await this.restartTrack();
102
- }
103
- await super.unmute();
101
+ await this.muteQueue.run(async () => {
102
+ if (this.source === Track.Source.Camera && !this.isUserProvided) {
103
+ log.debug('reacquiring camera track');
104
+ await this.restartTrack();
105
+ }
106
+ await super.unmute();
107
+ });
104
108
  return this;
105
109
  }
106
110
 
@@ -21,6 +21,7 @@ export default abstract class RemoteTrack extends Track {
21
21
  setMuted(muted: boolean) {
22
22
  if (this.isMuted !== muted) {
23
23
  this.isMuted = muted;
24
+ this._mediaStreamTrack.enabled = !muted;
24
25
  this.emit(muted ? TrackEvent.Muted : TrackEvent.Unmuted, this);
25
26
  }
26
27
  }
@@ -1,13 +0,0 @@
1
- export default class Queue {
2
- private queue;
3
- private running;
4
- constructor();
5
- enqueue(cb: () => void): void;
6
- dequeue(): void;
7
- run(): Promise<void>;
8
- pause(): void;
9
- reset(): void;
10
- isRunning(): boolean;
11
- isEmpty(): boolean;
12
- }
13
- //# sourceMappingURL=RequestQueue.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RequestQueue.d.ts","sourceRoot":"","sources":["../../../src/api/RequestQueue.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,OAAO,KAAK;IACxB,OAAO,CAAC,KAAK,CAAoB;IAEjC,OAAO,CAAC,OAAO,CAAU;;IAOzB,OAAO,CAAC,EAAE,EAAE,MAAM,IAAI;IAKtB,OAAO;IAMD,GAAG;IAWT,KAAK;IAKL,KAAK;IAML,SAAS;IAIT,OAAO;CAGR"}
@@ -1,53 +0,0 @@
1
- import log from '../logger';
2
-
3
- export default class Queue {
4
- private queue: Array<() => void>;
5
-
6
- private running: boolean;
7
-
8
- constructor() {
9
- this.queue = [];
10
- this.running = false;
11
- }
12
-
13
- enqueue(cb: () => void) {
14
- log.trace('enqueuing request to fire later');
15
- this.queue.push(cb);
16
- }
17
-
18
- dequeue() {
19
- const evt = this.queue.shift();
20
- if (evt) evt();
21
- log.trace('firing request from queue');
22
- }
23
-
24
- async run() {
25
- if (this.running) return;
26
- log.trace('start queue');
27
- this.running = true;
28
- while (this.running && this.queue.length > 0) {
29
- this.dequeue();
30
- }
31
- this.running = false;
32
- log.trace('queue finished');
33
- }
34
-
35
- pause() {
36
- log.trace('pausing queue');
37
- this.running = false;
38
- }
39
-
40
- reset() {
41
- log.trace('resetting queue');
42
- this.running = false;
43
- this.queue = [];
44
- }
45
-
46
- isRunning() {
47
- return this.running;
48
- }
49
-
50
- isEmpty() {
51
- return this.queue.length === 0;
52
- }
53
- }