@webex/internal-media-core 1.35.4 → 1.35.6
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/dist/cjs/index.js +292 -17
- package/dist/esm/index.js +279 -14
- package/dist/types/MediaConnection/MultistreamRoapMediaConnection.d.ts +1 -1
- package/dist/types/MediaConnection/MultistreamRoapMediaConnection.d.ts.map +1 -1
- package/dist/types/MediaConnection/config.d.ts +1 -0
- package/dist/types/MediaConnection/config.d.ts.map +1 -1
- package/package.json +2 -2
package/dist/cjs/index.js
CHANGED
|
@@ -1983,7 +1983,7 @@ class Track extends EventEmitter$4 {
|
|
|
1983
1983
|
|
|
1984
1984
|
var eventEmitter = new EventEmitter$4();
|
|
1985
1985
|
var deviceList = [];
|
|
1986
|
-
var getDevices = /*#__PURE__*/function () {
|
|
1986
|
+
var getDevices$1 = /*#__PURE__*/function () {
|
|
1987
1987
|
var _ref = _asyncToGenerator__default["default"](function* () {
|
|
1988
1988
|
var _navigator$mediaDevic;
|
|
1989
1989
|
logger$5.debug({
|
|
@@ -2013,7 +2013,7 @@ var getCameras = /*#__PURE__*/function () {
|
|
|
2013
2013
|
action: 'getCameras()',
|
|
2014
2014
|
description: 'Called'
|
|
2015
2015
|
});
|
|
2016
|
-
var devices = yield getDevices();
|
|
2016
|
+
var devices = yield getDevices$1();
|
|
2017
2017
|
logger$5.info({
|
|
2018
2018
|
mediaType: DEVICE,
|
|
2019
2019
|
action: 'getCameras()',
|
|
@@ -2045,7 +2045,7 @@ var getMicrophones = /*#__PURE__*/function () {
|
|
|
2045
2045
|
action: 'getMicrophones()',
|
|
2046
2046
|
description: 'Called'
|
|
2047
2047
|
});
|
|
2048
|
-
var devices = yield getDevices();
|
|
2048
|
+
var devices = yield getDevices$1();
|
|
2049
2049
|
logger$5.info({
|
|
2050
2050
|
mediaType: DEVICE,
|
|
2051
2051
|
action: 'getMicrophones()',
|
|
@@ -2077,7 +2077,7 @@ var getSpeakers = /*#__PURE__*/function () {
|
|
|
2077
2077
|
action: 'getSpeakers()',
|
|
2078
2078
|
description: 'Called'
|
|
2079
2079
|
});
|
|
2080
|
-
var devices = yield getDevices();
|
|
2080
|
+
var devices = yield getDevices$1();
|
|
2081
2081
|
logger$5.info({
|
|
2082
2082
|
mediaType: DEVICE,
|
|
2083
2083
|
action: 'getSpeakers()',
|
|
@@ -2389,7 +2389,7 @@ function _on() {
|
|
|
2389
2389
|
});
|
|
2390
2390
|
eventEmitter.on(eventName, listener);
|
|
2391
2391
|
if (eventName === 'device:changed') {
|
|
2392
|
-
var thisDeviceList = yield getDevices();
|
|
2392
|
+
var thisDeviceList = yield getDevices$1();
|
|
2393
2393
|
deviceList.push(...thisDeviceList);
|
|
2394
2394
|
navigator.mediaDevices.addEventListener('devicechange', deviceChangePublisher);
|
|
2395
2395
|
}
|
|
@@ -4540,6 +4540,277 @@ var DeviceKind;
|
|
|
4540
4540
|
DeviceKind["AudioOutput"] = "audiooutput";
|
|
4541
4541
|
DeviceKind["VideoInput"] = "videoinput";
|
|
4542
4542
|
})(DeviceKind || (DeviceKind = {}));
|
|
4543
|
+
/**
|
|
4544
|
+
* Prompts the user for permission to use a media input which produces a MediaStream with tracks
|
|
4545
|
+
* containing the requested types of media.
|
|
4546
|
+
*
|
|
4547
|
+
* @param constraints - A MediaStreamConstraints object specifying the types of media to request,
|
|
4548
|
+
* along with any requirements for each type.
|
|
4549
|
+
* @returns A Promise whose fulfillment handler receives a MediaStream object when the requested
|
|
4550
|
+
* media has successfully been obtained.
|
|
4551
|
+
*/
|
|
4552
|
+
function getUserMedia(constraints) {
|
|
4553
|
+
return __awaiter$1(this, void 0, void 0, function* () {
|
|
4554
|
+
return navigator.mediaDevices.getUserMedia(constraints);
|
|
4555
|
+
});
|
|
4556
|
+
}
|
|
4557
|
+
/**
|
|
4558
|
+
* Prompts the user for permission to use a user's display media and audio. If a video track is
|
|
4559
|
+
* absent from the constraints argument, one will still be provided.
|
|
4560
|
+
*
|
|
4561
|
+
* @param constraints - A MediaStreamConstraints object specifying the types of media to request,
|
|
4562
|
+
* along with any requirements for each type.
|
|
4563
|
+
* @returns A Promise whose fulfillment handler receives a MediaStream object when the requested
|
|
4564
|
+
* media has successfully been obtained.
|
|
4565
|
+
*/
|
|
4566
|
+
function getDisplayMedia(constraints) {
|
|
4567
|
+
return navigator.mediaDevices.getDisplayMedia(constraints);
|
|
4568
|
+
}
|
|
4569
|
+
/**
|
|
4570
|
+
* Requests a list of the available media input and output devices, such as microphones, cameras,
|
|
4571
|
+
* headsets, and so forth.
|
|
4572
|
+
*
|
|
4573
|
+
* @returns A Promise that receives an array of MediaDeviceInfo objects when the promise is
|
|
4574
|
+
* fulfilled.
|
|
4575
|
+
*/
|
|
4576
|
+
function enumerateDevices() {
|
|
4577
|
+
return __awaiter$1(this, void 0, void 0, function* () {
|
|
4578
|
+
return navigator.mediaDevices.enumerateDevices();
|
|
4579
|
+
});
|
|
4580
|
+
}
|
|
4581
|
+
/**
|
|
4582
|
+
* Adds the callback handler to be notified of a media device change (for example, a headset is
|
|
4583
|
+
* unplugged from the user's computer).
|
|
4584
|
+
*
|
|
4585
|
+
* @param handler - The callback function to execute.
|
|
4586
|
+
*/
|
|
4587
|
+
function setOnDeviceChangeHandler$1(handler) {
|
|
4588
|
+
navigator.mediaDevices.ondevicechange = handler;
|
|
4589
|
+
}
|
|
4590
|
+
/**
|
|
4591
|
+
* Checks permissions using the navigator's permissions api.
|
|
4592
|
+
*
|
|
4593
|
+
* @param deviceKinds - Array of DeviceKind items.
|
|
4594
|
+
* @throws An error if camera or microphone aren't available options for query() (Firefox), or if
|
|
4595
|
+
* navigator.permissions is undefined (Safari and others).
|
|
4596
|
+
* @returns Array of Permission Status objects.
|
|
4597
|
+
*/
|
|
4598
|
+
function checkNavigatorPermissions(deviceKinds) {
|
|
4599
|
+
return __awaiter$1(this, void 0, void 0, function* () {
|
|
4600
|
+
var permissionRequests = [];
|
|
4601
|
+
if (deviceKinds.includes(DeviceKind.VideoInput)) {
|
|
4602
|
+
permissionRequests.push(navigator.permissions.query({
|
|
4603
|
+
name: 'camera'
|
|
4604
|
+
}));
|
|
4605
|
+
}
|
|
4606
|
+
if (deviceKinds.includes(DeviceKind.AudioInput)) {
|
|
4607
|
+
permissionRequests.push(navigator.permissions.query({
|
|
4608
|
+
name: 'microphone'
|
|
4609
|
+
}));
|
|
4610
|
+
}
|
|
4611
|
+
return Promise.all(permissionRequests);
|
|
4612
|
+
});
|
|
4613
|
+
}
|
|
4614
|
+
/**
|
|
4615
|
+
* Check to see if the user has granted the application permission to use their devices.
|
|
4616
|
+
*
|
|
4617
|
+
* @param deviceKinds - Array of DeviceKind items.
|
|
4618
|
+
* @returns True if device permissions exist, false if otherwise.
|
|
4619
|
+
*/
|
|
4620
|
+
function checkDevicePermissions(deviceKinds) {
|
|
4621
|
+
return __awaiter$1(this, void 0, void 0, function* () {
|
|
4622
|
+
try {
|
|
4623
|
+
var permissions = yield checkNavigatorPermissions(deviceKinds);
|
|
4624
|
+
if (permissions.every(permission => permission.state === 'granted')) {
|
|
4625
|
+
return true;
|
|
4626
|
+
}
|
|
4627
|
+
// eslint-disable-next-line no-empty
|
|
4628
|
+
} catch (e) {}
|
|
4629
|
+
try {
|
|
4630
|
+
var devices = yield enumerateDevices();
|
|
4631
|
+
// If permissions are granted, the MediaDeviceInfo objects will have labels.
|
|
4632
|
+
return devices.filter(device => deviceKinds.includes(device.kind)).every(device => device.label);
|
|
4633
|
+
// eslint-disable-next-line no-empty
|
|
4634
|
+
} catch (e) {}
|
|
4635
|
+
return false;
|
|
4636
|
+
});
|
|
4637
|
+
}
|
|
4638
|
+
/**
|
|
4639
|
+
* Ensures that the user has granted permissions to the microphone and camera.
|
|
4640
|
+
*
|
|
4641
|
+
* @param deviceKinds - Array of DeviceKind items.
|
|
4642
|
+
* @param callback - Function that will be executed while device permissions are granted. After this
|
|
4643
|
+
* returns, permissions (for example device labels in Firefox) may not be available anymore.
|
|
4644
|
+
* @returns The callback's response.
|
|
4645
|
+
*/
|
|
4646
|
+
function ensureDevicePermissions(deviceKinds, callback) {
|
|
4647
|
+
return __awaiter$1(this, void 0, void 0, function* () {
|
|
4648
|
+
try {
|
|
4649
|
+
var hasDevicePermissions = yield checkDevicePermissions(deviceKinds);
|
|
4650
|
+
if (!hasDevicePermissions) {
|
|
4651
|
+
var stream = yield getUserMedia({
|
|
4652
|
+
audio: deviceKinds.includes(DeviceKind.AudioInput),
|
|
4653
|
+
video: deviceKinds.includes(DeviceKind.VideoInput)
|
|
4654
|
+
});
|
|
4655
|
+
// Callback is here to call a function while an active capture exists, so that the browser
|
|
4656
|
+
// (Firefox) will allow the user to access device information.
|
|
4657
|
+
var callbackRes = yield callback();
|
|
4658
|
+
// Stop tracks in the stream so the browser (Safari) will know that there is not an active
|
|
4659
|
+
// stream running.
|
|
4660
|
+
stream.getTracks().forEach(track => track.stop());
|
|
4661
|
+
return callbackRes;
|
|
4662
|
+
}
|
|
4663
|
+
return callback();
|
|
4664
|
+
} catch (e) {
|
|
4665
|
+
logger$3.error(e);
|
|
4666
|
+
throw new Error('Failed to ensure device permissions.');
|
|
4667
|
+
}
|
|
4668
|
+
});
|
|
4669
|
+
}
|
|
4670
|
+
var media = /*#__PURE__*/Object.freeze({
|
|
4671
|
+
__proto__: null,
|
|
4672
|
+
get DeviceKind() {
|
|
4673
|
+
return DeviceKind;
|
|
4674
|
+
},
|
|
4675
|
+
getUserMedia: getUserMedia,
|
|
4676
|
+
getDisplayMedia: getDisplayMedia,
|
|
4677
|
+
enumerateDevices: enumerateDevices,
|
|
4678
|
+
setOnDeviceChangeHandler: setOnDeviceChangeHandler$1,
|
|
4679
|
+
checkDevicePermissions: checkDevicePermissions,
|
|
4680
|
+
ensureDevicePermissions: ensureDevicePermissions
|
|
4681
|
+
});
|
|
4682
|
+
var ErrorTypes;
|
|
4683
|
+
(function (ErrorTypes) {
|
|
4684
|
+
ErrorTypes["DEVICE_PERMISSION_DENIED"] = "DEVICE_PERMISSION_DENIED";
|
|
4685
|
+
ErrorTypes["CREATE_CAMERA_TRACK_FAILED"] = "CREATE_CAMERA_TRACK_FAILED";
|
|
4686
|
+
ErrorTypes["CREATE_MICROPHONE_TRACK_FAILED"] = "CREATE_MICROPHONE_TRACK_FAILED";
|
|
4687
|
+
})(ErrorTypes || (ErrorTypes = {}));
|
|
4688
|
+
/**
|
|
4689
|
+
* Represents a WCME error, which contains error type and error message.
|
|
4690
|
+
*/
|
|
4691
|
+
class WcmeError {
|
|
4692
|
+
/**
|
|
4693
|
+
* Creates new error.
|
|
4694
|
+
*
|
|
4695
|
+
* @param type - Error type.
|
|
4696
|
+
* @param message - Error message.
|
|
4697
|
+
*/
|
|
4698
|
+
constructor(type) {
|
|
4699
|
+
var message = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
|
4700
|
+
this.type = type;
|
|
4701
|
+
this.message = message;
|
|
4702
|
+
}
|
|
4703
|
+
}
|
|
4704
|
+
/**
|
|
4705
|
+
* Creates a camera video track. Please note that the constraint params in second getUserMedia call would NOT take effect when:
|
|
4706
|
+
*
|
|
4707
|
+
* 1. Previous captured video track from the same device is not stopped .
|
|
4708
|
+
* 2. Previous createCameraTrack() call for the same device is in progress.
|
|
4709
|
+
*
|
|
4710
|
+
* @param constructor - Constructor for the local camera track.
|
|
4711
|
+
* @param constraints - Video device constraints.
|
|
4712
|
+
* @returns A LocalTrack object or an error.
|
|
4713
|
+
*/
|
|
4714
|
+
function createCameraTrack(constructor, constraints) {
|
|
4715
|
+
return __awaiter$1(this, void 0, void 0, function* () {
|
|
4716
|
+
var stream;
|
|
4717
|
+
try {
|
|
4718
|
+
stream = yield getUserMedia({
|
|
4719
|
+
video: Object.assign({}, constraints)
|
|
4720
|
+
});
|
|
4721
|
+
} catch (error) {
|
|
4722
|
+
throw new WcmeError(ErrorTypes.CREATE_CAMERA_TRACK_FAILED, "Failed to create camera track ".concat(error));
|
|
4723
|
+
}
|
|
4724
|
+
return new constructor(stream);
|
|
4725
|
+
});
|
|
4726
|
+
}
|
|
4727
|
+
/**
|
|
4728
|
+
* Creates a microphone audio track.
|
|
4729
|
+
*
|
|
4730
|
+
* @param constructor - Constructor for the local microphone track.
|
|
4731
|
+
* @param constraints - Audio device constraints.
|
|
4732
|
+
* @returns A LocalTrack object or an error.
|
|
4733
|
+
*/
|
|
4734
|
+
function createMicrophoneTrack(constructor, constraints) {
|
|
4735
|
+
return __awaiter$1(this, void 0, void 0, function* () {
|
|
4736
|
+
var stream;
|
|
4737
|
+
try {
|
|
4738
|
+
stream = yield getUserMedia({
|
|
4739
|
+
audio: Object.assign({}, constraints)
|
|
4740
|
+
});
|
|
4741
|
+
} catch (error) {
|
|
4742
|
+
throw new WcmeError(ErrorTypes.CREATE_MICROPHONE_TRACK_FAILED, "Failed to create microphone track ".concat(error));
|
|
4743
|
+
}
|
|
4744
|
+
return new constructor(stream);
|
|
4745
|
+
});
|
|
4746
|
+
}
|
|
4747
|
+
/**
|
|
4748
|
+
* Creates a display video track.
|
|
4749
|
+
*
|
|
4750
|
+
* @param constructor - Constructor for the local display track.
|
|
4751
|
+
* @returns A Promise that resolves to a LocalDisplayTrack.
|
|
4752
|
+
*/
|
|
4753
|
+
function createDisplayTrack(constructor) {
|
|
4754
|
+
return __awaiter$1(this, void 0, void 0, function* () {
|
|
4755
|
+
var stream = yield getDisplayMedia({
|
|
4756
|
+
video: true
|
|
4757
|
+
});
|
|
4758
|
+
return new constructor(stream);
|
|
4759
|
+
});
|
|
4760
|
+
}
|
|
4761
|
+
/**
|
|
4762
|
+
* Enumerates the media input and output devices available.
|
|
4763
|
+
*
|
|
4764
|
+
* @param deviceKind - Optional filter to return a specific device kind.
|
|
4765
|
+
* @returns List of media devices in an array of MediaDeviceInfo objects.
|
|
4766
|
+
*/
|
|
4767
|
+
function getDevices(deviceKind) {
|
|
4768
|
+
return __awaiter$1(this, void 0, void 0, function* () {
|
|
4769
|
+
var devices;
|
|
4770
|
+
try {
|
|
4771
|
+
devices = yield ensureDevicePermissions([DeviceKind.AudioInput, DeviceKind.VideoInput], enumerateDevices);
|
|
4772
|
+
} catch (error) {
|
|
4773
|
+
throw new WcmeError(ErrorTypes.DEVICE_PERMISSION_DENIED, 'Failed to ensure device permissions');
|
|
4774
|
+
}
|
|
4775
|
+
return devices.filter(v => deviceKind ? v.kind === deviceKind : true);
|
|
4776
|
+
});
|
|
4777
|
+
}
|
|
4778
|
+
/**
|
|
4779
|
+
* Helper function to get a list of microphone devices.
|
|
4780
|
+
*
|
|
4781
|
+
* @returns List of microphone devices in an array of MediaDeviceInfo objects.
|
|
4782
|
+
*/
|
|
4783
|
+
function getAudioInputDevices() {
|
|
4784
|
+
return __awaiter$1(this, void 0, void 0, function* () {
|
|
4785
|
+
return getDevices(DeviceKind.AudioInput);
|
|
4786
|
+
});
|
|
4787
|
+
}
|
|
4788
|
+
/**
|
|
4789
|
+
* Helper function to get a list of speaker devices.
|
|
4790
|
+
*
|
|
4791
|
+
* @returns List of speaker devices in an array of MediaDeviceInfo objects.
|
|
4792
|
+
*/
|
|
4793
|
+
function getAudioOutputDevices() {
|
|
4794
|
+
return __awaiter$1(this, void 0, void 0, function* () {
|
|
4795
|
+
return getDevices(DeviceKind.AudioOutput);
|
|
4796
|
+
});
|
|
4797
|
+
}
|
|
4798
|
+
/**
|
|
4799
|
+
* Helper function to get a list of camera devices.
|
|
4800
|
+
*
|
|
4801
|
+
* @returns List of camera devices in an array of MediaDeviceInfo objects.
|
|
4802
|
+
*/
|
|
4803
|
+
function getVideoInputDevices() {
|
|
4804
|
+
return __awaiter$1(this, void 0, void 0, function* () {
|
|
4805
|
+
return getDevices(DeviceKind.VideoInput);
|
|
4806
|
+
});
|
|
4807
|
+
}
|
|
4808
|
+
/**
|
|
4809
|
+
* Export the setOnDeviceChangeHandler method directly from the core lib.
|
|
4810
|
+
*/
|
|
4811
|
+
var {
|
|
4812
|
+
setOnDeviceChangeHandler
|
|
4813
|
+
} = media;
|
|
4543
4814
|
var events$1 = {
|
|
4544
4815
|
exports: {}
|
|
4545
4816
|
};
|
|
@@ -5218,12 +5489,6 @@ class LocalDisplayTrack extends LocalTrack {}
|
|
|
5218
5489
|
* Represents a local track for a microphone source.
|
|
5219
5490
|
*/
|
|
5220
5491
|
class LocalMicrophoneTrack extends LocalTrack {}
|
|
5221
|
-
var ErrorTypes;
|
|
5222
|
-
(function (ErrorTypes) {
|
|
5223
|
-
ErrorTypes["DEVICE_PERMISSION_DENIED"] = "DEVICE_PERMISSION_DENIED";
|
|
5224
|
-
ErrorTypes["CREATE_CAMERA_TRACK_FAILED"] = "CREATE_CAMERA_TRACK_FAILED";
|
|
5225
|
-
ErrorTypes["CREATE_MICROPHONE_TRACK_FAILED"] = "CREATE_MICROPHONE_TRACK_FAILED";
|
|
5226
|
-
})(ErrorTypes || (ErrorTypes = {}));
|
|
5227
5492
|
|
|
5228
5493
|
// Overall connection state (based on the ICE and DTLS connection states)
|
|
5229
5494
|
exports.ConnectionState = void 0;
|
|
@@ -8396,11 +8661,11 @@ function createRTCPeerConnection(configuration) {
|
|
|
8396
8661
|
/**
|
|
8397
8662
|
* A type-safe form of the DOMString used in the MediaStreamTrack.kind field.
|
|
8398
8663
|
*/
|
|
8399
|
-
|
|
8664
|
+
exports.MediaStreamTrackKind = void 0;
|
|
8400
8665
|
(function (MediaStreamTrackKind) {
|
|
8401
8666
|
MediaStreamTrackKind["Audio"] = "audio";
|
|
8402
8667
|
MediaStreamTrackKind["Video"] = "video";
|
|
8403
|
-
})(MediaStreamTrackKind || (MediaStreamTrackKind = {}));
|
|
8668
|
+
})(exports.MediaStreamTrackKind || (exports.MediaStreamTrackKind = {}));
|
|
8404
8669
|
var PeerConnectionEvents;
|
|
8405
8670
|
(function (PeerConnectionEvents) {
|
|
8406
8671
|
PeerConnectionEvents["IceGatheringStateChange"] = "icegatheringstatechange";
|
|
@@ -14241,10 +14506,10 @@ function setLogHandler(logHandler) {
|
|
|
14241
14506
|
Logger$1.setHandler(logHandler);
|
|
14242
14507
|
}
|
|
14243
14508
|
function toMediaStreamTrackKind(mediaType) {
|
|
14244
|
-
return [MediaType.VideoMain, MediaType.VideoSlides].includes(mediaType) ? MediaStreamTrackKind.Video : MediaStreamTrackKind.Audio;
|
|
14509
|
+
return [MediaType.VideoMain, MediaType.VideoSlides].includes(mediaType) ? exports.MediaStreamTrackKind.Video : exports.MediaStreamTrackKind.Audio;
|
|
14245
14510
|
}
|
|
14246
14511
|
function toMediaFamily(kind) {
|
|
14247
|
-
if (kind === MediaStreamTrackKind.Video) {
|
|
14512
|
+
if (kind === exports.MediaStreamTrackKind.Video) {
|
|
14248
14513
|
return MediaFamily.Video;
|
|
14249
14514
|
}
|
|
14250
14515
|
return MediaFamily.Audio;
|
|
@@ -14438,7 +14703,7 @@ class MultistreamConnection extends EventEmitter {
|
|
|
14438
14703
|
state: 'invalid source',
|
|
14439
14704
|
csi: sendTransceiver.csi
|
|
14440
14705
|
});
|
|
14441
|
-
} else if (signaler.getEncodingIndexForStreamId(id)
|
|
14706
|
+
} else if (signaler.getEncodingIndexForStreamId(id) >= activeSimulcastLayerNumber) {
|
|
14442
14707
|
sourceWarnings.push({
|
|
14443
14708
|
id,
|
|
14444
14709
|
state: 'no source',
|
|
@@ -14921,7 +15186,7 @@ class MultistreamConnection extends EventEmitter {
|
|
|
14921
15186
|
}
|
|
14922
15187
|
renewPeerConnection(userOptions) {
|
|
14923
15188
|
if (userOptions) {
|
|
14924
|
-
this.options = Object.assign(Object.assign({},
|
|
15189
|
+
this.options = Object.assign(Object.assign({}, this.options), userOptions);
|
|
14925
15190
|
}
|
|
14926
15191
|
logger$4.info("Renewing multistream connection with options ".concat(JSON.stringify(this.options)));
|
|
14927
15192
|
this.clearMids();
|
|
@@ -24205,11 +24470,21 @@ exports.LocalTrack = LocalTrack;
|
|
|
24205
24470
|
exports.Media = Media;
|
|
24206
24471
|
exports.MediaRequest = MediaRequest;
|
|
24207
24472
|
exports.MultistreamRoapMediaConnection = MultistreamRoapMediaConnection;
|
|
24473
|
+
exports.PeerConnection = PeerConnection;
|
|
24208
24474
|
exports.ReceiveSlot = ReceiveSlot;
|
|
24209
24475
|
exports.ReceiverSelectedInfo = ReceiverSelectedInfo;
|
|
24210
24476
|
exports.RoapMediaConnection = RoapMediaConnection;
|
|
24477
|
+
exports.WcmeError = WcmeError;
|
|
24478
|
+
exports.createCameraTrack = createCameraTrack;
|
|
24479
|
+
exports.createDisplayTrack = createDisplayTrack;
|
|
24480
|
+
exports.createMicrophoneTrack = createMicrophoneTrack;
|
|
24481
|
+
exports.getAudioInputDevices = getAudioInputDevices;
|
|
24482
|
+
exports.getAudioOutputDevices = getAudioOutputDevices;
|
|
24483
|
+
exports.getDevices = getDevices;
|
|
24211
24484
|
exports.getErrorDescription = getErrorDescription;
|
|
24212
24485
|
exports.getLogger = getLogger;
|
|
24213
24486
|
exports.getMediaFamily = getMediaFamily;
|
|
24487
|
+
exports.getVideoInputDevices = getVideoInputDevices;
|
|
24214
24488
|
exports.isBrowserSupported = isBrowserSupported;
|
|
24215
24489
|
exports.setLogger = setLogger;
|
|
24490
|
+
exports.setOnDeviceChangeHandler = setOnDeviceChangeHandler;
|
package/dist/esm/index.js
CHANGED
|
@@ -1972,7 +1972,7 @@ class Track extends EventEmitter$4 {
|
|
|
1972
1972
|
|
|
1973
1973
|
var eventEmitter = new EventEmitter$4();
|
|
1974
1974
|
var deviceList = [];
|
|
1975
|
-
var getDevices = /*#__PURE__*/function () {
|
|
1975
|
+
var getDevices$1 = /*#__PURE__*/function () {
|
|
1976
1976
|
var _ref = _asyncToGenerator(function* () {
|
|
1977
1977
|
var _navigator$mediaDevic;
|
|
1978
1978
|
logger$5.debug({
|
|
@@ -2002,7 +2002,7 @@ var getCameras = /*#__PURE__*/function () {
|
|
|
2002
2002
|
action: 'getCameras()',
|
|
2003
2003
|
description: 'Called'
|
|
2004
2004
|
});
|
|
2005
|
-
var devices = yield getDevices();
|
|
2005
|
+
var devices = yield getDevices$1();
|
|
2006
2006
|
logger$5.info({
|
|
2007
2007
|
mediaType: DEVICE,
|
|
2008
2008
|
action: 'getCameras()',
|
|
@@ -2034,7 +2034,7 @@ var getMicrophones = /*#__PURE__*/function () {
|
|
|
2034
2034
|
action: 'getMicrophones()',
|
|
2035
2035
|
description: 'Called'
|
|
2036
2036
|
});
|
|
2037
|
-
var devices = yield getDevices();
|
|
2037
|
+
var devices = yield getDevices$1();
|
|
2038
2038
|
logger$5.info({
|
|
2039
2039
|
mediaType: DEVICE,
|
|
2040
2040
|
action: 'getMicrophones()',
|
|
@@ -2066,7 +2066,7 @@ var getSpeakers = /*#__PURE__*/function () {
|
|
|
2066
2066
|
action: 'getSpeakers()',
|
|
2067
2067
|
description: 'Called'
|
|
2068
2068
|
});
|
|
2069
|
-
var devices = yield getDevices();
|
|
2069
|
+
var devices = yield getDevices$1();
|
|
2070
2070
|
logger$5.info({
|
|
2071
2071
|
mediaType: DEVICE,
|
|
2072
2072
|
action: 'getSpeakers()',
|
|
@@ -2378,7 +2378,7 @@ function _on() {
|
|
|
2378
2378
|
});
|
|
2379
2379
|
eventEmitter.on(eventName, listener);
|
|
2380
2380
|
if (eventName === 'device:changed') {
|
|
2381
|
-
var thisDeviceList = yield getDevices();
|
|
2381
|
+
var thisDeviceList = yield getDevices$1();
|
|
2382
2382
|
deviceList.push(...thisDeviceList);
|
|
2383
2383
|
navigator.mediaDevices.addEventListener('devicechange', deviceChangePublisher);
|
|
2384
2384
|
}
|
|
@@ -4529,6 +4529,277 @@ var DeviceKind;
|
|
|
4529
4529
|
DeviceKind["AudioOutput"] = "audiooutput";
|
|
4530
4530
|
DeviceKind["VideoInput"] = "videoinput";
|
|
4531
4531
|
})(DeviceKind || (DeviceKind = {}));
|
|
4532
|
+
/**
|
|
4533
|
+
* Prompts the user for permission to use a media input which produces a MediaStream with tracks
|
|
4534
|
+
* containing the requested types of media.
|
|
4535
|
+
*
|
|
4536
|
+
* @param constraints - A MediaStreamConstraints object specifying the types of media to request,
|
|
4537
|
+
* along with any requirements for each type.
|
|
4538
|
+
* @returns A Promise whose fulfillment handler receives a MediaStream object when the requested
|
|
4539
|
+
* media has successfully been obtained.
|
|
4540
|
+
*/
|
|
4541
|
+
function getUserMedia(constraints) {
|
|
4542
|
+
return __awaiter$1(this, void 0, void 0, function* () {
|
|
4543
|
+
return navigator.mediaDevices.getUserMedia(constraints);
|
|
4544
|
+
});
|
|
4545
|
+
}
|
|
4546
|
+
/**
|
|
4547
|
+
* Prompts the user for permission to use a user's display media and audio. If a video track is
|
|
4548
|
+
* absent from the constraints argument, one will still be provided.
|
|
4549
|
+
*
|
|
4550
|
+
* @param constraints - A MediaStreamConstraints object specifying the types of media to request,
|
|
4551
|
+
* along with any requirements for each type.
|
|
4552
|
+
* @returns A Promise whose fulfillment handler receives a MediaStream object when the requested
|
|
4553
|
+
* media has successfully been obtained.
|
|
4554
|
+
*/
|
|
4555
|
+
function getDisplayMedia(constraints) {
|
|
4556
|
+
return navigator.mediaDevices.getDisplayMedia(constraints);
|
|
4557
|
+
}
|
|
4558
|
+
/**
|
|
4559
|
+
* Requests a list of the available media input and output devices, such as microphones, cameras,
|
|
4560
|
+
* headsets, and so forth.
|
|
4561
|
+
*
|
|
4562
|
+
* @returns A Promise that receives an array of MediaDeviceInfo objects when the promise is
|
|
4563
|
+
* fulfilled.
|
|
4564
|
+
*/
|
|
4565
|
+
function enumerateDevices() {
|
|
4566
|
+
return __awaiter$1(this, void 0, void 0, function* () {
|
|
4567
|
+
return navigator.mediaDevices.enumerateDevices();
|
|
4568
|
+
});
|
|
4569
|
+
}
|
|
4570
|
+
/**
|
|
4571
|
+
* Adds the callback handler to be notified of a media device change (for example, a headset is
|
|
4572
|
+
* unplugged from the user's computer).
|
|
4573
|
+
*
|
|
4574
|
+
* @param handler - The callback function to execute.
|
|
4575
|
+
*/
|
|
4576
|
+
function setOnDeviceChangeHandler$1(handler) {
|
|
4577
|
+
navigator.mediaDevices.ondevicechange = handler;
|
|
4578
|
+
}
|
|
4579
|
+
/**
|
|
4580
|
+
* Checks permissions using the navigator's permissions api.
|
|
4581
|
+
*
|
|
4582
|
+
* @param deviceKinds - Array of DeviceKind items.
|
|
4583
|
+
* @throws An error if camera or microphone aren't available options for query() (Firefox), or if
|
|
4584
|
+
* navigator.permissions is undefined (Safari and others).
|
|
4585
|
+
* @returns Array of Permission Status objects.
|
|
4586
|
+
*/
|
|
4587
|
+
function checkNavigatorPermissions(deviceKinds) {
|
|
4588
|
+
return __awaiter$1(this, void 0, void 0, function* () {
|
|
4589
|
+
var permissionRequests = [];
|
|
4590
|
+
if (deviceKinds.includes(DeviceKind.VideoInput)) {
|
|
4591
|
+
permissionRequests.push(navigator.permissions.query({
|
|
4592
|
+
name: 'camera'
|
|
4593
|
+
}));
|
|
4594
|
+
}
|
|
4595
|
+
if (deviceKinds.includes(DeviceKind.AudioInput)) {
|
|
4596
|
+
permissionRequests.push(navigator.permissions.query({
|
|
4597
|
+
name: 'microphone'
|
|
4598
|
+
}));
|
|
4599
|
+
}
|
|
4600
|
+
return Promise.all(permissionRequests);
|
|
4601
|
+
});
|
|
4602
|
+
}
|
|
4603
|
+
/**
|
|
4604
|
+
* Check to see if the user has granted the application permission to use their devices.
|
|
4605
|
+
*
|
|
4606
|
+
* @param deviceKinds - Array of DeviceKind items.
|
|
4607
|
+
* @returns True if device permissions exist, false if otherwise.
|
|
4608
|
+
*/
|
|
4609
|
+
function checkDevicePermissions(deviceKinds) {
|
|
4610
|
+
return __awaiter$1(this, void 0, void 0, function* () {
|
|
4611
|
+
try {
|
|
4612
|
+
var permissions = yield checkNavigatorPermissions(deviceKinds);
|
|
4613
|
+
if (permissions.every(permission => permission.state === 'granted')) {
|
|
4614
|
+
return true;
|
|
4615
|
+
}
|
|
4616
|
+
// eslint-disable-next-line no-empty
|
|
4617
|
+
} catch (e) {}
|
|
4618
|
+
try {
|
|
4619
|
+
var devices = yield enumerateDevices();
|
|
4620
|
+
// If permissions are granted, the MediaDeviceInfo objects will have labels.
|
|
4621
|
+
return devices.filter(device => deviceKinds.includes(device.kind)).every(device => device.label);
|
|
4622
|
+
// eslint-disable-next-line no-empty
|
|
4623
|
+
} catch (e) {}
|
|
4624
|
+
return false;
|
|
4625
|
+
});
|
|
4626
|
+
}
|
|
4627
|
+
/**
|
|
4628
|
+
* Ensures that the user has granted permissions to the microphone and camera.
|
|
4629
|
+
*
|
|
4630
|
+
* @param deviceKinds - Array of DeviceKind items.
|
|
4631
|
+
* @param callback - Function that will be executed while device permissions are granted. After this
|
|
4632
|
+
* returns, permissions (for example device labels in Firefox) may not be available anymore.
|
|
4633
|
+
* @returns The callback's response.
|
|
4634
|
+
*/
|
|
4635
|
+
function ensureDevicePermissions(deviceKinds, callback) {
|
|
4636
|
+
return __awaiter$1(this, void 0, void 0, function* () {
|
|
4637
|
+
try {
|
|
4638
|
+
var hasDevicePermissions = yield checkDevicePermissions(deviceKinds);
|
|
4639
|
+
if (!hasDevicePermissions) {
|
|
4640
|
+
var stream = yield getUserMedia({
|
|
4641
|
+
audio: deviceKinds.includes(DeviceKind.AudioInput),
|
|
4642
|
+
video: deviceKinds.includes(DeviceKind.VideoInput)
|
|
4643
|
+
});
|
|
4644
|
+
// Callback is here to call a function while an active capture exists, so that the browser
|
|
4645
|
+
// (Firefox) will allow the user to access device information.
|
|
4646
|
+
var callbackRes = yield callback();
|
|
4647
|
+
// Stop tracks in the stream so the browser (Safari) will know that there is not an active
|
|
4648
|
+
// stream running.
|
|
4649
|
+
stream.getTracks().forEach(track => track.stop());
|
|
4650
|
+
return callbackRes;
|
|
4651
|
+
}
|
|
4652
|
+
return callback();
|
|
4653
|
+
} catch (e) {
|
|
4654
|
+
logger$3.error(e);
|
|
4655
|
+
throw new Error('Failed to ensure device permissions.');
|
|
4656
|
+
}
|
|
4657
|
+
});
|
|
4658
|
+
}
|
|
4659
|
+
var media = /*#__PURE__*/Object.freeze({
|
|
4660
|
+
__proto__: null,
|
|
4661
|
+
get DeviceKind() {
|
|
4662
|
+
return DeviceKind;
|
|
4663
|
+
},
|
|
4664
|
+
getUserMedia: getUserMedia,
|
|
4665
|
+
getDisplayMedia: getDisplayMedia,
|
|
4666
|
+
enumerateDevices: enumerateDevices,
|
|
4667
|
+
setOnDeviceChangeHandler: setOnDeviceChangeHandler$1,
|
|
4668
|
+
checkDevicePermissions: checkDevicePermissions,
|
|
4669
|
+
ensureDevicePermissions: ensureDevicePermissions
|
|
4670
|
+
});
|
|
4671
|
+
var ErrorTypes;
|
|
4672
|
+
(function (ErrorTypes) {
|
|
4673
|
+
ErrorTypes["DEVICE_PERMISSION_DENIED"] = "DEVICE_PERMISSION_DENIED";
|
|
4674
|
+
ErrorTypes["CREATE_CAMERA_TRACK_FAILED"] = "CREATE_CAMERA_TRACK_FAILED";
|
|
4675
|
+
ErrorTypes["CREATE_MICROPHONE_TRACK_FAILED"] = "CREATE_MICROPHONE_TRACK_FAILED";
|
|
4676
|
+
})(ErrorTypes || (ErrorTypes = {}));
|
|
4677
|
+
/**
|
|
4678
|
+
* Represents a WCME error, which contains error type and error message.
|
|
4679
|
+
*/
|
|
4680
|
+
class WcmeError {
|
|
4681
|
+
/**
|
|
4682
|
+
* Creates new error.
|
|
4683
|
+
*
|
|
4684
|
+
* @param type - Error type.
|
|
4685
|
+
* @param message - Error message.
|
|
4686
|
+
*/
|
|
4687
|
+
constructor(type) {
|
|
4688
|
+
var message = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
|
4689
|
+
this.type = type;
|
|
4690
|
+
this.message = message;
|
|
4691
|
+
}
|
|
4692
|
+
}
|
|
4693
|
+
/**
|
|
4694
|
+
* Creates a camera video track. Please note that the constraint params in second getUserMedia call would NOT take effect when:
|
|
4695
|
+
*
|
|
4696
|
+
* 1. Previous captured video track from the same device is not stopped .
|
|
4697
|
+
* 2. Previous createCameraTrack() call for the same device is in progress.
|
|
4698
|
+
*
|
|
4699
|
+
* @param constructor - Constructor for the local camera track.
|
|
4700
|
+
* @param constraints - Video device constraints.
|
|
4701
|
+
* @returns A LocalTrack object or an error.
|
|
4702
|
+
*/
|
|
4703
|
+
function createCameraTrack(constructor, constraints) {
|
|
4704
|
+
return __awaiter$1(this, void 0, void 0, function* () {
|
|
4705
|
+
var stream;
|
|
4706
|
+
try {
|
|
4707
|
+
stream = yield getUserMedia({
|
|
4708
|
+
video: Object.assign({}, constraints)
|
|
4709
|
+
});
|
|
4710
|
+
} catch (error) {
|
|
4711
|
+
throw new WcmeError(ErrorTypes.CREATE_CAMERA_TRACK_FAILED, "Failed to create camera track ".concat(error));
|
|
4712
|
+
}
|
|
4713
|
+
return new constructor(stream);
|
|
4714
|
+
});
|
|
4715
|
+
}
|
|
4716
|
+
/**
|
|
4717
|
+
* Creates a microphone audio track.
|
|
4718
|
+
*
|
|
4719
|
+
* @param constructor - Constructor for the local microphone track.
|
|
4720
|
+
* @param constraints - Audio device constraints.
|
|
4721
|
+
* @returns A LocalTrack object or an error.
|
|
4722
|
+
*/
|
|
4723
|
+
function createMicrophoneTrack(constructor, constraints) {
|
|
4724
|
+
return __awaiter$1(this, void 0, void 0, function* () {
|
|
4725
|
+
var stream;
|
|
4726
|
+
try {
|
|
4727
|
+
stream = yield getUserMedia({
|
|
4728
|
+
audio: Object.assign({}, constraints)
|
|
4729
|
+
});
|
|
4730
|
+
} catch (error) {
|
|
4731
|
+
throw new WcmeError(ErrorTypes.CREATE_MICROPHONE_TRACK_FAILED, "Failed to create microphone track ".concat(error));
|
|
4732
|
+
}
|
|
4733
|
+
return new constructor(stream);
|
|
4734
|
+
});
|
|
4735
|
+
}
|
|
4736
|
+
/**
|
|
4737
|
+
* Creates a display video track.
|
|
4738
|
+
*
|
|
4739
|
+
* @param constructor - Constructor for the local display track.
|
|
4740
|
+
* @returns A Promise that resolves to a LocalDisplayTrack.
|
|
4741
|
+
*/
|
|
4742
|
+
function createDisplayTrack(constructor) {
|
|
4743
|
+
return __awaiter$1(this, void 0, void 0, function* () {
|
|
4744
|
+
var stream = yield getDisplayMedia({
|
|
4745
|
+
video: true
|
|
4746
|
+
});
|
|
4747
|
+
return new constructor(stream);
|
|
4748
|
+
});
|
|
4749
|
+
}
|
|
4750
|
+
/**
|
|
4751
|
+
* Enumerates the media input and output devices available.
|
|
4752
|
+
*
|
|
4753
|
+
* @param deviceKind - Optional filter to return a specific device kind.
|
|
4754
|
+
* @returns List of media devices in an array of MediaDeviceInfo objects.
|
|
4755
|
+
*/
|
|
4756
|
+
function getDevices(deviceKind) {
|
|
4757
|
+
return __awaiter$1(this, void 0, void 0, function* () {
|
|
4758
|
+
var devices;
|
|
4759
|
+
try {
|
|
4760
|
+
devices = yield ensureDevicePermissions([DeviceKind.AudioInput, DeviceKind.VideoInput], enumerateDevices);
|
|
4761
|
+
} catch (error) {
|
|
4762
|
+
throw new WcmeError(ErrorTypes.DEVICE_PERMISSION_DENIED, 'Failed to ensure device permissions');
|
|
4763
|
+
}
|
|
4764
|
+
return devices.filter(v => deviceKind ? v.kind === deviceKind : true);
|
|
4765
|
+
});
|
|
4766
|
+
}
|
|
4767
|
+
/**
|
|
4768
|
+
* Helper function to get a list of microphone devices.
|
|
4769
|
+
*
|
|
4770
|
+
* @returns List of microphone devices in an array of MediaDeviceInfo objects.
|
|
4771
|
+
*/
|
|
4772
|
+
function getAudioInputDevices() {
|
|
4773
|
+
return __awaiter$1(this, void 0, void 0, function* () {
|
|
4774
|
+
return getDevices(DeviceKind.AudioInput);
|
|
4775
|
+
});
|
|
4776
|
+
}
|
|
4777
|
+
/**
|
|
4778
|
+
* Helper function to get a list of speaker devices.
|
|
4779
|
+
*
|
|
4780
|
+
* @returns List of speaker devices in an array of MediaDeviceInfo objects.
|
|
4781
|
+
*/
|
|
4782
|
+
function getAudioOutputDevices() {
|
|
4783
|
+
return __awaiter$1(this, void 0, void 0, function* () {
|
|
4784
|
+
return getDevices(DeviceKind.AudioOutput);
|
|
4785
|
+
});
|
|
4786
|
+
}
|
|
4787
|
+
/**
|
|
4788
|
+
* Helper function to get a list of camera devices.
|
|
4789
|
+
*
|
|
4790
|
+
* @returns List of camera devices in an array of MediaDeviceInfo objects.
|
|
4791
|
+
*/
|
|
4792
|
+
function getVideoInputDevices() {
|
|
4793
|
+
return __awaiter$1(this, void 0, void 0, function* () {
|
|
4794
|
+
return getDevices(DeviceKind.VideoInput);
|
|
4795
|
+
});
|
|
4796
|
+
}
|
|
4797
|
+
/**
|
|
4798
|
+
* Export the setOnDeviceChangeHandler method directly from the core lib.
|
|
4799
|
+
*/
|
|
4800
|
+
var {
|
|
4801
|
+
setOnDeviceChangeHandler
|
|
4802
|
+
} = media;
|
|
4532
4803
|
var events$1 = {
|
|
4533
4804
|
exports: {}
|
|
4534
4805
|
};
|
|
@@ -5207,12 +5478,6 @@ class LocalDisplayTrack extends LocalTrack {}
|
|
|
5207
5478
|
* Represents a local track for a microphone source.
|
|
5208
5479
|
*/
|
|
5209
5480
|
class LocalMicrophoneTrack extends LocalTrack {}
|
|
5210
|
-
var ErrorTypes;
|
|
5211
|
-
(function (ErrorTypes) {
|
|
5212
|
-
ErrorTypes["DEVICE_PERMISSION_DENIED"] = "DEVICE_PERMISSION_DENIED";
|
|
5213
|
-
ErrorTypes["CREATE_CAMERA_TRACK_FAILED"] = "CREATE_CAMERA_TRACK_FAILED";
|
|
5214
|
-
ErrorTypes["CREATE_MICROPHONE_TRACK_FAILED"] = "CREATE_MICROPHONE_TRACK_FAILED";
|
|
5215
|
-
})(ErrorTypes || (ErrorTypes = {}));
|
|
5216
5481
|
|
|
5217
5482
|
// Overall connection state (based on the ICE and DTLS connection states)
|
|
5218
5483
|
var ConnectionState;
|
|
@@ -14427,7 +14692,7 @@ class MultistreamConnection extends EventEmitter {
|
|
|
14427
14692
|
state: 'invalid source',
|
|
14428
14693
|
csi: sendTransceiver.csi
|
|
14429
14694
|
});
|
|
14430
|
-
} else if (signaler.getEncodingIndexForStreamId(id)
|
|
14695
|
+
} else if (signaler.getEncodingIndexForStreamId(id) >= activeSimulcastLayerNumber) {
|
|
14431
14696
|
sourceWarnings.push({
|
|
14432
14697
|
id,
|
|
14433
14698
|
state: 'no source',
|
|
@@ -14910,7 +15175,7 @@ class MultistreamConnection extends EventEmitter {
|
|
|
14910
15175
|
}
|
|
14911
15176
|
renewPeerConnection(userOptions) {
|
|
14912
15177
|
if (userOptions) {
|
|
14913
|
-
this.options = Object.assign(Object.assign({},
|
|
15178
|
+
this.options = Object.assign(Object.assign({}, this.options), userOptions);
|
|
14914
15179
|
}
|
|
14915
15180
|
logger$4.info("Renewing multistream connection with options ".concat(JSON.stringify(this.options)));
|
|
14916
15181
|
this.clearMids();
|
|
@@ -24183,4 +24448,4 @@ var Media = {
|
|
|
24183
24448
|
isBrowserSupported
|
|
24184
24449
|
};
|
|
24185
24450
|
|
|
24186
|
-
export { ActiveSpeakerInfo, CodecInfo, ConnectionState, ErrorType, Errors, Event$1 as Event, H264Codec, LocalCameraTrack, LocalDisplayTrack, LocalMicrophoneTrack, LocalTrack, LocalTrackEvents, Media, MediaFamily, MediaRequest, MediaType, MultistreamRoapMediaConnection, Policy, ReceiveSlot, ReceiveSlotEvents, ReceiverSelectedInfo, RemoteTrackType, RoapMediaConnection, getErrorDescription, getLogger, getMediaFamily, isBrowserSupported, setLogger };
|
|
24451
|
+
export { ActiveSpeakerInfo, CodecInfo, ConnectionState, ErrorType, Errors, Event$1 as Event, H264Codec, LocalCameraTrack, LocalDisplayTrack, LocalMicrophoneTrack, LocalTrack, LocalTrackEvents, Media, MediaFamily, MediaRequest, MediaStreamTrackKind, MediaType, MultistreamRoapMediaConnection, PeerConnection, Policy, ReceiveSlot, ReceiveSlotEvents, ReceiverSelectedInfo, RemoteTrackType, RoapMediaConnection, WcmeError, createCameraTrack, createDisplayTrack, createMicrophoneTrack, getAudioInputDevices, getAudioOutputDevices, getDevices, getErrorDescription, getLogger, getMediaFamily, getVideoInputDevices, isBrowserSupported, setLogger, setOnDeviceChangeHandler };
|
|
@@ -4,7 +4,7 @@ import { LocalTrack, MediaRequest, ReceiveSlot, TransceiverStats } from '@webex/
|
|
|
4
4
|
import { MediaType } from '@webex/json-multistream';
|
|
5
5
|
import { ConnectionState, RoapMessage } from './eventTypes';
|
|
6
6
|
import { MultistreamConnectionConfig } from './config';
|
|
7
|
-
export { LocalCameraTrack, LocalDisplayTrack, LocalMicrophoneTrack, LocalTrack,
|
|
7
|
+
export { MediaRequest, ReceiveSlot, ReceiveSlotEvents, getAudioOutputDevices, getVideoInputDevices, setOnDeviceChangeHandler, WcmeError, AudioDeviceConstraints, VideoDeviceConstraints, LocalTrackEvents, TrackPublishEvent, TrackMuteEvent, TrackEndEvent, LocalCameraTrack, LocalDisplayTrack, LocalMicrophoneTrack, LocalTrack, MediaStreamTrackKind, PeerConnection, createCameraTrack, createDisplayTrack, createMicrophoneTrack, getDevices, getAudioInputDevices, } from '@webex/web-client-media-engine';
|
|
8
8
|
export { ActiveSpeakerInfo, CodecInfo, getMediaFamily, H264Codec, MediaFamily, MediaType, SourceState, Policy, PolicySpecificInfo, ReceiverSelectedInfo, } from '@webex/json-multistream';
|
|
9
9
|
export declare class MultistreamRoapMediaConnection extends EventEmitter {
|
|
10
10
|
private id?;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultistreamRoapMediaConnection.d.ts","sourceRoot":"","sources":["../../../src/MediaConnection/MultistreamRoapMediaConnection.ts"],"names":[],"mappings":";AAAA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAElC,OAAO,EAEL,UAAU,EACV,YAAY,EAGZ,WAAW,EACX,gBAAgB,EACjB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAA6C,SAAS,EAAC,MAAM,yBAAyB,CAAC;AAG9F,OAAO,EAAQ,eAAe,EAAE,WAAW,EAAmB,MAAM,cAAc,CAAC;AAKnF,OAAO,EAAC,2BAA2B,EAAC,MAAM,UAAU,CAAC;AAGrD,OAAO,
|
|
1
|
+
{"version":3,"file":"MultistreamRoapMediaConnection.d.ts","sourceRoot":"","sources":["../../../src/MediaConnection/MultistreamRoapMediaConnection.ts"],"names":[],"mappings":";AAAA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAElC,OAAO,EAEL,UAAU,EACV,YAAY,EAGZ,WAAW,EACX,gBAAgB,EACjB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAA6C,SAAS,EAAC,MAAM,yBAAyB,CAAC;AAG9F,OAAO,EAAQ,eAAe,EAAE,WAAW,EAAmB,MAAM,cAAc,CAAC;AAKnF,OAAO,EAAC,2BAA2B,EAAC,MAAM,UAAU,CAAC;AAGrD,OAAO,EAEL,YAAY,EACZ,WAAW,EACX,iBAAiB,EAEjB,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EACxB,SAAS,EACT,sBAAsB,EACtB,sBAAsB,EACtB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,UAAU,EACV,oBAAoB,EACpB,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,UAAU,EACV,oBAAoB,GACrB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,iBAAiB,EACjB,SAAS,EACT,cAAc,EACd,SAAS,EACT,WAAW,EACX,SAAS,EACT,WAAW,EACX,MAAM,EACN,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,yBAAyB,CAAC;AAGjC,qBAAa,8BAA+B,SAAQ,YAAY;IAC9D,OAAO,CAAC,EAAE,CAAC,CAAS;IAEpB,OAAO,CAAC,OAAO,CAAC,CAAS;IAEzB,OAAO,CAAC,qBAAqB,CAAwB;IAErD,OAAO,CAAC,IAAI,CAAO;IAEnB,OAAO,CAAC,qBAAqB,CAAS;gBAS1B,qBAAqB,EAAE,2BAA2B,EAAE,OAAO,CAAC,EAAE,MAAM;IAehF,OAAO,CAAC,mBAAmB;IAqC3B,OAAO,CAAC,GAAG;IAIX,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,2BAA2B;IAyCnC,OAAO,CAAC,UAAU;IA4BX,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB9B,KAAK,IAAI,IAAI;IAOpB,OAAO,CAAC,oBAAoB;IAK5B,OAAO,CAAC,eAAe;IAiBhB,SAAS,CAAC,UAAU,EAAE,YAAY,EAAE,EAAE,aAAa,UAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IA2B1E,kBAAkB,IAAI,eAAe;IAWrC,QAAQ,IAAI,OAAO,CAAC,cAAc,CAAC;IAOnC,mBAAmB,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAShD,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAanD,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAYvD,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAM9C,cAAc,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAMhD,iBAAiB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;IAM7D,YAAY,CAAC,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,IAAI;IAM9E,OAAO,CAAC,gBAAgB;IAkBxB,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,kBAAkB;CAkB3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/MediaConnection/config.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAoE;IAC7F,gBAAgB,CAAC,EAAE,OAAO,CAAuE;IACjG,kBAAkB,CAAC,EAAE,OAAO,CAAoE;IAChG,eAAe,CAAC,EAAE;QAChB,KAAK,EAAE,MAAM,CAA6E;QAC1F,KAAK,EAAE,MAAM,CAA6E;KAC3F,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,CACmE;IACxF,iBAAiB,CAAC,EAAE,MAAM,CAAqE;IAC/F,aAAa,CAAC,EAAE,OAAO,CACkC;IACzD,UAAU,CAAC,EAAE,OAAO,CAC4C;IAChE,SAAS,CAAC,EAAE,MAAM,CAEkD;CACrE;AAED,MAAM,WAAW,qBAAqB;IAEpC,UAAU,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IAChC,wBAAwB,EAAE,OAAO,CAmBM;IACvC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,gBAAgB,CAAC;CAC9B;AAED,MAAM,WAAW,2BAA2B;IAC1C,UAAU,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IAChC,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/MediaConnection/config.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAoE;IAC7F,gBAAgB,CAAC,EAAE,OAAO,CAAuE;IACjG,kBAAkB,CAAC,EAAE,OAAO,CAAoE;IAChG,eAAe,CAAC,EAAE;QAChB,KAAK,EAAE,MAAM,CAA6E;QAC1F,KAAK,EAAE,MAAM,CAA6E;KAC3F,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,CACmE;IACxF,iBAAiB,CAAC,EAAE,MAAM,CAAqE;IAC/F,aAAa,CAAC,EAAE,OAAO,CACkC;IACzD,UAAU,CAAC,EAAE,OAAO,CAC4C;IAChE,SAAS,CAAC,EAAE,MAAM,CAEkD;CACrE;AAED,MAAM,WAAW,qBAAqB;IAEpC,UAAU,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IAChC,wBAAwB,EAAE,OAAO,CAmBM;IACvC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,gBAAgB,CAAC;CAC9B;AAED,MAAM,WAAW,2BAA2B;IAC1C,UAAU,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IAChC,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,YAAY,GAAG,YAAY,CAAC;CAC5C"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webex/internal-media-core",
|
|
3
|
-
"version": "1.35.
|
|
3
|
+
"version": "1.35.6",
|
|
4
4
|
"files": [
|
|
5
5
|
"dist/cjs",
|
|
6
6
|
"dist/esm",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"@babel/runtime": "^7.18.9",
|
|
48
48
|
"@webex/json-multistream": "1.20.2",
|
|
49
49
|
"@webex/ts-sdp": "1.3.2",
|
|
50
|
-
"@webex/web-client-media-engine": "1.40.
|
|
50
|
+
"@webex/web-client-media-engine": "1.40.4",
|
|
51
51
|
"detectrtc": "^1.4.1",
|
|
52
52
|
"events": "^3.3.0",
|
|
53
53
|
"typed-emitter": "^2.1.0",
|