twilio-video 2.28.0 → 2.28.2
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.
- package/CHANGELOG.md +17 -0
- package/COMMON_ISSUES.md +12 -0
- package/README.md +1 -1
- package/dist/twilio-video.js +38 -5
- package/dist/twilio-video.min.js +20 -20
- package/es5/media/track/localaudiotrack.js +24 -0
- package/es5/media/track/localaudiotrack.js.map +1 -1
- package/es5/signaling/localtrackpublication.js +8 -1
- package/es5/signaling/localtrackpublication.js.map +1 -1
- package/lib/media/track/localaudiotrack.js +27 -1
- package/lib/signaling/localtrackpublication.js +9 -1
- package/package.json +4 -2
|
@@ -15,6 +15,8 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
15
15
|
};
|
|
16
16
|
})();
|
|
17
17
|
var isIOS = require('../../util/browserdetection').isIOS;
|
|
18
|
+
var detectSilentAudio = require('../../util/detectsilentaudio');
|
|
19
|
+
var isIOSChrome = require('../../webrtc/util').isIOSChrome;
|
|
18
20
|
var AudioTrack = require('./audiotrack');
|
|
19
21
|
var mixinLocalMediaTrack = require('./localmediatrack');
|
|
20
22
|
var LocalMediaAudioTrack = mixinLocalMediaTrack(AudioTrack);
|
|
@@ -197,6 +199,28 @@ var LocalAudioTrack = /** @class */ (function (_super) {
|
|
|
197
199
|
_this._maybeRestartOnDefaultDeviceChange();
|
|
198
200
|
});
|
|
199
201
|
};
|
|
202
|
+
/**
|
|
203
|
+
* NOTE(mmalavalli): On iOS 17 Chrome, a LocalAudioTrack with Krisp Noise Cancellation
|
|
204
|
+
* enabled that is restarted due to foregrounding the browser is silent for as-of-yet
|
|
205
|
+
* unknown reason. We work around this by discarding the Krisp MediaStreamTrack and using
|
|
206
|
+
* the source MediaStreamTrack. (VIDEO-13006)
|
|
207
|
+
* @private
|
|
208
|
+
*/
|
|
209
|
+
LocalAudioTrack.prototype._setMediaStreamTrack = function (mediaStreamTrack) {
|
|
210
|
+
var _this = this;
|
|
211
|
+
var _a = this, log = _a._log, noiseCancellation = _a.noiseCancellation;
|
|
212
|
+
var promise = _super.prototype._setMediaStreamTrack.call(this, mediaStreamTrack);
|
|
213
|
+
if (isIOSChrome() && !!noiseCancellation) {
|
|
214
|
+
log.debug('iOS Chrome detected, checking if the restarted Krisp audio is silent');
|
|
215
|
+
promise = promise.then(function () { return detectSilentAudio(_this._dummyEl); }).then(function (isSilent) {
|
|
216
|
+
log.debug("Krisp audio is " + (isSilent ? 'silent, using source audio' : 'not silent'));
|
|
217
|
+
return isSilent && noiseCancellation.disablePermanently().then(function () {
|
|
218
|
+
return _super.prototype._setMediaStreamTrack.call(_this, noiseCancellation.sourceTrack);
|
|
219
|
+
});
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
return promise;
|
|
223
|
+
};
|
|
200
224
|
/**
|
|
201
225
|
* Disable the {@link LocalAudioTrack}. This is equivalent to muting the audio source.
|
|
202
226
|
* @returns {this}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localaudiotrack.js","sourceRoot":"","sources":["../../../lib/media/track/localaudiotrack.js"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"localaudiotrack.js","sourceRoot":"","sources":["../../../lib/media/track/localaudiotrack.js"],"names":[],"mappings":"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"}
|
|
@@ -32,7 +32,14 @@ var LocalTrackPublicationSignaling = /** @class */ (function (_super) {
|
|
|
32
32
|
*/
|
|
33
33
|
function LocalTrackPublicationSignaling(trackSender, name, priority) {
|
|
34
34
|
var _this = this;
|
|
35
|
-
|
|
35
|
+
// NOTE(lrivas): Safely clone a media stream track while preserving the original
|
|
36
|
+
// enabled state. This is needed because Safari 18 incorrectly enables tracks
|
|
37
|
+
// during cloning. Bug report: https://bugs.webkit.org/show_bug.cgi?id=281758
|
|
38
|
+
var clonedTrackSender = trackSender.clone();
|
|
39
|
+
if (trackSender.kind !== 'data') {
|
|
40
|
+
clonedTrackSender.track.enabled = trackSender.track.enabled;
|
|
41
|
+
}
|
|
42
|
+
trackSender = clonedTrackSender;
|
|
36
43
|
var enabled = trackSender.kind === 'data' ? true : trackSender.track.enabled;
|
|
37
44
|
_this = _super.call(this, name, trackSender.kind, enabled, priority) || this;
|
|
38
45
|
_this.setTrackTransceiver(trackSender);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localtrackpublication.js","sourceRoot":"","sources":["../../lib/signaling/localtrackpublication.js"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;AAEb,IAAM,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AAE1C;;;;GAIG;AACH;IAA6C,kDAAc;IACzD;;;;;;;OAOG;IACH,wCAAY,WAAW,EAAE,IAAI,EAAE,QAAQ;QAAvC,
|
|
1
|
+
{"version":3,"file":"localtrackpublication.js","sourceRoot":"","sources":["../../lib/signaling/localtrackpublication.js"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
const { isIOS } = require('../../util/browserdetection');
|
|
4
|
+
const detectSilentAudio = require('../../util/detectsilentaudio');
|
|
5
|
+
const { isIOSChrome } = require('../../webrtc/util');
|
|
4
6
|
const AudioTrack = require('./audiotrack');
|
|
5
7
|
const mixinLocalMediaTrack = require('./localmediatrack');
|
|
6
8
|
|
|
@@ -162,7 +164,7 @@ class LocalAudioTrack extends LocalMediaAudioTrack {
|
|
|
162
164
|
/**
|
|
163
165
|
* @private
|
|
164
166
|
*/
|
|
165
|
-
_reacquireTrack(constraints)
|
|
167
|
+
_reacquireTrack(constraints) {
|
|
166
168
|
this._log.debug('_reacquireTrack: ', constraints);
|
|
167
169
|
if (this.noiseCancellation) {
|
|
168
170
|
return this.noiseCancellation.reacquireTrack(() => {
|
|
@@ -188,6 +190,30 @@ class LocalAudioTrack extends LocalMediaAudioTrack {
|
|
|
188
190
|
});
|
|
189
191
|
}
|
|
190
192
|
|
|
193
|
+
/**
|
|
194
|
+
* NOTE(mmalavalli): On iOS 17 Chrome, a LocalAudioTrack with Krisp Noise Cancellation
|
|
195
|
+
* enabled that is restarted due to foregrounding the browser is silent for as-of-yet
|
|
196
|
+
* unknown reason. We work around this by discarding the Krisp MediaStreamTrack and using
|
|
197
|
+
* the source MediaStreamTrack. (VIDEO-13006)
|
|
198
|
+
* @private
|
|
199
|
+
*/
|
|
200
|
+
_setMediaStreamTrack(mediaStreamTrack) {
|
|
201
|
+
const { _log: log, noiseCancellation } = this;
|
|
202
|
+
let promise = super._setMediaStreamTrack.call(this, mediaStreamTrack);
|
|
203
|
+
|
|
204
|
+
if (isIOSChrome() && !!noiseCancellation) {
|
|
205
|
+
log.debug('iOS Chrome detected, checking if the restarted Krisp audio is silent');
|
|
206
|
+
promise = promise.then(() => detectSilentAudio(this._dummyEl)).then(isSilent => {
|
|
207
|
+
log.debug(`Krisp audio is ${isSilent ? 'silent, using source audio' : 'not silent'}`);
|
|
208
|
+
return isSilent && noiseCancellation.disablePermanently().then(() => {
|
|
209
|
+
return super._setMediaStreamTrack.call(this, noiseCancellation.sourceTrack);
|
|
210
|
+
});
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
return promise;
|
|
215
|
+
}
|
|
216
|
+
|
|
191
217
|
/**
|
|
192
218
|
* Disable the {@link LocalAudioTrack}. This is equivalent to muting the audio source.
|
|
193
219
|
* @returns {this}
|
|
@@ -17,7 +17,15 @@ class LocalTrackPublicationSignaling extends TrackSignaling {
|
|
|
17
17
|
* @param {Track.Priority} priority - initial {@link Track.Priority}
|
|
18
18
|
*/
|
|
19
19
|
constructor(trackSender, name, priority) {
|
|
20
|
-
|
|
20
|
+
// NOTE(lrivas): Safely clone a media stream track while preserving the original
|
|
21
|
+
// enabled state. This is needed because Safari 18 incorrectly enables tracks
|
|
22
|
+
// during cloning. Bug report: https://bugs.webkit.org/show_bug.cgi?id=281758
|
|
23
|
+
const clonedTrackSender = trackSender.clone();
|
|
24
|
+
if (trackSender.kind !== 'data') {
|
|
25
|
+
clonedTrackSender.track.enabled = trackSender.track.enabled;
|
|
26
|
+
}
|
|
27
|
+
trackSender = clonedTrackSender;
|
|
28
|
+
|
|
21
29
|
const enabled = trackSender.kind === 'data' ? true : trackSender.track.enabled;
|
|
22
30
|
super(name, trackSender.kind, enabled, priority);
|
|
23
31
|
this.setTrackTransceiver(trackSender);
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "twilio-video",
|
|
3
3
|
"title": "Twilio Video",
|
|
4
4
|
"description": "Twilio Video JavaScript Library",
|
|
5
|
-
"version": "2.28.
|
|
5
|
+
"version": "2.28.2",
|
|
6
6
|
"homepage": "https://twilio.com",
|
|
7
7
|
"author": "Mark Andrus Roberts <mroberts@twilio.com>",
|
|
8
8
|
"contributors": [
|
|
@@ -74,6 +74,7 @@
|
|
|
74
74
|
"node-http-server": "^8.1.2",
|
|
75
75
|
"npm-run-all": "^4.0.2",
|
|
76
76
|
"nyc": "^15.1.0",
|
|
77
|
+
"regex-replace": "^2.3.1",
|
|
77
78
|
"requirejs": "^2.3.3",
|
|
78
79
|
"rimraf": "^2.6.1",
|
|
79
80
|
"simple-git": "^1.126.0",
|
|
@@ -99,6 +100,7 @@
|
|
|
99
100
|
"lint:js": "eslint ./lib ./test/*.js ./docker/**/*.js ./test/framework/*.js ./test/lib/*.js ./test/integration/** ./test/unit/** ",
|
|
100
101
|
"lint:ts": "eslint ./tsdef/*.ts ./lib/**/*.ts",
|
|
101
102
|
"lint": "npm-run-all lint:js lint:ts",
|
|
103
|
+
"patch-linkifyit-111": "regex-replace \"readonly linkify: LinkifyIt.LinkifyIt;\" \"readonly linkify: typeof LinkifyIt;\" \"node_modules/@types/markdown-it/lib/index.d.ts\" --filecontents",
|
|
102
104
|
"printVersion": "node --version && npm --version",
|
|
103
105
|
"test:unit": "npm-run-all printVersion build:es5 && nyc --report-dir=./coverage --include=lib/**/* --reporter=html --reporter=lcov --reporter=text mocha -r ts-node/register ./test/unit/*",
|
|
104
106
|
"test:unit:quick": "nyc --report-dir=./coverage --include=lib/**/* --reporter=html --reporter=lcov mocha -r ts-node/register",
|
|
@@ -137,7 +139,7 @@
|
|
|
137
139
|
"test:framework:install": "npm install chromedriver && npm install selenium-webdriver && npm install geckodriver && npm install puppeteer",
|
|
138
140
|
"test:framework": "npm-run-all test:framework:install test:framework:no-framework test:framework:react",
|
|
139
141
|
"test": "npm-run-all test:unit test:integration",
|
|
140
|
-
"build:es5": "rimraf ./es5 && mkdir -p es5 && tsc tsdef/twilio-video-tests.ts --noEmit --lib es2018,dom && tsc",
|
|
142
|
+
"build:es5": "rimraf ./es5 && mkdir -p es5 && npm run patch-linkifyit-111 && tsc tsdef/twilio-video-tests.ts --noEmit --lib es2018,dom && tsc",
|
|
141
143
|
"build:js": "node ./scripts/build.js ./src/twilio-video.js ./LICENSE.md ./dist/twilio-video.js",
|
|
142
144
|
"build:min.js": "uglifyjs ./dist/twilio-video.js -o ./dist/twilio-video.min.js --comments \"/^! twilio-video.js/\" -b beautify=false,ascii_only=true",
|
|
143
145
|
"build": "npm-run-all clean lint docs test:unit test:integration build:es5 build:js build:min.js test:umd",
|