livekit-client 0.14.1 → 0.15.1

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 (104) hide show
  1. package/.github/workflows/{lint.yaml → test.yaml} +7 -4
  2. package/.gitmodules +3 -0
  3. package/README.md +46 -14
  4. package/dist/api/SignalClient.d.ts +7 -32
  5. package/dist/api/SignalClient.js +37 -8
  6. package/dist/api/SignalClient.js.map +1 -1
  7. package/dist/connect.d.ts +1 -1
  8. package/dist/connect.js +73 -59
  9. package/dist/connect.js.map +1 -1
  10. package/dist/index.d.ts +3 -3
  11. package/dist/index.js +4 -3
  12. package/dist/index.js.map +1 -1
  13. package/dist/logger.d.ts +10 -0
  14. package/dist/logger.js +15 -0
  15. package/dist/logger.js.map +1 -1
  16. package/dist/options.d.ts +83 -19
  17. package/dist/options.js +0 -10
  18. package/dist/options.js.map +1 -1
  19. package/dist/proto/livekit_models.d.ts +27 -1
  20. package/dist/proto/livekit_models.js +188 -3
  21. package/dist/proto/livekit_models.js.map +1 -1
  22. package/dist/proto/livekit_rtc.d.ts +114 -7
  23. package/dist/proto/livekit_rtc.js +783 -30
  24. package/dist/proto/livekit_rtc.js.map +1 -1
  25. package/dist/room/RTCEngine.d.ts +4 -2
  26. package/dist/room/RTCEngine.js +31 -35
  27. package/dist/room/RTCEngine.js.map +1 -1
  28. package/dist/room/Room.d.ts +16 -17
  29. package/dist/room/Room.js +125 -77
  30. package/dist/room/Room.js.map +1 -1
  31. package/dist/room/events.d.ts +115 -6
  32. package/dist/room/events.js +114 -5
  33. package/dist/room/events.js.map +1 -1
  34. package/dist/room/participant/LocalParticipant.d.ts +29 -9
  35. package/dist/room/participant/LocalParticipant.js +220 -160
  36. package/dist/room/participant/LocalParticipant.js.map +1 -1
  37. package/dist/room/participant/Participant.js +2 -1
  38. package/dist/room/participant/Participant.js.map +1 -1
  39. package/dist/room/participant/RemoteParticipant.d.ts +1 -1
  40. package/dist/room/participant/RemoteParticipant.js +8 -5
  41. package/dist/room/participant/RemoteParticipant.js.map +1 -1
  42. package/dist/room/participant/publishUtils.d.ts +11 -0
  43. package/dist/room/participant/publishUtils.js +148 -0
  44. package/dist/room/participant/publishUtils.js.map +1 -0
  45. package/dist/room/participant/publishUtils.test.d.ts +1 -0
  46. package/dist/room/participant/publishUtils.test.js +79 -0
  47. package/dist/room/participant/publishUtils.test.js.map +1 -0
  48. package/dist/room/stats.d.ts +21 -6
  49. package/dist/room/stats.js +22 -1
  50. package/dist/room/stats.js.map +1 -1
  51. package/dist/room/track/LocalAudioTrack.d.ts +8 -3
  52. package/dist/room/track/LocalAudioTrack.js +49 -3
  53. package/dist/room/track/LocalAudioTrack.js.map +1 -1
  54. package/dist/room/track/LocalTrack.d.ts +4 -3
  55. package/dist/room/track/LocalTrack.js +6 -48
  56. package/dist/room/track/LocalTrack.js.map +1 -1
  57. package/dist/room/track/LocalVideoTrack.d.ts +13 -4
  58. package/dist/room/track/LocalVideoTrack.js +150 -57
  59. package/dist/room/track/LocalVideoTrack.js.map +1 -1
  60. package/dist/room/track/LocalVideoTrack.test.d.ts +1 -0
  61. package/dist/room/track/LocalVideoTrack.test.js +68 -0
  62. package/dist/room/track/LocalVideoTrack.test.js.map +1 -0
  63. package/dist/room/track/RemoteAudioTrack.d.ts +7 -0
  64. package/dist/room/track/RemoteAudioTrack.js +61 -0
  65. package/dist/room/track/RemoteAudioTrack.js.map +1 -1
  66. package/dist/room/track/RemoteTrackPublication.d.ts +2 -3
  67. package/dist/room/track/RemoteTrackPublication.js +11 -10
  68. package/dist/room/track/RemoteTrackPublication.js.map +1 -1
  69. package/dist/room/track/RemoteVideoTrack.d.ts +10 -6
  70. package/dist/room/track/RemoteVideoTrack.js +97 -44
  71. package/dist/room/track/RemoteVideoTrack.js.map +1 -1
  72. package/dist/room/track/Track.d.ts +10 -2
  73. package/dist/room/track/Track.js +29 -2
  74. package/dist/room/track/Track.js.map +1 -1
  75. package/dist/room/track/create.d.ts +4 -6
  76. package/dist/room/track/create.js +10 -57
  77. package/dist/room/track/create.js.map +1 -1
  78. package/dist/room/track/defaults.d.ts +4 -0
  79. package/dist/room/track/defaults.js +21 -0
  80. package/dist/room/track/defaults.js.map +1 -0
  81. package/dist/room/track/options.d.ts +15 -65
  82. package/dist/room/track/options.js +14 -13
  83. package/dist/room/track/options.js.map +1 -1
  84. package/dist/room/track/utils.d.ts +3 -0
  85. package/dist/room/track/utils.js +68 -0
  86. package/dist/room/track/utils.js.map +1 -0
  87. package/dist/room/track/utils.test.d.ts +1 -0
  88. package/dist/room/track/utils.test.js +85 -0
  89. package/dist/room/track/utils.test.js.map +1 -0
  90. package/dist/room/utils.d.ts +7 -1
  91. package/dist/room/utils.js +29 -6
  92. package/dist/room/utils.js.map +1 -1
  93. package/dist/version.d.ts +1 -1
  94. package/dist/version.js +1 -1
  95. package/example/index.html +194 -178
  96. package/example/sample.ts +454 -325
  97. package/example/styles.css +144 -0
  98. package/example/webpack.config.js +1 -1
  99. package/jest.config.js +6 -0
  100. package/package.json +10 -7
  101. package/tsconfig.eslint.json +8 -1
  102. package/dist/room/defaults.d.ts +0 -5
  103. package/dist/room/defaults.js +0 -32
  104. package/dist/room/defaults.js.map +0 -1
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const logger_1 = __importDefault(require("../../logger"));
7
+ const livekit_models_1 = require("../../proto/livekit_models");
7
8
  const livekit_rtc_1 = require("../../proto/livekit_rtc");
