@webex/plugin-meetings 3.0.0-beta.122 → 3.0.0-beta.124
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/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +1 -1
- package/dist/meeting/index.js +68 -22
- package/dist/meeting/index.js.map +1 -1
- package/dist/types/meeting/index.d.ts +7 -0
- package/package.json +19 -19
- package/src/meeting/index.ts +26 -0
- package/test/unit/spec/meeting/index.js +37 -0
|
@@ -1731,6 +1731,13 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1731
1731
|
* @returns {void}
|
|
1732
1732
|
*/
|
|
1733
1733
|
private checkMediaConnection;
|
|
1734
|
+
/**
|
|
1735
|
+
* Method to enable or disable the 'Music mode' effect on audio track
|
|
1736
|
+
*
|
|
1737
|
+
* @param {boolean} shouldEnableMusicMode
|
|
1738
|
+
* @returns {Promise}
|
|
1739
|
+
*/
|
|
1740
|
+
enableMusicMode(shouldEnableMusicMode: boolean): Promise<void>;
|
|
1734
1741
|
/**
|
|
1735
1742
|
* Publishes specified local tracks in the meeting
|
|
1736
1743
|
*
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webex/plugin-meetings",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.124",
|
|
4
4
|
"description": "",
|
|
5
5
|
"license": "Cisco EULA (https://www.cisco.com/c/en/us/products/end-user-license-agreement.html)",
|
|
6
6
|
"contributors": [
|
|
@@ -32,12 +32,12 @@
|
|
|
32
32
|
"build": "yarn run -T tsc --declaration true --declarationDir ./dist/types"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
|
-
"@webex/plugin-meetings": "3.0.0-beta.
|
|
36
|
-
"@webex/test-helper-chai": "3.0.0-beta.
|
|
37
|
-
"@webex/test-helper-mocha": "3.0.0-beta.
|
|
38
|
-
"@webex/test-helper-mock-webex": "3.0.0-beta.
|
|
39
|
-
"@webex/test-helper-retry": "3.0.0-beta.
|
|
40
|
-
"@webex/test-helper-test-users": "3.0.0-beta.
|
|
35
|
+
"@webex/plugin-meetings": "3.0.0-beta.124",
|
|
36
|
+
"@webex/test-helper-chai": "3.0.0-beta.124",
|
|
37
|
+
"@webex/test-helper-mocha": "3.0.0-beta.124",
|
|
38
|
+
"@webex/test-helper-mock-webex": "3.0.0-beta.124",
|
|
39
|
+
"@webex/test-helper-retry": "3.0.0-beta.124",
|
|
40
|
+
"@webex/test-helper-test-users": "3.0.0-beta.124",
|
|
41
41
|
"chai": "^4.3.4",
|
|
42
42
|
"chai-as-promised": "^7.1.1",
|
|
43
43
|
"jsdom-global": "3.0.2",
|
|
@@ -46,19 +46,19 @@
|
|
|
46
46
|
"typescript": "^4.7.4"
|
|
47
47
|
},
|
|
48
48
|
"dependencies": {
|
|
49
|
-
"@webex/common": "3.0.0-beta.
|
|
49
|
+
"@webex/common": "3.0.0-beta.124",
|
|
50
50
|
"@webex/internal-media-core": "1.38.1",
|
|
51
|
-
"@webex/internal-plugin-conversation": "3.0.0-beta.
|
|
52
|
-
"@webex/internal-plugin-device": "3.0.0-beta.
|
|
53
|
-
"@webex/internal-plugin-llm": "3.0.0-beta.
|
|
54
|
-
"@webex/internal-plugin-mercury": "3.0.0-beta.
|
|
55
|
-
"@webex/internal-plugin-metrics": "3.0.0-beta.
|
|
56
|
-
"@webex/internal-plugin-support": "3.0.0-beta.
|
|
57
|
-
"@webex/internal-plugin-user": "3.0.0-beta.
|
|
58
|
-
"@webex/media-helpers": "3.0.0-beta.
|
|
59
|
-
"@webex/plugin-people": "3.0.0-beta.
|
|
60
|
-
"@webex/plugin-rooms": "3.0.0-beta.
|
|
61
|
-
"@webex/webex-core": "3.0.0-beta.
|
|
51
|
+
"@webex/internal-plugin-conversation": "3.0.0-beta.124",
|
|
52
|
+
"@webex/internal-plugin-device": "3.0.0-beta.124",
|
|
53
|
+
"@webex/internal-plugin-llm": "3.0.0-beta.124",
|
|
54
|
+
"@webex/internal-plugin-mercury": "3.0.0-beta.124",
|
|
55
|
+
"@webex/internal-plugin-metrics": "3.0.0-beta.124",
|
|
56
|
+
"@webex/internal-plugin-support": "3.0.0-beta.124",
|
|
57
|
+
"@webex/internal-plugin-user": "3.0.0-beta.124",
|
|
58
|
+
"@webex/media-helpers": "3.0.0-beta.124",
|
|
59
|
+
"@webex/plugin-people": "3.0.0-beta.124",
|
|
60
|
+
"@webex/plugin-rooms": "3.0.0-beta.124",
|
|
61
|
+
"@webex/webex-core": "3.0.0-beta.124",
|
|
62
62
|
"ampersand-collection": "^2.0.2",
|
|
63
63
|
"bowser": "^2.11.0",
|
|
64
64
|
"btoa": "^1.2.1",
|
package/src/meeting/index.ts
CHANGED
|
@@ -7565,6 +7565,32 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
7565
7565
|
throw new Error('Webrtc media connection is missing, call addMedia() first');
|
|
7566
7566
|
}
|
|
7567
7567
|
|
|
7568
|
+
/**
|
|
7569
|
+
* Method to enable or disable the 'Music mode' effect on audio track
|
|
7570
|
+
*
|
|
7571
|
+
* @param {boolean} shouldEnableMusicMode
|
|
7572
|
+
* @returns {Promise}
|
|
7573
|
+
*/
|
|
7574
|
+
async enableMusicMode(shouldEnableMusicMode: boolean) {
|
|
7575
|
+
this.checkMediaConnection();
|
|
7576
|
+
|
|
7577
|
+
if (!this.isMultistream) {
|
|
7578
|
+
throw new Error('enableMusicMode() only supported with multistream');
|
|
7579
|
+
}
|
|
7580
|
+
|
|
7581
|
+
if (shouldEnableMusicMode) {
|
|
7582
|
+
await this.mediaProperties.webrtcMediaConnection.setCodecParameters(MediaType.AudioMain, {
|
|
7583
|
+
maxaveragebitrate: '64000',
|
|
7584
|
+
maxplaybackrate: '48000',
|
|
7585
|
+
});
|
|
7586
|
+
} else {
|
|
7587
|
+
await this.mediaProperties.webrtcMediaConnection.deleteCodecParameters(MediaType.AudioMain, [
|
|
7588
|
+
'maxaveragebitrate',
|
|
7589
|
+
'maxplaybackrate',
|
|
7590
|
+
]);
|
|
7591
|
+
}
|
|
7592
|
+
}
|
|
7593
|
+
|
|
7568
7594
|
/**
|
|
7569
7595
|
* Publishes specified local tracks in the meeting
|
|
7570
7596
|
*
|
|
@@ -4126,6 +4126,43 @@ describe('plugin-meetings', () => {
|
|
|
4126
4126
|
});
|
|
4127
4127
|
});
|
|
4128
4128
|
|
|
4129
|
+
describe('#enableMusicMode', () => {
|
|
4130
|
+
beforeEach(() => {
|
|
4131
|
+
meeting.isMultistream = true;
|
|
4132
|
+
meeting.mediaProperties.webrtcMediaConnection = {
|
|
4133
|
+
setCodecParameters: sinon.stub().resolves({}),
|
|
4134
|
+
deleteCodecParameters: sinon.stub().resolves({}),
|
|
4135
|
+
};
|
|
4136
|
+
});
|
|
4137
|
+
[
|
|
4138
|
+
{shouldEnableMusicMode: true},
|
|
4139
|
+
{shouldEnableMusicMode: false},
|
|
4140
|
+
].forEach(({shouldEnableMusicMode}) => {
|
|
4141
|
+
it(`fails if there is no media connection for shouldEnableMusicMode: ${shouldEnableMusicMode}`, async () => {
|
|
4142
|
+
meeting.mediaProperties.webrtcMediaConnection = undefined;
|
|
4143
|
+
await assert.isRejected(meeting.enableMusicMode(shouldEnableMusicMode));
|
|
4144
|
+
});
|
|
4145
|
+
});
|
|
4146
|
+
|
|
4147
|
+
it('should set the codec parameters when shouldEnableMusicMode is true', async () => {
|
|
4148
|
+
await meeting.enableMusicMode(true);
|
|
4149
|
+
assert.calledOnceWithExactly(meeting.mediaProperties.webrtcMediaConnection.setCodecParameters, MediaType.AudioMain, {
|
|
4150
|
+
maxaveragebitrate: '64000',
|
|
4151
|
+
maxplaybackrate: '48000',
|
|
4152
|
+
});
|
|
4153
|
+
assert.notCalled(meeting.mediaProperties.webrtcMediaConnection.deleteCodecParameters);
|
|
4154
|
+
});
|
|
4155
|
+
|
|
4156
|
+
it('should set the codec parameters when shouldEnableMusicMode is false', async () => {
|
|
4157
|
+
await meeting.enableMusicMode(false);
|
|
4158
|
+
assert.calledOnceWithExactly(meeting.mediaProperties.webrtcMediaConnection.deleteCodecParameters, MediaType.AudioMain, [
|
|
4159
|
+
'maxaveragebitrate',
|
|
4160
|
+
'maxplaybackrate',
|
|
4161
|
+
]);
|
|
4162
|
+
assert.notCalled(meeting.mediaProperties.webrtcMediaConnection.setCodecParameters);
|
|
4163
|
+
});
|
|
4164
|
+
});
|
|
4165
|
+
|
|
4129
4166
|
describe('Public Event Triggers', () => {
|
|
4130
4167
|
let sandbox;
|
|
4131
4168
|
const {ENDED} = CONSTANTS;
|