livekit-client 0.17.3 → 0.17.6-rc1

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 (155) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/README.md +26 -20
  3. package/dist/api/SignalClient.d.ts +1 -0
  4. package/dist/connect.d.ts +2 -0
  5. package/dist/index.d.ts +2 -2
  6. package/dist/livekit-client.esm.js +17344 -0
  7. package/dist/livekit-client.esm.js.map +1 -0
  8. package/dist/livekit-client.umd.js +17388 -0
  9. package/dist/livekit-client.umd.js.map +1 -0
  10. package/dist/logger.d.ts +22 -11
  11. package/dist/options.d.ts +4 -2
  12. package/dist/proto/google/protobuf/timestamp.d.ts +12 -2
  13. package/dist/proto/livekit_models.d.ts +524 -17
  14. package/dist/proto/livekit_rtc.d.ts +3449 -31
  15. package/dist/room/DeviceManager.d.ts +1 -1
  16. package/dist/room/RTCEngine.d.ts +1 -1
  17. package/dist/room/Room.d.ts +2 -2
  18. package/dist/room/events.d.ts +1 -1
  19. package/dist/room/participant/LocalParticipant.d.ts +9 -5
  20. package/dist/room/participant/RemoteParticipant.d.ts +9 -0
  21. package/dist/room/track/RemoteAudioTrack.d.ts +11 -0
  22. package/dist/room/track/options.d.ts +1 -1
  23. package/dist/test/mocks.d.ts +11 -0
  24. package/dist/version.d.ts +1 -1
  25. package/package.json +41 -16
  26. package/.eslintrc.js +0 -17
  27. package/.gitmodules +0 -3
  28. package/dist/api/RequestQueue.js +0 -61
  29. package/dist/api/RequestQueue.js.map +0 -1
  30. package/dist/api/SignalClient.js +0 -428
  31. package/dist/api/SignalClient.js.map +0 -1
  32. package/dist/connect.js +0 -130
  33. package/dist/connect.js.map +0 -1
  34. package/dist/index.js +0 -71
  35. package/dist/index.js.map +0 -1
  36. package/dist/logger.js +0 -24
  37. package/dist/logger.js.map +0 -1
  38. package/dist/options.js +0 -3
  39. package/dist/options.js.map +0 -1
  40. package/dist/proto/google/protobuf/timestamp.js +0 -93
  41. package/dist/proto/google/protobuf/timestamp.js.map +0 -1
  42. package/dist/proto/livekit_models.js +0 -2688
  43. package/dist/proto/livekit_models.js.map +0 -1
  44. package/dist/proto/livekit_rtc.js +0 -2995
  45. package/dist/proto/livekit_rtc.js.map +0 -1
  46. package/dist/room/DeviceManager.js +0 -62
  47. package/dist/room/DeviceManager.js.map +0 -1
  48. package/dist/room/PCTransport.js +0 -91
  49. package/dist/room/PCTransport.js.map +0 -1
  50. package/dist/room/RTCEngine.js +0 -562
  51. package/dist/room/RTCEngine.js.map +0 -1
  52. package/dist/room/Room.js +0 -759
  53. package/dist/room/Room.js.map +0 -1
  54. package/dist/room/errors.js +0 -68
  55. package/dist/room/errors.js.map +0 -1
  56. package/dist/room/events.js +0 -385
  57. package/dist/room/events.js.map +0 -1
  58. package/dist/room/participant/LocalParticipant.js +0 -647
  59. package/dist/room/participant/LocalParticipant.js.map +0 -1
  60. package/dist/room/participant/Participant.js +0 -189
  61. package/dist/room/participant/Participant.js.map +0 -1
  62. package/dist/room/participant/ParticipantTrackPermission.js +0 -16
  63. package/dist/room/participant/ParticipantTrackPermission.js.map +0 -1
  64. package/dist/room/participant/RemoteParticipant.js +0 -194
  65. package/dist/room/participant/RemoteParticipant.js.map +0 -1
  66. package/dist/room/participant/publishUtils.js +0 -189
  67. package/dist/room/participant/publishUtils.js.map +0 -1
  68. package/dist/room/participant/publishUtils.test.d.ts +0 -1
  69. package/dist/room/participant/publishUtils.test.js +0 -118
  70. package/dist/room/participant/publishUtils.test.js.map +0 -1
  71. package/dist/room/stats.js +0 -26
  72. package/dist/room/stats.js.map +0 -1
  73. package/dist/room/track/LocalAudioTrack.js +0 -153
  74. package/dist/room/track/LocalAudioTrack.js.map +0 -1
  75. package/dist/room/track/LocalTrack.js +0 -158
  76. package/dist/room/track/LocalTrack.js.map +0 -1
  77. package/dist/room/track/LocalTrackPublication.js +0 -64
  78. package/dist/room/track/LocalTrackPublication.js.map +0 -1
  79. package/dist/room/track/LocalVideoTrack.js +0 -297
  80. package/dist/room/track/LocalVideoTrack.js.map +0 -1
  81. package/dist/room/track/LocalVideoTrack.test.d.ts +0 -1
  82. package/dist/room/track/LocalVideoTrack.test.js +0 -68
  83. package/dist/room/track/LocalVideoTrack.test.js.map +0 -1
  84. package/dist/room/track/RemoteAudioTrack.js +0 -64
  85. package/dist/room/track/RemoteAudioTrack.js.map +0 -1
  86. package/dist/room/track/RemoteTrack.js +0 -49
  87. package/dist/room/track/RemoteTrack.js.map +0 -1
  88. package/dist/room/track/RemoteTrackPublication.js +0 -178
  89. package/dist/room/track/RemoteTrackPublication.js.map +0 -1
  90. package/dist/room/track/RemoteVideoTrack.js +0 -201
  91. package/dist/room/track/RemoteVideoTrack.js.map +0 -1
  92. package/dist/room/track/Track.js +0 -276
  93. package/dist/room/track/Track.js.map +0 -1
  94. package/dist/room/track/TrackPublication.js +0 -92
  95. package/dist/room/track/TrackPublication.js.map +0 -1
  96. package/dist/room/track/create.js +0 -131
  97. package/dist/room/track/create.js.map +0 -1
  98. package/dist/room/track/defaults.js +0 -21
  99. package/dist/room/track/defaults.js.map +0 -1
  100. package/dist/room/track/options.js +0 -100
  101. package/dist/room/track/options.js.map +0 -1
  102. package/dist/room/track/types.js +0 -3
  103. package/dist/room/track/types.js.map +0 -1
  104. package/dist/room/track/utils.js +0 -113
  105. package/dist/room/track/utils.js.map +0 -1
  106. package/dist/room/track/utils.test.d.ts +0 -1
  107. package/dist/room/track/utils.test.js +0 -85
  108. package/dist/room/track/utils.test.js.map +0 -1
  109. package/dist/room/utils.js +0 -79
  110. package/dist/room/utils.js.map +0 -1
  111. package/dist/version.js +0 -6
  112. package/dist/version.js.map +0 -1
  113. package/jest.config.js +0 -6
  114. package/src/api/RequestQueue.ts +0 -53
  115. package/src/api/SignalClient.ts +0 -499
  116. package/src/connect.ts +0 -100
  117. package/src/index.ts +0 -47
  118. package/src/logger.ts +0 -22
  119. package/src/options.ts +0 -149
  120. package/src/proto/google/protobuf/timestamp.ts +0 -222
  121. package/src/proto/livekit_models.ts +0 -3019
  122. package/src/proto/livekit_rtc.ts +0 -3677
  123. package/src/room/DeviceManager.ts +0 -57
  124. package/src/room/PCTransport.ts +0 -86
  125. package/src/room/RTCEngine.ts +0 -652
  126. package/src/room/Room.ts +0 -943
  127. package/src/room/errors.ts +0 -65
  128. package/src/room/events.ts +0 -424
  129. package/src/room/participant/LocalParticipant.ts +0 -734
  130. package/src/room/participant/Participant.ts +0 -269
  131. package/src/room/participant/ParticipantTrackPermission.ts +0 -32
  132. package/src/room/participant/RemoteParticipant.ts +0 -243
  133. package/src/room/participant/publishUtils.test.ts +0 -145
  134. package/src/room/participant/publishUtils.ts +0 -225
  135. package/src/room/stats.ts +0 -130
  136. package/src/room/track/LocalAudioTrack.ts +0 -137
  137. package/src/room/track/LocalTrack.ts +0 -161
  138. package/src/room/track/LocalTrackPublication.ts +0 -66
  139. package/src/room/track/LocalVideoTrack.test.ts +0 -70
  140. package/src/room/track/LocalVideoTrack.ts +0 -293
  141. package/src/room/track/RemoteAudioTrack.ts +0 -58
  142. package/src/room/track/RemoteTrack.ts +0 -62
  143. package/src/room/track/RemoteTrackPublication.ts +0 -198
  144. package/src/room/track/RemoteVideoTrack.ts +0 -235
  145. package/src/room/track/Track.ts +0 -337
  146. package/src/room/track/TrackPublication.ts +0 -120
  147. package/src/room/track/create.ts +0 -121
  148. package/src/room/track/defaults.ts +0 -23
  149. package/src/room/track/options.ts +0 -281
  150. package/src/room/track/types.ts +0 -20
  151. package/src/room/track/utils.test.ts +0 -93
  152. package/src/room/track/utils.ts +0 -115
  153. package/src/room/utils.ts +0 -70
  154. package/src/version.ts +0 -2
  155. package/tsconfig.eslint.json +0 -11