8
9
  const events_1 = require("../events");
9
10
  const RemoteVideoTrack_1 = __importDefault(require("./RemoteVideoTrack"));
@@ -12,14 +13,14 @@ class RemoteTrackPublication extends TrackPublication_1.default {
12
13
  constructor() {
13
14
  super(...arguments);
14
15
  this.disabled = false;
15
- this.currentVideoQuality = livekit_rtc_1.VideoQuality.HIGH;
16
+ this.currentVideoQuality = livekit_models_1.VideoQuality.HIGH;
16
17
  this.handleVisibilityChange = (visible) => {
17
- logger_1.default.debug(`automanage video visibility, visible=${visible}`);
18
+ logger_1.default.debug('adaptivestream video visibility', this.trackSid, `visible=${visible}`);
18
19
  this.disabled = !visible;
19
20
  this.emitTrackUpdate();
20
21
  };
21
22
  this.handleVideoDimensionsChange = (dimensions) => {
22
- logger_1.default.debug(`automanage video dimensions, ${dimensions.width}x${dimensions.height}`);
23
+ logger_1.default.debug('adaptivestream video dimensions', this.trackSid, `${dimensions.width}x${dimensions.height}`);
23
24
  this.videoDimensions = dimensions;
24
25
  this.emitTrackUpdate();
25
26
  };
@@ -52,10 +53,10 @@ class RemoteTrackPublication extends TrackPublication_1.default {
52
53
  * @param enabled
53
54
  */
54
55
  setEnabled(enabled) {
55
- if (this.isAutoManageVideo || !this.isSubscribed || this.disabled === !enabled) {
56
+ if (this.isAdaptiveStream || !this.isSubscribed || this.disabled === !enabled) {
56
57
  return;
57
58
  }
58
- if (this.track instanceof RemoteVideoTrack_1.default && this.track.isAutoManaged) {
59
+ if (this.track instanceof RemoteVideoTrack_1.default && this.track.isAdaptiveStream) {
59
60
  return;
60
61
  }
61
62
  this.disabled = !enabled;
@@ -69,7 +70,7 @@ class RemoteTrackPublication extends TrackPublication_1.default {
69
70
  * optimize for uninterrupted video
70
71
  */
71
72
  setVideoQuality(quality) {
72
- if (this.isAutoManageVideo || !this.isSubscribed || this.currentVideoQuality === quality) {
73
+ if (this.isAdaptiveStream || !this.isSubscribed || this.currentVideoQuality === quality) {
73
74
  return;
74
75
  }
75
76
  this.currentVideoQuality = quality;
@@ -78,7 +79,7 @@ class RemoteTrackPublication extends TrackPublication_1.default {
78
79
  }
79
80
  setVideoDimensions(dimensions) {
80
81
  var _a, _b;
81
- if (!this.isSubscribed || this.isAutoManageVideo) {
82
+ if (!this.isSubscribed || this.isAdaptiveStream) {
82
83
  return;
83
84
  }
84
85
  if (((_a = this.videoDimensions) === null || _a === void 0 ? void 0 : _a.width) === dimensions.width
@@ -112,8 +113,8 @@ class RemoteTrackPublication extends TrackPublication_1.default {
112
113
  this.metadataMuted = info.muted;
113
114
  (_a = this.track) === null || _a === void 0 ? void 0 : _a.setMuted(info.muted);
114
115
  }
115
- get isAutoManageVideo() {
116
- return this.track instanceof RemoteVideoTrack_1.default && this.track.isAutoManaged;
116
+ get isAdaptiveStream() {
117
+ return this.track instanceof RemoteVideoTrack_1.default && this.track.isAdaptiveStream;
117
118
  }
118
119
  emitTrackUpdate() {
119
120
  const settings = livekit_rtc_1.UpdateTrackSettings.fromPartial({
@@ -129,7 +130,7 @@ class RemoteTrackPublication extends TrackPublication_1.default {
129
130
  }
130
131
  else {
131
132
  // defaults to high quality
132
- settings.quality = livekit_rtc_1.VideoQuality.HIGH;
133
+ settings.quality = livekit_models_1.VideoQuality.HIGH;
133
134
  }
134
135
  this.emit(events_1.TrackEvent.UpdateSettings, settings);
135
136
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RemoteTrackPublication.js","sourceRoot":"","sources":["../../../src/room/track/RemoteTrackPublication.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RemoteTrackPublication.js","sourceRoot":"","sources":["../../../src/room/track/RemoteTrackPublication.ts"],"names":[],"mappings":"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"}
@@ -4,13 +4,14 @@ export default class RemoteVideoTrack extends Track {
4
4
  receiver?: RTCRtpReceiver;
5
5
  private prevStats?;
6
6
  private elementInfos;
7
- private intersectionObserver?;
8
- private resizeObserver?;
9
- private autoManaged?;
7
+ private adaptiveStream?;
10
8
  private lastVisible?;
11
9
  private lastDimensions?;
12
- constructor(mediaTrack: MediaStreamTrack, sid: string, receiver?: RTCRtpReceiver, autoManaged?: boolean);
13
- get isAutoManaged(): boolean;
10
+ private _currentBitrate;
11
+ constructor(mediaTrack: MediaStreamTrack, sid: string, receiver?: RTCRtpReceiver, adaptiveStream?: boolean);
12
+ get isAdaptiveStream(): boolean;
13
+ /** current receive bits per second */
14
+ get currentBitrate(): number;
14
15
  /** @internal */
15
16
  setMuted(muted: boolean): void;
16
17
  attach(): HTMLMediaElement;
@@ -19,9 +20,12 @@ export default class RemoteVideoTrack extends Track {
19
20
  detach(element: HTMLMediaElement): HTMLMediaElement;
20
21
  start(): void;
21
22
  stop(): void;
23
+ startMonitor(): void;
24
+ private monitorReceiver;
25
+ private getReceiverStats;
22
26
  private stopObservingElement;
23
27
  private handleVisibilityChanged;
24
- private handleResize;
28
+ private readonly debouncedHandleResize;
25
29
  private updateVisibility;
26
30
  private updateDimensions;
27
31
  }
@@ -1,47 +1,63 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
3
12
  const ts_debounce_1 = require("ts-debounce");
4
13
  const events_1 = require("../events");
14
+ const stats_1 = require("../stats");
15
+ const utils_1 = require("../utils");
5
16
  const Track_1 = require("./Track");
6
- const REACTION_DELAY = 1000;
17
+ const REACTION_DELAY = 100;
7
18
  class RemoteVideoTrack extends Track_1.Track {
8
- constructor(mediaTrack, sid, receiver, autoManaged) {
19
+ constructor(mediaTrack, sid, receiver, adaptiveStream) {
9
20
  super(mediaTrack, Track_1.Track.Kind.Video);
10
21
  this.elementInfos = [];
11
- this.handleVisibilityChanged = (entries) => {
12
- for (const entry of entries) {
13
- const { target, isIntersecting } = entry;
14
- const elementInfo = this.elementInfos.find((info) => info.element === target);
15
- if (elementInfo) {
16
- elementInfo.visible = isIntersecting;
17
- elementInfo.visibilityChangedAt = Date.now();
18
- }
22
+ this._currentBitrate = 0;
23
+ this.monitorReceiver = () => __awaiter(this, void 0, void 0, function* () {
24
+ if (!this.receiver) {
25
+ this._currentBitrate = 0;
26
+ return;
27
+ }
28
+ const stats = yield this.getReceiverStats();
29
+ if (stats && this.prevStats) {
30
+ this._currentBitrate = stats_1.computeBitrate(stats, this.prevStats);
31
+ }
32
+ this.prevStats = stats;
33
+ setTimeout(() => {
34
+ this.monitorReceiver();
35
+ }, stats_1.monitorFrequency);
36
+ });
37
+ this.handleVisibilityChanged = (entry) => {
38
+ const { target, isIntersecting } = entry;
39
+ const elementInfo = this.elementInfos.find((info) => info.element === target);
40
+ if (elementInfo) {
41
+ elementInfo.visible = isIntersecting;
42
+ elementInfo.visibilityChangedAt = Date.now();
19
43
  }
20
44
  this.updateVisibility();
21
45
  };
22
- this.handleResize = (entries) => {
23
- for (const entry of entries) {
24
- const { target, contentRect } = entry;
25
- const elementInfo = this.elementInfos.find((info) => info.element === target);
26
- if (elementInfo) {
27
- elementInfo.width = contentRect.width;
28
- elementInfo.height = contentRect.height;
29
- }
30
- }
46
+ this.debouncedHandleResize = ts_debounce_1.debounce(() => {
31
47
  this.updateDimensions();
32
- };
48
+ }, REACTION_DELAY);
33
49
  // override id to parsed ID
34
50
  this.sid = sid;
35
51
  this.receiver = receiver;
36
- this.autoManaged = autoManaged;
37
- if (this.isAutoManaged) {
38
- this.intersectionObserver = new IntersectionObserver(this.handleVisibilityChanged);
39
- this.resizeObserver = new ResizeObserver(ts_debounce_1.debounce(this.handleResize, REACTION_DELAY));
40
- }
52
+ this.adaptiveStream = adaptiveStream;
41
53
  }
42
- get isAutoManaged() {
54
+ get isAdaptiveStream() {
43
55
  var _a;
44
- return (_a = this.autoManaged) !== null && _a !== void 0 ? _a : false;
56
+ return (_a = this.adaptiveStream) !== null && _a !== void 0 ? _a : false;
57
+ }
58
+ /** current receive bits per second */
59
+ get currentBitrate() {
60
+ return this._currentBitrate;
45
61
  }
46
62
  /** @internal */
47
63
  setMuted(muted) {
@@ -63,23 +79,27 @@ class RemoteVideoTrack extends Track_1.Track {
63
79
  if (!element) {
64
80
  element = super.attach();
65
81
  }
66
- super.attach(element);
67
- if (this.intersectionObserver && this.resizeObserver) {
82
+ else {
83
+ super.attach(element);
84
+ }
85
+ if (this.adaptiveStream) {
68
86
  this.elementInfos.push({
69
87
  element,
70
- visible: true,
71
- width: element.clientWidth,
72
- height: element.clientHeight,
88
+ visible: true, // default visible
73
89
  });
74
- this.intersectionObserver.observe(element);
75
- this.resizeObserver.observe(element);
90
+ element
91
+ .handleResize = this.debouncedHandleResize;
92
+ element
93
+ .handleVisibilityChanged = this.handleVisibilityChanged;
94
+ utils_1.getIntersectionObserver().observe(element);
95
+ utils_1.getResizeObserver().observe(element);
76
96
  }
77
97
  return element;
78
98
  }
79
99
  detach(element) {
80
100
  let detachedElements = [];
81
101
  if (element) {
82
- detachedElements.push(element);
102
+ this.stopObservingElement(element);
83
103
  return super.detach(element);
84
104
  }
85
105
  detachedElements = super.detach();
@@ -96,13 +116,46 @@ class RemoteVideoTrack extends Track_1.Track {
96
116
  // use `enabled` of track to enable re-use of transceiver
97
117
  super.disable();
98
118
  }
119
+ /* @internal */
120
+ startMonitor() {
121
+ setTimeout(() => {
122
+ this.monitorReceiver();
123
+ }, stats_1.monitorFrequency);
124
+ }
125
+ getReceiverStats() {
126
+ return __awaiter(this, void 0, void 0, function* () {
127
+ if (!this.receiver) {
128
+ return;
129
+ }
130
+ const stats = yield this.receiver.getStats();
131
+ let receiverStats;
132
+ stats.forEach((v) => {
133
+ if (v.type === 'inbound-rtp') {
134
+ receiverStats = {
135
+ type: 'video',
136
+ framesDecoded: v.framesDecoded,
137
+ framesDropped: v.framesDropped,
138
+ framesReceived: v.framesReceived,
139
+ packetsReceived: v.packetsReceived,
140
+ packetsLost: v.packetsLost,
141
+ frameWidth: v.frameWidth,
142
+ frameHeight: v.frameHeight,
143
+ pliCount: v.pliCount,
144
+ firCount: v.firCount,
145
+ nackCount: v.nackCount,
146
+ jitter: v.jitter,
147
+ timestamp: v.timestamp,
148
+ bytesReceived: v.bytesReceived,
149
+ };
150
+ }
151
+ });
152
+ return receiverStats;
153
+ });
154
+ }
99
155
  stopObservingElement(element) {
100
- if (this.intersectionObserver) {
101
- this.intersectionObserver.unobserve(element);
102
- }
103
- if (this.resizeObserver) {
104
- this.resizeObserver.unobserve(element);
105
- }
156
+ var _a, _b;
157
+ (_a = utils_1.getIntersectionObserver()) === null || _a === void 0 ? void 0 : _a.unobserve(element);
158
+ (_b = utils_1.getResizeObserver()) === null || _b === void 0 ? void 0 : _b.unobserve(element);
106
159
  this.elementInfos = this.elementInfos.filter((info) => info.element !== element);
107
160
  }
108
161
  updateVisibility() {
@@ -127,9 +180,9 @@ class RemoteVideoTrack extends Track_1.Track {
127
180
  let maxHeight = 0;
128
181
  for (const info of this.elementInfos) {
129
182
  if (info.visible) {
130
- if (info.width + info.height > maxWidth + maxHeight) {
131
- maxWidth = info.width;
132
- maxHeight = info.height;
183
+ if (info.element.clientWidth + info.element.clientHeight > maxWidth + maxHeight) {
184
+ maxWidth = info.element.clientWidth;
185
+ maxHeight = info.element.clientHeight;
133
186
  }
134
187
  }
135
188
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RemoteVideoTrack.js","sourceRoot":"","sources":["../../../src/room/track/RemoteVideoTrack.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RemoteVideoTrack.js","sourceRoot":"","sources":["../../../src/room/track/RemoteVideoTrack.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,19 @@
1
1
  /// <reference types="node" />
2
2
  import { EventEmitter } from 'events';
3
3
  import { TrackSource, TrackType } from '../../proto/livekit_models';
4
+ import { StreamState as ProtoStreamState } from '../../proto/livekit_rtc';
4
5
  export declare class Track extends EventEmitter {
5
6
  kind: Track.Kind;
6
- name: string;
7
7
  mediaStreamTrack: MediaStreamTrack;
8
8
  attachedElements: HTMLMediaElement[];
9
9
  isMuted: boolean;
10
+ streamState: Track.StreamState;
10
11
  source: Track.Source;
11
12
  /**
12
13
  * sid is set after track is published to server, or if it's a remote track
13
14
  */
14
15
  sid?: Track.SID;
15
- protected constructor(mediaTrack: MediaStreamTrack, kind: Track.Kind, name?: string);
16
+ protected constructor(mediaTrack: MediaStreamTrack, kind: Track.Kind);
16
17
  /**
17
18
  * creates a new HTMLAudioElement or HTMLVideoElement, attaches to it, and returns it
18
19
  */
@@ -53,6 +54,11 @@ export declare namespace Track {
53
54
  ScreenShareAudio = "screen_share_audio",
54
55
  Unknown = "unknown"
55
56
  }
57
+ enum StreamState {
58
+ Active = "active",
59
+ Paused = "paused",
60
+ Unknown = "unknown"
61
+ }
56
62
  interface Dimensions {
57
63
  width: number;
58
64
  height: number;
@@ -65,4 +71,6 @@ export declare namespace Track {
65
71
  function sourceToProto(s: Source): TrackSource;
66
72
  /** @internal */
67
73
  function sourceFromProto(s: TrackSource): Source;
74
+ /** @internal */
75
+ function streamStateFromProto(s: ProtoStreamState): StreamState;
68
76
  }
@@ -3,18 +3,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.detachTrack = exports.attachToElement = exports.Track = void 0;
4
4
  const events_1 = require("events");
5
5
  const livekit_models_1 = require("../../proto/livekit_models");
6
+ const livekit_rtc_1 = require("../../proto/livekit_rtc");
6
7
  const events_2 = require("../events");
8
+ const utils_1 = require("../utils");
7
9
  // keep old audio elements when detached, we would re-use them since on iOS
8
10
  // Safari tracks which audio elements have been "blessed" by the user.
9
11
  const recycledElements = [];
10
12
  class Track extends events_1.EventEmitter {
11
- constructor(mediaTrack, kind, name) {
13
+ constructor(mediaTrack, kind) {
12
14
  super();
13
15
  this.attachedElements = [];
14
16
  this.isMuted = false;
17
+ this.streamState = Track.StreamState.Active;
15
18
  this.kind = kind;
16
19
  this.mediaStreamTrack = mediaTrack;
17
- this.name = name || '';
18
20
  this.source = Track.Source.Unknown;
19
21
  }
20
22
  attach(element) {
@@ -129,6 +131,13 @@ function attachToElement(track, element) {
129
131
  mediaStream.removeTrack(et);
130
132
  });
131
133
  mediaStream.addTrack(track);
134
+ if (utils_1.isFireFox()) {
135
+ // sometimes firefox doesn't render local video on the first try.
136
+ // It needs to be re-attached after a timeout.
137
+ setTimeout(() => {
138
+ element.srcObject = mediaStream;
139
+ }, 1);
140
+ }
132
141
  }
133
142
  exports.attachToElement = attachToElement;
134
143
  /** @internal */
@@ -155,6 +164,12 @@ exports.detachTrack = detachTrack;
155
164
  Source["ScreenShareAudio"] = "screen_share_audio";
156
165
  Source["Unknown"] = "unknown";
157
166
  })(Source = Track.Source || (Track.Source = {}));
167
+ let StreamState;
168
+ (function (StreamState) {
169
+ StreamState["Active"] = "active";
170
+ StreamState["Paused"] = "paused";
171
+ StreamState["Unknown"] = "unknown";
172
+ })(StreamState = Track.StreamState || (Track.StreamState = {}));
158
173
  /** @internal */
159
174
  function kindToProto(k) {
160
175
  switch (k) {
@@ -211,5 +226,17 @@ exports.detachTrack = detachTrack;
211
226
  }
212
227
  }
213
228
  Track.sourceFromProto = sourceFromProto;
229
+ /** @internal */
230
+ function streamStateFromProto(s) {
231
+ switch (s) {
232
+ case livekit_rtc_1.StreamState.ACTIVE:
233
+ return StreamState.Active;
234
+ case livekit_rtc_1.StreamState.PAUSED:
235
+ return StreamState.Paused;
236
+ default:
237
+ return StreamState.Unknown;
238
+ }
239
+ }
240
+ Track.streamStateFromProto = streamStateFromProto;
214
241
  })(Track = exports.Track || (exports.Track = {}));
215
242
  //# sourceMappingURL=Track.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Track.js","sourceRoot":"","sources":["../../../src/room/track/Track.ts"],"names":[],"mappings":";;;AAAA,mCAAsC;AACtC,+DAAoE;AACpE,sCAAuC;AAEvC,2EAA2E;AAC3E,sEAAsE;AACtE,MAAM,gBAAgB,GAA4B,EAAE,CAAC;AAErD,MAAa,KAAM,SAAQ,qBAAY;IAkBrC,YAAsB,UAA4B,EAAE,IAAgB,EAAE,IAAa;QACjF,KAAK,EAAE,CAAC;QAZV,qBAAgB,GAAuB,EAAE,CAAC;QAE1C,YAAO,GAAY,KAAK,CAAC;QAWvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;IACrC,CAAC;IAWD,MAAM,CAAC,OAA0B;QAC/B,IAAI,WAAW,GAAG,OAAO,CAAC;QAC1B,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE;YAClC,WAAW,GAAG,OAAO,CAAC;SACvB;QACD,IAAI,CAAC,OAAO,EAAE;YACZ,IAAI,WAAW,KAAK,OAAO,EAAE;gBAC3B,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;oBAC7B,IAAI,CAAC,CAAC,aAAa,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE;wBACxC,OAAO,GAAG,CAAC,CAAC;qBACb;gBACH,CAAC,CAAC,CAAC;gBACH,IAAI,OAAO,EAAE;oBACX,sBAAsB;oBACtB,gBAAgB,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;iBAC/D;aACF;YACD,IAAI,CAAC,OAAO,EAAE;gBACZ,OAAO,GAAqB,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;aACjE;SACF;QAED,IAAI,OAAO,YAAY,gBAAgB,EAAE;YACvC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;YAC3B,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;SACzB;QAED,mBAAmB;QACnB,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YAC3C,OAAO,OAAO,CAAC;SAChB;QAED,eAAe,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;QAChD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEpC,IAAI,OAAO,YAAY,gBAAgB,EAAE;YACvC,sDAAsD;YACtD,OAAO,CAAC,IAAI,EAAE;iBACX,IAAI,CAAC,GAAG,EAAE;gBACT,IAAI,CAAC,IAAI,CAAC,mBAAU,CAAC,oBAAoB,CAAC,CAAC;YAC7C,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;gBACX,IAAI,CAAC,IAAI,CAAC,mBAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;SACN;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAYD,MAAM,CAAC,OAA0B;QAC/B,+BAA+B;QAC/B,IAAI,OAAO,EAAE;YACX,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;YAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACnD,IAAI,GAAG,IAAI,CAAC,EAAE;gBACZ,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBACrC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;aAC9B;YACD,OAAO,OAAO,CAAC;SAChB;QAED,MAAM,QAAQ,GAAuB,EAAE,CAAC;QACxC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACpC,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;YACxC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACnB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,oBAAoB;QACpB,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAES,MAAM;QACd,IAAI,CAAC,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAAC;IACvC,CAAC;IAES,OAAO;QACf,IAAI,CAAC,gBAAgB,CAAC,OAAO,GAAG,KAAK,CAAC;IACxC,CAAC;IAEO,cAAc,CAAC,OAAyB;QAC9C,IAAI,OAAO,YAAY,gBAAgB,EAAE;YACzC,0CAA0C;YACxC,IAAI,WAAW,GAAG,IAAI,CAAC;YACvB,OAAO,CAAC,KAAK,EAAE,CAAC;YAChB,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC7B,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE;oBACpB,WAAW,GAAG,KAAK,CAAC;iBACrB;YACH,CAAC,CAAC,CAAC;YACH,IAAI,WAAW,EAAE;gBACf,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAChC;SACF;IACH,CAAC;CACF;AAjJD,sBAiJC;AAED,gBAAgB;AAChB,SAAgB,eAAe,CAAC,KAAuB,EAAE,OAAyB;IAChF,IAAI,WAAwB,CAAC;IAC7B,IAAI,OAAO,CAAC,SAAS,YAAY,WAAW,EAAE;QAC5C,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC;KACjC;SAAM;QACL,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;QAChC,OAAO,CAAC,SAAS,GAAG,WAAW,CAAC;KACjC;IAED,kDAAkD;IAClD,IAAI,cAAkC,CAAC;IACvC,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;QAC1B,cAAc,GAAG,WAAW,CAAC,cAAc,EAAE,CAAC;KAC/C;SAAM;QACL,cAAc,GAAG,WAAW,CAAC,cAAc,EAAE,CAAC;KAC/C;IAED,cAAc,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;QAC5B,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAtBD,0CAsBC;AAED,gBAAgB;AAChB,SAAgB,WAAW,CACzB,KAAuB,EACvB,OAAyB;IAEzB,IAAI,OAAO,CAAC,SAAS,YAAY,WAAW,EAAE;QAC5C,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC;QACtC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC/B,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;KAC1B;AACH,CAAC;AATD,kCASC;AAED,WAAiB,KAAK;IACpB,IAAY,IAIX;IAJD,WAAY,IAAI;QACd,uBAAe,CAAA;QACf,uBAAe,CAAA;QACf,2BAAmB,CAAA;IACrB,CAAC,EAJW,IAAI,GAAJ,UAAI,KAAJ,UAAI,QAIf;IAED,IAAY,MAMX;IAND,WAAY,MAAM;QAChB,2BAAiB,CAAA;QACjB,mCAAyB,CAAA;QACzB,sCAA4B,CAAA;QAC5B,iDAAuC,CAAA;QACvC,6BAAmB,CAAA;IACrB,CAAC,EANW,MAAM,GAAN,YAAM,KAAN,YAAM,QAMjB;IAOD,gBAAgB;IAChB,SAAgB,WAAW,CAAC,CAAO;QACjC,QAAQ,CAAC,EAAE;YACT,KAAK,IAAI,CAAC,KAAK;gBACb,OAAO,0BAAS,CAAC,KAAK,CAAC;YACzB,KAAK,IAAI,CAAC,KAAK;gBACb,OAAO,0BAAS,CAAC,KAAK,CAAC;YACzB;gBACE,OAAO,0BAAS,CAAC,YAAY,CAAC;SACjC;IACH,CAAC;IATe,iBAAW,cAS1B,CAAA;IAED,gBAAgB;IAChB,SAAgB,aAAa,CAAC,CAAY;QACxC,QAAQ,CAAC,EAAE;YACT,KAAK,0BAAS,CAAC,KAAK;gBAClB,OAAO,IAAI,CAAC,KAAK,CAAC;YACpB,KAAK,0BAAS,CAAC,KAAK;gBAClB,OAAO,IAAI,CAAC,KAAK,CAAC;YACpB;gBACE,OAAO,IAAI,CAAC,OAAO,CAAC;SACvB;IACH,CAAC;IATe,mBAAa,gBAS5B,CAAA;IAED,gBAAgB;IAChB,SAAgB,aAAa,CAAC,CAAS;QACrC,QAAQ,CAAC,EAAE;YACT,KAAK,MAAM,CAAC,MAAM;gBAChB,OAAO,4BAAW,CAAC,MAAM,CAAC;YAC5B,KAAK,MAAM,CAAC,UAAU;gBACpB,OAAO,4BAAW,CAAC,UAAU,CAAC;YAChC,KAAK,MAAM,CAAC,WAAW;gBACrB,OAAO,4BAAW,CAAC,YAAY,CAAC;YAClC,KAAK,MAAM,CAAC,gBAAgB;gBAC1B,OAAO,4BAAW,CAAC,kBAAkB,CAAC;YACxC;gBACE,OAAO,4BAAW,CAAC,YAAY,CAAC;SACnC;IACH,CAAC;IAbe,mBAAa,gBAa5B,CAAA;IAED,gBAAgB;IAChB,SAAgB,eAAe,CAAC,CAAc;QAC5C,QAAQ,CAAC,EAAE;YACT,KAAK,4BAAW,CAAC,MAAM;gBACrB,OAAO,MAAM,CAAC,MAAM,CAAC;YACvB,KAAK,4BAAW,CAAC,UAAU;gBACzB,OAAO,MAAM,CAAC,UAAU,CAAC;YAC3B,KAAK,4BAAW,CAAC,YAAY;gBAC3B,OAAO,MAAM,CAAC,WAAW,CAAC;YAC5B,KAAK,4BAAW,CAAC,kBAAkB;gBACjC,OAAO,MAAM,CAAC,gBAAgB,CAAC;YACjC;gBACE,OAAO,MAAM,CAAC,OAAO,CAAC;SACzB;IACH,CAAC;IAbe,qBAAe,kBAa9B,CAAA;AACH,CAAC,EA3EgB,KAAK,GAAL,aAAK,KAAL,aAAK,QA2ErB"}
1
+ {"version":3,"file":"Track.js","sourceRoot":"","sources":["../../../src/room/track/Track.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,7 @@
1
1
  import LocalAudioTrack from './LocalAudioTrack';
2
2
  import LocalTrack from './LocalTrack';
3
3
  import LocalVideoTrack from './LocalVideoTrack';
4
- import { CreateAudioTrackOptions, CreateLocalTracksOptions, CreateScreenTrackOptions, CreateVideoTrackOptions } from './options';
5
- export declare function getLastAudioCreateError(): Error | undefined;
6
- export declare function getLastVideoCreateError(): Error | undefined;
4
+ import { AudioCaptureOptions, CreateLocalTracksOptions, ScreenShareCaptureOptions, VideoCaptureOptions } from './options';
7
5
  /**
8
6
  * Creates a local video and audio track at the same time. When acquiring both
9
7
  * audio and video tracks together, it'll display a single permission prompt to
@@ -15,11 +13,11 @@ export declare function createLocalTracks(options?: CreateLocalTracksOptions): P
15
13
  * Creates a [[LocalVideoTrack]] with getUserMedia()
16
14
  * @param options
17
15
  */
18
- export declare function createLocalVideoTrack(options?: CreateVideoTrackOptions): Promise<LocalVideoTrack>;
19
- export declare function createLocalAudioTrack(options?: CreateAudioTrackOptions): Promise<LocalAudioTrack>;
16
+ export declare function createLocalVideoTrack(options?: VideoCaptureOptions): Promise<LocalVideoTrack>;
17
+ export declare function createLocalAudioTrack(options?: AudioCaptureOptions): Promise<LocalAudioTrack>;
20
18
  /**
21
19
  * Creates a screen capture tracks with getDisplayMedia().
22
20
  * A LocalVideoTrack is always created and returned.
23
21
  * If { audio: true }, and the browser supports audio capture, a LocalAudioTrack is also created.
24
22
  */
25
- export declare function createLocalScreenTracks(options?: CreateScreenTrackOptions): Promise<Array<LocalTrack>>;
23
+ export declare function createLocalScreenTracks(options?: ScreenShareCaptureOptions): Promise<Array<LocalTrack>>;
@@ -12,23 +12,15 @@ 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.createLocalScreenTracks = exports.createLocalAudioTrack = exports.createLocalVideoTrack = exports.createLocalTracks = exports.getLastVideoCreateError = exports.getLastAudioCreateError = void 0;
15
+ exports.createLocalScreenTracks = exports.createLocalAudioTrack = exports.createLocalVideoTrack = exports.createLocalTracks = void 0;
16
16
  const errors_1 = require("../errors");
17
+ const publishUtils_1 = require("../participant/publishUtils");
18
+ const defaults_1 = require("./defaults");
17
19
  const LocalAudioTrack_1 = __importDefault(require("./LocalAudioTrack"));
18
- const LocalTrack_1 = __importDefault(require("./LocalTrack"));
19
20
  const LocalVideoTrack_1 = __importDefault(require("./LocalVideoTrack"));
20
21
  const options_1 = require("./options");
21
22
  const Track_1 = require("./Track");
22
- let audioError;
23
- function getLastAudioCreateError() {
24
- return audioError;
25
- }
26
- exports.getLastAudioCreateError = getLastAudioCreateError;
27
- let videoError;
28
- function getLastVideoCreateError() {
29
- return videoError;
30
- }
31
- exports.getLastVideoCreateError = getLastVideoCreateError;
23
+ const utils_1 = require("./utils");
32
24
  /**
33
25
  * Creates a local video and audio track at the same time. When acquiring both
34
26
  * audio and video tracks together, it'll display a single permission prompt to
@@ -37,34 +29,9 @@ exports.getLastVideoCreateError = getLastVideoCreateError;
37
29
  */
38
30
  function createLocalTracks(options) {
39
31
  return __awaiter(this, void 0, void 0, function* () {
40
- if (!options)
41
- options = {};
42
- if (options.audio === true)
43
- options.audio = {};
44
- if (options.video === true)
45
- options.video = {};
46
- const constraints = LocalTrack_1.default.constraintsForOptions(options);
47
- let stream;
48
- try {
49
- stream = yield navigator.mediaDevices.getUserMedia(constraints);
50
- }
51
- catch (err) {
52
- if (err instanceof Error) {
53
- if (constraints.audio) {
54
- audioError = err;
55
- }
56
- if (constraints.video) {
57
- videoError = err;
58
- }
59
- }
60
- throw err;
61
- }
62
- if (constraints.audio) {
63
- audioError = undefined;
64
- }
65
- if (constraints.video) {
66
- videoError = undefined;
67
- }
32
+ const opts = utils_1.mergeDefaultOptions(options, defaults_1.audioDefaults, defaults_1.videoDefaults);
33
+ const constraints = utils_1.constraintsForOptions(opts);
34
+ const stream = yield navigator.mediaDevices.getUserMedia(constraints);
68
35
  return stream.getTracks().map((mediaStreamTrack) => {
69
36
  const isAudio = mediaStreamTrack.kind === 'audio';
70
37
  let trackOptions = isAudio ? options.audio : options.video;
@@ -76,7 +43,7 @@ function createLocalTracks(options) {
76
43
  if (typeof conOrBool !== 'boolean') {
77
44
  trackConstraints = conOrBool;
78
45
  }
79
- const track = createLocalTrack(mediaStreamTrack, trackOptions === null || trackOptions === void 0 ? void 0 : trackOptions.name, trackConstraints);
46
+ const track = publishUtils_1.mediaTrackToLocalTrack(mediaStreamTrack, trackConstraints);
80
47
  if (track.kind === Track_1.Track.Kind.Video) {
81
48
  track.source = Track_1.Track.Source.Camera;
82
49
  }
@@ -123,9 +90,6 @@ function createLocalScreenTracks(options) {
123
90
  if (options === undefined) {
124
91
  options = {};
125
92
  }
126
- if (options.name === undefined) {
127
- options.name = 'screen';
128
- }
129
93
  if (options.resolution === undefined) {
130
94
  options.resolution = options_1.VideoPresets.fhd.resolution;
131
95
  }
@@ -146,11 +110,11 @@ function createLocalScreenTracks(options) {
146
110
  if (tracks.length === 0) {
147
111
  throw new errors_1.TrackInvalidError('no video track found');
148
112
  }
149
- const screenVideo = new LocalVideoTrack_1.default(tracks[0], options.name);
113
+ const screenVideo = new LocalVideoTrack_1.default(tracks[0]);
150
114
  screenVideo.source = Track_1.Track.Source.ScreenShare;
151
115
  const localTracks = [screenVideo];
152
116
  if (stream.getAudioTracks().length > 0) {
153
- const screenAudio = new LocalAudioTrack_1.default(stream.getAudioTracks()[0], options.name);
117
+ const screenAudio = new LocalAudioTrack_1.default(stream.getAudioTracks()[0]);
154
118
  screenAudio.source = Track_1.Track.Source.ScreenShareAudio;
155
119
  localTracks.push(screenAudio);
156
120
  }
@@ -158,15 +122,4 @@ function createLocalScreenTracks(options) {
158
122
  });
159
123
  }
160
124
  exports.createLocalScreenTracks = createLocalScreenTracks;
161
- /** @internal */
162
- function createLocalTrack(mediaStreamTrack, name, constraints) {
163
- switch (mediaStreamTrack.kind) {
164
- case 'audio':
165
- return new LocalAudioTrack_1.default(mediaStreamTrack, name, constraints);
166
- case 'video':
167
- return new LocalVideoTrack_1.default(mediaStreamTrack, name, constraints);
168
- default:
169
- throw new errors_1.TrackInvalidError(`unsupported track type: ${mediaStreamTrack.kind}`);
170
- }
171
- }
172
125
  //# sourceMappingURL=create.js.map