@@ -1,118 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const options_1 = require("../track/options");
4
- const publishUtils_1 = require("./publishUtils");
5
- describe('presetsForResolution', () => {
6
- it('handles screenshare', () => {
7
- expect(publishUtils_1.presetsForResolution(true, 600, 300)).toEqual(publishUtils_1.presetsScreenShare);
8
- });
9
- it('handles landscape', () => {
10
- expect(publishUtils_1.presetsForResolution(false, 600, 300)).toEqual(publishUtils_1.presets169);
11
- expect(publishUtils_1.presetsForResolution(false, 500, 500)).toEqual(publishUtils_1.presets43);
12
- });
13
- it('handles portrait', () => {
14
- expect(publishUtils_1.presetsForResolution(false, 300, 600)).toEqual(publishUtils_1.presets169);
15
- expect(publishUtils_1.presetsForResolution(false, 500, 500)).toEqual(publishUtils_1.presets43);
16
- });
17
- });
18
- describe('determineAppropriateEncoding', () => {
19
- it('uses higher encoding', () => {
20
- expect(publishUtils_1.determineAppropriateEncoding(false, 600, 300))
21
- .toEqual(options_1.VideoPresets.vga.encoding);
22
- });
23
- it('handles portrait', () => {
24
- expect(publishUtils_1.determineAppropriateEncoding(false, 300, 600))
25
- .toEqual(options_1.VideoPresets.vga.encoding);
26
- });
27
- });
28
- describe('computeVideoEncodings', () => {
29
- it('handles non-simulcast', () => {
30
- const encodings = publishUtils_1.computeVideoEncodings(false, 640, 480, {
31
- simulcast: false,
32
- });
33
- expect(encodings).toEqual([{}]);
34
- });
35
- it('respects client defined bitrate', () => {
36
- const encodings = publishUtils_1.computeVideoEncodings(false, 640, 480, {
37
- simulcast: false,
38
- videoEncoding: {
39
- maxBitrate: 1024,
40
- },
41
- });
42
- expect(encodings).toHaveLength(1);
43
- expect(encodings[0].maxBitrate).toBe(1024);
44
- });
45
- it('returns three encodings for high-res simulcast', () => {
46
- const encodings = publishUtils_1.computeVideoEncodings(false, 960, 540, {
47
- simulcast: true,
48
- });
49
- expect(encodings).toHaveLength(3);
50
- // ensure they are what we expect
51
- expect(encodings[0].rid).toBe('q');
52
- expect(encodings[0].maxBitrate).toBe(options_1.VideoPresets.h180.encoding.maxBitrate);
53
- expect(encodings[0].scaleResolutionDownBy).toBe(3);
54
- expect(encodings[1].rid).toBe('h');
55
- expect(encodings[1].scaleResolutionDownBy).toBe(1.5);
56
- expect(encodings[2].rid).toBe('f');
57
- });
58
- it('handles portrait simulcast', () => {
59
- const encodings = publishUtils_1.computeVideoEncodings(false, 540, 960, {
60
- simulcast: true,
61
- });
62
- expect(encodings).toHaveLength(3);
63
- expect(encodings[0].scaleResolutionDownBy).toBe(3);
64
- expect(encodings[1].scaleResolutionDownBy).toBe(1.5);
65
- expect(encodings[2].maxBitrate).toBe(options_1.VideoPresets.h540.encoding.maxBitrate);
66
- });
67
- it('returns two encodings for lower-res simulcast', () => {
68
- const encodings = publishUtils_1.computeVideoEncodings(false, 640, 360, {
69
- simulcast: true,
70
- });
71
- expect(encodings).toHaveLength(2);
72
- // ensure they are what we expect
73
- expect(encodings[0].rid).toBe('q');
74
- expect(encodings[0].maxBitrate).toBe(options_1.VideoPresets.h180.encoding.maxBitrate);
75
- expect(encodings[1].rid).toBe('h');
76
- expect(encodings[1].maxBitrate).toBe(options_1.VideoPresets.h360.encoding.maxBitrate);
77
- });
78
- it('respects provided min resolution', () => {
79
- const encodings = publishUtils_1.computeVideoEncodings(false, 100, 120, {
80
- simulcast: true,
81
- });
82
- expect(encodings).toHaveLength(1);
83
- expect(encodings[0].rid).toBe('q');
84
- expect(encodings[0].maxBitrate).toBe(options_1.VideoPresets43.h120.encoding.maxBitrate);
85
- expect(encodings[0].scaleResolutionDownBy).toBe(1);
86
- });
87
- });
88
- describe('customSimulcastLayers', () => {
89
- it('sorts presets from lowest to highest', () => {
90
- const sortedPresets = publishUtils_1.sortPresets([options_1.VideoPresets.h1440, options_1.VideoPresets.h360, options_1.VideoPresets.h1080, options_1.VideoPresets.h90]);
91
- expect(publishUtils_1.sortPresets).not.toBeUndefined();
92
- expect(sortedPresets[0]).toBe(options_1.VideoPresets.h90);
93
- expect(sortedPresets[1]).toBe(options_1.VideoPresets.h360);
94
- expect(sortedPresets[2]).toBe(options_1.VideoPresets.h1080);
95
- expect(sortedPresets[3]).toBe(options_1.VideoPresets.h1440);
96
- });
97
- it('sorts presets from lowest to highest, even when dimensions are the same', () => {
98
- const sortedPresets = publishUtils_1.sortPresets([
99
- new options_1.VideoPreset(1920, 1080, 3000000, 20),
100
- new options_1.VideoPreset(1920, 1080, 2000000, 15),
101
- new options_1.VideoPreset(1920, 1080, 3000000, 15),
102
- ]);
103
- expect(publishUtils_1.sortPresets).not.toBeUndefined();
104
- expect(sortedPresets[0].encoding.maxBitrate).toBe(2000000);
105
- expect(sortedPresets[1].encoding.maxFramerate).toBe(15);
106
- expect(sortedPresets[2].encoding.maxFramerate).toBe(20);
107
- });
108
- });
109
- describe('screenShareSimulcastDefaults', () => {
110
- it('computes appropriate bitrate from original preset', () => {
111
- const defaultSimulcastLayers = publishUtils_1.computeDefaultScreenShareSimulcastPresets(options_1.ScreenSharePresets.h720fps15);
112
- expect(defaultSimulcastLayers[0].width).toBe(640);
113
- expect(defaultSimulcastLayers[0].height).toBe(360);
114
- expect(defaultSimulcastLayers[0].encoding.maxFramerate).toBe(3);
115
- expect(defaultSimulcastLayers[0].encoding.maxBitrate).toBe(150000);
116
- });
117
- });
118
- //# sourceMappingURL=publishUtils.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"publishUtils.test.js","sourceRoot":"","sources":["../../../src/room/participant/publishUtils.test.ts"],"names":[],"mappings":"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"}
@@ -1,26 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.computeBitrate = exports.monitorFrequency = void 0;
4
- exports.monitorFrequency = 2000;
5
- function computeBitrate(currentStats, prevStats) {
6
- if (!prevStats) {
7
- return 0;
8
- }
9
- let bytesNow;
10
- let bytesPrev;
11
- if ('bytesReceived' in currentStats) {
12
- bytesNow = currentStats.bytesReceived;
13
- bytesPrev = prevStats.bytesReceived;
14
- }
15
- else if ('bytesSent' in currentStats) {
16
- bytesNow = currentStats.bytesSent;
17
- bytesPrev = prevStats.bytesSent;
18
- }
19
- if (bytesNow === undefined || bytesPrev === undefined
20
- || currentStats.timestamp === undefined || prevStats.timestamp === undefined) {
21
- return 0;
22
- }
23
- return ((bytesNow - bytesPrev) * 8 * 1000) / (currentStats.timestamp - prevStats.timestamp);
24
- }
25
- exports.computeBitrate = computeBitrate;
26
- //# sourceMappingURL=stats.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stats.js","sourceRoot":"","sources":["../../src/room/stats.ts"],"names":[],"mappings":";;;AAAa,QAAA,gBAAgB,GAAG,IAAI,CAAC;AA4GrC,SAAgB,cAAc,CAC5B,YAAe,EACf,SAAa;IAEb,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,CAAC,CAAC;KACV;IACD,IAAI,QAA4B,CAAC;IACjC,IAAI,SAA6B,CAAC;IAClC,IAAI,eAAe,IAAI,YAAY,EAAE;QACnC,QAAQ,GAAI,YAA8B,CAAC,aAAa,CAAC;QACzD,SAAS,GAAI,SAA2B,CAAC,aAAa,CAAC;KACxD;SAAM,IAAI,WAAW,IAAI,YAAY,EAAE;QACtC,QAAQ,GAAI,YAA4B,CAAC,SAAS,CAAC;QACnD,SAAS,GAAI,SAAyB,CAAC,SAAS,CAAC;KAClD;IACD,IAAI,QAAQ,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS;WAChD,YAAY,CAAC,SAAS,KAAK,SAAS,IAAI,SAAS,CAAC,SAAS,KAAK,SAAS,EAAE;QAC9E,OAAO,CAAC,CAAC;KACV;IACD,OAAO,CAAC,CAAC,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;AAC9F,CAAC;AArBD,wCAqBC"}
@@ -1,153 +0,0 @@
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
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- const logger_1 = __importDefault(require("../../logger"));
16
- const events_1 = require("../events");
17
- const stats_1 = require("../stats");
18
- const LocalTrack_1 = __importDefault(require("./LocalTrack"));
19
- const Track_1 = require("./Track");
20
- const utils_1 = require("./utils");
21
- class LocalAudioTrack extends LocalTrack_1.default {
22
- constructor(mediaTrack, constraints) {
23
- super(mediaTrack, Track_1.Track.Kind.Audio, constraints);
24
- /** @internal */
25
- this.stopOnMute = false;
26
- this.monitorSender = () => __awaiter(this, void 0, void 0, function* () {
27
- if (!this.sender) {
28
- this._currentBitrate = 0;
29
- return;
30
- }
31
- let stats;
32
- try {
33
- stats = yield this.getSenderStats();
34
- }
35
- catch (e) {
36
- logger_1.default.error('could not get audio sender stats', e);
37
- return;
38
- }
39
- if (stats && this.prevStats) {
40
- this._currentBitrate = stats_1.computeBitrate(stats, this.prevStats);
41
- }
42
- this.prevStats = stats;
43
- setTimeout(() => {
44
- this.monitorSender();
45
- }, stats_1.monitorFrequency);
46
- });
47
- this.checkForSilence();
48
- }
49
- setDeviceId(deviceId) {
50
- return __awaiter(this, void 0, void 0, function* () {
51
- if (this.constraints.deviceId === deviceId) {
52
- return;
53
- }
54
- this.constraints.deviceId = deviceId;
55
- if (!this.isMuted) {
56
- yield this.restartTrack();
57
- }
58
- });
59
- }
60
- mute() {
61
- const _super = Object.create(null, {
62
- mute: { get: () => super.mute }
63
- });
64
- return __awaiter(this, void 0, void 0, function* () {
65
- // disabled special handling as it will cause BT headsets to switch communication modes
66
- if (this.source === Track_1.Track.Source.Microphone && this.stopOnMute) {
67
- logger_1.default.debug('stopping mic track');
68
- // also stop the track, so that microphone indicator is turned off
69
- this.mediaStreamTrack.stop();
70
- }
71
- yield _super.mute.call(this);
72
- return this;
73
- });
74
- }
75
- unmute() {
76
- const _super = Object.create(null, {
77
- unmute: { get: () => super.unmute }
78
- });
79
- return __awaiter(this, void 0, void 0, function* () {
80
- if (this.source === Track_1.Track.Source.Microphone && this.stopOnMute) {
81
- logger_1.default.debug('reacquiring mic track');
82
- yield this.restartTrack();
83
- }
84
- yield _super.unmute.call(this);
85
- return this;
86
- });
87
- }
88
- restartTrack(options) {
89
- return __awaiter(this, void 0, void 0, function* () {
90
- let constraints;
91
- if (options) {
92
- const streamConstraints = utils_1.constraintsForOptions({ audio: options });
93
- if (typeof streamConstraints.audio !== 'boolean') {
94
- constraints = streamConstraints.audio;
95
- }
96
- }
97
- yield this.restart(constraints);
98
- });
99
- }
100
- restart(constraints) {
101
- const _super = Object.create(null, {
102
- restart: { get: () => super.restart }
103
- });
104
- return __awaiter(this, void 0, void 0, function* () {
105
- const track = yield _super.restart.call(this, constraints);
106
- this.checkForSilence();
107
- return track;
108
- });
109
- }
110
- /* @internal */
111
- startMonitor() {
112
- setTimeout(() => {
113
- this.monitorSender();
114
- }, stats_1.monitorFrequency);
115
- }
116
- getSenderStats() {
117
- return __awaiter(this, void 0, void 0, function* () {
118
- if (!this.sender) {
119
- return undefined;
120
- }
121
- const stats = yield this.sender.getStats();
122
- let audioStats;
123
- stats.forEach((v) => {
124
- if (v.type === 'outbound-rtp') {
125
- audioStats = {
126
- type: 'audio',
127
- streamId: v.id,
128
- packetsSent: v.packetsSent,
129
- packetsLost: v.packetsLost,
130
- bytesSent: v.bytesSent,
131
- timestamp: v.timestamp,
132
- roundTripTime: v.roundTripTime,
133
- jitter: v.jitter,
134
- };
135
- }
136
- });
137
- return audioStats;
138
- });
139
- }
140
- checkForSilence() {
141
- return __awaiter(this, void 0, void 0, function* () {
142
- const trackIsSilent = yield utils_1.detectSilence(this);
143
- if (trackIsSilent) {
144
- if (!this.isMuted) {
145
- logger_1.default.warn('silence detected on local audio track');
146
- }
147
- this.emit(events_1.TrackEvent.AudioSilenceDetected);
148
- }
149
- });
150
- }
151
- }
152
- exports.default = LocalAudioTrack;
153
- //# sourceMappingURL=LocalAudioTrack.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LocalAudioTrack.js","sourceRoot":"","sources":["../../../src/room/track/LocalAudioTrack.ts"],"names":[],"mappings":"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"}
@@ -1,158 +0,0 @@
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
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- const logger_1 = __importDefault(require("../../logger"));
16
- const DeviceManager_1 = __importDefault(require("../DeviceManager"));
17
- const errors_1 = require("../errors");
18
- const events_1 = require("../events");
19
- const utils_1 = require("../utils");
20
- const Track_1 = require("./Track");
21
- class LocalTrack extends Track_1.Track {
22
- constructor(mediaTrack, kind, constraints) {
23
- super(mediaTrack, kind);
24
- this.handleEnded = () => {
25
- if (this.isInBackground) {
26
- this.reacquireTrack = true;
27
- }
28
- this.emit(events_1.TrackEvent.Ended, this);
29
- };
30
- this.mediaStreamTrack.addEventListener('ended', this.handleEnded);
31
- this.constraints = constraints !== null && constraints !== void 0 ? constraints : mediaTrack.getConstraints();
32
- this.reacquireTrack = false;
33
- this.wasMuted = false;
34
- }
35
- get id() {
36
- return this.mediaStreamTrack.id;
37
- }
38
- get dimensions() {
39
- if (this.kind !== Track_1.Track.Kind.Video) {
40
- return undefined;
41
- }
42
- const { width, height } = this.mediaStreamTrack.getSettings();
43
- if (width && height) {
44
- return {
45
- width,
46
- height,
47
- };
48
- }
49
- return undefined;
50
- }
51
- /**
52
- * @returns DeviceID of the device that is currently being used for this track
53
- */
54
- getDeviceId() {
55
- return __awaiter(this, void 0, void 0, function* () {
56
- // screen share doesn't have a usable device id
57
- if (this.source === Track_1.Track.Source.ScreenShare) {
58
- return;
59
- }
60
- const { deviceId, groupId } = this.mediaStreamTrack.getSettings();
61
- const kind = this.kind === Track_1.Track.Kind.Audio ? 'audioinput' : 'videoinput';
62
- return DeviceManager_1.default.getInstance().normalizeDeviceId(kind, deviceId, groupId);
63
- });
64
- }
65
- mute() {
66
- return __awaiter(this, void 0, void 0, function* () {
67
- this.setTrackMuted(true);
68
- return this;
69
- });
70
- }
71
- unmute() {
72
- return __awaiter(this, void 0, void 0, function* () {
73
- this.setTrackMuted(false);
74
- return this;
75
- });
76
- }
77
- restart(constraints) {
78
- return __awaiter(this, void 0, void 0, function* () {
79
- if (!this.sender) {
80
- throw new errors_1.TrackInvalidError('unable to restart an unpublished track');
81
- }
82
- if (!constraints) {
83
- constraints = this.constraints;
84
- }
85
- logger_1.default.debug('restarting track with constraints', constraints);
86
- const streamConstraints = {
87
- audio: false,
88
- video: false,
89
- };
90
- if (this.kind === Track_1.Track.Kind.Video) {
91
- streamConstraints.video = constraints;
92
- }
93
- else {
94
- streamConstraints.audio = constraints;
95
- }
96
- // detach
97
- this.attachedElements.forEach((el) => {
98
- Track_1.detachTrack(this.mediaStreamTrack, el);
99
- });
100
- this.mediaStreamTrack.removeEventListener('ended', this.handleEnded);
101
- // on Safari, the old audio track must be stopped before attempting to acquire
102
- // the new track, otherwise the new track will stop with
103
- // 'A MediaStreamTrack ended due to a capture failure`
104
- this.mediaStreamTrack.stop();
105
- // create new track and attach
106
- const mediaStream = yield navigator.mediaDevices.getUserMedia(streamConstraints);
107
- const newTrack = mediaStream.getTracks()[0];
108
- newTrack.addEventListener('ended', this.handleEnded);
109
- logger_1.default.debug('re-acquired MediaStreamTrack');
110
- yield this.sender.replaceTrack(newTrack);
111
- this.mediaStreamTrack = newTrack;
112
- this.attachedElements.forEach((el) => {
113
- Track_1.attachToElement(newTrack, el);
114
- });
115
- this.mediaStream = mediaStream;
116
- this.constraints = constraints;
117
- return this;
118
- });
119
- }
120
- setTrackMuted(muted) {
121
- if (this.isMuted === muted) {
122
- return;
123
- }
124
- this.isMuted = muted;
125
- this.mediaStreamTrack.enabled = !muted;
126
- this.emit(muted ? events_1.TrackEvent.Muted : events_1.TrackEvent.Unmuted, this);
127
- }
128
- get needsReAcquisition() {
129
- return this.mediaStreamTrack.readyState !== 'live'
130
- || this.mediaStreamTrack.muted
131
- || !this.mediaStreamTrack.enabled
132
- || this.reacquireTrack;
133
- }
134
- handleAppVisibilityChanged() {
135
- const _super = Object.create(null, {
136
- handleAppVisibilityChanged: { get: () => super.handleAppVisibilityChanged }
137
- });
138
- return __awaiter(this, void 0, void 0, function* () {
139
- yield _super.handleAppVisibilityChanged.call(this);
140
- if (!utils_1.isMobile())
141
- return;
142
- logger_1.default.debug('visibility changed, is in Background: ', this.isInBackground);
143
- if (!this.isInBackground && this.needsReAcquisition) {
144
- logger_1.default.debug('track needs to be reaquired, restarting', this.source);
145
- yield this.restart();
146
- this.reacquireTrack = false;
147
- // Restore muted state if had to be restarted
148
- this.setTrackMuted(this.wasMuted);
149
- }
150
- // store muted state each time app goes to background
151
- if (this.isInBackground) {
152
- this.wasMuted = this.isMuted;
153
- }
154
- });
155
- }
156
- }
157
- exports.default = LocalTrack;
158
- //# sourceMappingURL=LocalTrack.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LocalTrack.js","sourceRoot":"","sources":["../../../src/room/track/LocalTrack.ts"],"names":[],"mappings":"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"}
@@ -1,64 +0,0 @@
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
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- const events_1 = require("../events");
13
- const TrackPublication_1 = require("./TrackPublication");
14
- class LocalTrackPublication extends TrackPublication_1.TrackPublication {
15
- constructor(kind, ti, track) {
16
- super(kind, ti.sid, ti.name);
17
- this.handleTrackEnded = (track) => {
18
- this.emit(events_1.TrackEvent.Ended, track);
19
- };
20
- this.updateInfo(ti);
21
- this.setTrack(track);
22
- }
23
- setTrack(track) {
24
- if (this.track) {
25
- this.track.off(events_1.TrackEvent.Ended, this.handleTrackEnded);
26
- }
27
- super.setTrack(track);
28
- if (track) {
29
- track.on(events_1.TrackEvent.Ended, this.handleTrackEnded);
30
- }
31
- }
32
- get isMuted() {
33
- if (this.track) {
34
- return this.track.isMuted;
35
- }
36
- return super.isMuted;
37
- }
38
- get audioTrack() {
39
- return super.audioTrack;
40
- }
41
- get videoTrack() {
42
- return super.videoTrack;
43
- }
44
- /**
45
- * Mute the track associated with this publication
46
- */
47
- mute() {
48
- var _a;
49
- return __awaiter(this, void 0, void 0, function* () {
50
- return (_a = this.track) === null || _a === void 0 ? void 0 : _a.mute();
51
- });
52
- }
53
- /**
54
- * Unmute track associated with this publication
55
- */
56
- unmute() {
57
- var _a;
58
- return __awaiter(this, void 0, void 0, function* () {
59
- return (_a = this.track) === null || _a === void 0 ? void 0 : _a.unmute();
60
- });
61
- }
62
- }
63
- exports.default = LocalTrackPublication;
64
- //# sourceMappingURL=LocalTrackPublication.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LocalTrackPublication.js","sourceRoot":"","sources":["../../../src/room/track/LocalTrackPublication.ts"],"names":[],"mappings":";;;;;;;;;;;AACA,sCAAuC;AAMvC,yDAAsD;AAEtD,MAAqB,qBAAsB,SAAQ,mCAAgB;IAKjE,YAAY,IAAgB,EAAE,EAAa,EAAE,KAAkB;QAC7D,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;QA+C/B,qBAAgB,GAAG,CAAC,KAAiB,EAAE,EAAE;YACvC,IAAI,CAAC,IAAI,CAAC,mBAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACrC,CAAC,CAAC;QA/CA,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACpB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAED,QAAQ,CAAC,KAAa;QACpB,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAU,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;SACzD;QAED,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAEtB,IAAI,KAAK,EAAE;YACT,KAAK,CAAC,EAAE,CAAC,mBAAU,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;SACnD;IACH,CAAC;IAED,IAAI,OAAO;QACT,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;SAC3B;QACD,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,KAAK,CAAC,UAAyC,CAAC;IACzD,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,KAAK,CAAC,UAAyC,CAAC;IACzD,CAAC;IAED;;OAEG;IACG,IAAI;;;YACR,OAAO,MAAA,IAAI,CAAC,KAAK,0CAAE,IAAI,EAAE,CAAC;;KAC3B;IAED;;OAEG;IACG,MAAM;;;YACV,OAAO,MAAA,IAAI,CAAC,KAAK,0CAAE,MAAM,EAAE,CAAC;;KAC7B;CAKF;AAxDD,wCAwDC"}