@webex/plugin-meetings 3.0.0-beta.146 → 3.0.0-beta.147
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/common/errors/webex-errors.js +3 -2
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/config.js +1 -7
- package/dist/config.js.map +1 -1
- package/dist/constants.js +7 -15
- package/dist/constants.js.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/media/index.js +5 -56
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +15 -93
- package/dist/media/properties.js.map +1 -1
- package/dist/meeting/index.js +1092 -1865
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/muteState.js +88 -184
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/util.js +1 -23
- package/dist/meeting/util.js.map +1 -1
- package/dist/meetings/index.js +1 -2
- package/dist/meetings/index.js.map +1 -1
- package/dist/reconnection-manager/index.js +153 -134
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/roap/index.js +8 -7
- package/dist/roap/index.js.map +1 -1
- package/dist/types/common/errors/webex-errors.d.ts +1 -1
- package/dist/types/config.d.ts +0 -6
- package/dist/types/constants.d.ts +1 -18
- package/dist/types/index.d.ts +1 -1
- package/dist/types/media/properties.d.ts +16 -38
- package/dist/types/meeting/index.d.ts +90 -353
- package/dist/types/meeting/muteState.d.ts +36 -38
- package/dist/types/meeting/util.d.ts +2 -4
- package/package.json +19 -19
- package/src/common/errors/webex-errors.ts +6 -2
- package/src/config.ts +0 -6
- package/src/constants.ts +1 -14
- package/src/index.ts +1 -0
- package/src/media/index.ts +10 -53
- package/src/media/properties.ts +32 -92
- package/src/meeting/index.ts +530 -1566
- package/src/meeting/muteState.ts +87 -178
- package/src/meeting/util.ts +3 -24
- package/src/meetings/index.ts +0 -1
- package/src/reconnection-manager/index.ts +4 -9
- package/src/roap/index.ts +13 -14
- package/test/integration/spec/converged-space-meetings.js +59 -3
- package/test/integration/spec/journey.js +330 -256
- package/test/integration/spec/space-meeting.js +75 -3
- package/test/unit/spec/meeting/index.js +767 -1344
- package/test/unit/spec/meeting/muteState.js +238 -394
- package/test/unit/spec/meeting/utils.js +2 -9
- package/test/unit/spec/multistream/receiveSlot.ts +1 -1
- package/test/unit/spec/roap/index.ts +2 -2
- package/test/utils/integrationTestUtils.js +5 -23
|
@@ -4,6 +4,7 @@ import { LocalTrack, LocalCameraTrack, LocalDisplayTrack, LocalMicrophoneTrack,
|
|
|
4
4
|
import { StatsAnalyzer } from '../statsAnalyzer';
|
|
5
5
|
import NetworkQualityMonitor from '../networkQualityMonitor';
|
|
6
6
|
import Roap from '../roap/index';
|
|
7
|
+
import { type BundlePolicy } from '../media';
|
|
7
8
|
import MediaProperties from '../media/properties';
|
|
8
9
|
import ReconnectionManager from '../reconnection-manager';
|
|
9
10
|
import MeetingRequest from './request';
|
|
@@ -11,19 +12,34 @@ import Members from '../members/index';
|
|
|
11
12
|
import Transcription from '../transcription';
|
|
12
13
|
import { ReceiveSlotManager } from '../multistream/receiveSlotManager';
|
|
13
14
|
import { MediaRequestManager } from '../multistream/mediaRequestManager';
|
|
14
|
-
import { RemoteMediaManager } from '../multistream/remoteMediaManager';
|
|
15
|
+
import { Configuration as RemoteMediaManagerConfiguration, RemoteMediaManager } from '../multistream/remoteMediaManager';
|
|
15
16
|
import { ReactionServerType, SkinToneType } from '../reactions/reactions.type';
|
|
16
17
|
import InMeetingActions from './in-meeting-actions';
|
|
17
18
|
import RecordingController from '../recording-controller';
|
|
18
19
|
import ControlsOptionsManager from '../controls-options-manager';
|
|
19
20
|
import { LocusMediaRequest } from './locusMediaRequest';
|
|
20
21
|
import { AnnotationInfo } from '../annotation/annotation.types';
|
|
22
|
+
export type LocalTracks = {
|
|
23
|
+
microphone?: LocalMicrophoneTrack;
|
|
24
|
+
camera?: LocalCameraTrack;
|
|
25
|
+
screenShare?: {
|
|
26
|
+
audio?: LocalTrack;
|
|
27
|
+
video?: LocalDisplayTrack;
|
|
28
|
+
};
|
|
29
|
+
annotationInfo?: AnnotationInfo;
|
|
30
|
+
};
|
|
31
|
+
export type AddMediaOptions = {
|
|
32
|
+
localTracks?: LocalTracks;
|
|
33
|
+
audioEnabled?: boolean;
|
|
34
|
+
videoEnabled?: boolean;
|
|
35
|
+
receiveShare?: boolean;
|
|
36
|
+
remoteMediaManagerConfig?: RemoteMediaManagerConfiguration;
|
|
37
|
+
bundlePolicy?: BundlePolicy;
|
|
38
|
+
};
|
|
21
39
|
export declare const MEDIA_UPDATE_TYPE: {
|
|
22
|
-
|
|
23
|
-
AUDIO: string;
|
|
24
|
-
VIDEO: string;
|
|
25
|
-
SHARE: string;
|
|
40
|
+
TRANSCODED_MEDIA_CONNECTION: string;
|
|
26
41
|
LAMBDA: string;
|
|
42
|
+
UPDATE_MEDIA: string;
|
|
27
43
|
};
|
|
28
44
|
/**
|
|
29
45
|
* MediaDirection
|
|
@@ -36,15 +52,6 @@ export declare const MEDIA_UPDATE_TYPE: {
|
|
|
36
52
|
* @property {boolean} receiveShare
|
|
37
53
|
* @property {boolean} isSharing
|
|
38
54
|
*/
|
|
39
|
-
/**
|
|
40
|
-
* AudioVideo
|
|
41
|
-
* @typedef {Object} AudioVideo
|
|
42
|
-
* @property {Object} audio
|
|
43
|
-
* @property {String} audio.deviceId
|
|
44
|
-
* @property {Object} video
|
|
45
|
-
* @property {String} video.deviceId
|
|
46
|
-
* @property {String} video.localVideoQuality // [240p, 360p, 480p, 720p, 1080p]
|
|
47
|
-
*/
|
|
48
55
|
/**
|
|
49
56
|
* SharePreferences
|
|
50
57
|
* @typedef {Object} SharePreferences
|
|
@@ -58,19 +65,11 @@ export declare const MEDIA_UPDATE_TYPE: {
|
|
|
58
65
|
* @property {String} [pin]
|
|
59
66
|
* @property {Boolean} [moderator]
|
|
60
67
|
* @property {String|Object} [meetingQuality]
|
|
61
|
-
* @property {String} [meetingQuality.local]
|
|
62
68
|
* @property {String} [meetingQuality.remote]
|
|
63
69
|
* @property {Boolean} [rejoin]
|
|
64
70
|
* @property {Boolean} [enableMultistream]
|
|
65
71
|
* @property {String} [correlationId]
|
|
66
72
|
*/
|
|
67
|
-
/**
|
|
68
|
-
* SendOptions
|
|
69
|
-
* @typedef {Object} SendOptions
|
|
70
|
-
* @property {Boolean} sendAudio
|
|
71
|
-
* @property {Boolean} sendVideo
|
|
72
|
-
* @property {Boolean} sendShare
|
|
73
|
-
*/
|
|
74
73
|
/**
|
|
75
74
|
* Recording
|
|
76
75
|
* @typedef {Object} Recording
|
|
@@ -380,6 +379,7 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
380
379
|
state: any;
|
|
381
380
|
localAudioTrackMuteStateHandler: (event: TrackMuteEvent) => void;
|
|
382
381
|
localVideoTrackMuteStateHandler: (event: TrackMuteEvent) => void;
|
|
382
|
+
underlyingLocalTrackChangeHandler: () => void;
|
|
383
383
|
roles: any[];
|
|
384
384
|
environment: string;
|
|
385
385
|
namespace: string;
|
|
@@ -730,48 +730,6 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
730
730
|
* @memberof Meeting
|
|
731
731
|
*/
|
|
732
732
|
getMembers(): Members;
|
|
733
|
-
/**
|
|
734
|
-
* Truthy when a meeting has an audio connection established
|
|
735
|
-
* @returns {Boolean} true if meeting audio is connected otherwise false
|
|
736
|
-
* @public
|
|
737
|
-
* @memberof Meeting
|
|
738
|
-
*/
|
|
739
|
-
isAudioConnected(): boolean;
|
|
740
|
-
/**
|
|
741
|
-
* Convenience function to tell whether a meeting is muted
|
|
742
|
-
* @returns {Boolean} if meeting audio muted or not
|
|
743
|
-
* @public
|
|
744
|
-
* @memberof Meeting
|
|
745
|
-
*/
|
|
746
|
-
isAudioMuted(): any;
|
|
747
|
-
/**
|
|
748
|
-
* Convenience function to tell if the end user last changed the audio state
|
|
749
|
-
* @returns {Boolean} if audio was manipulated by the end user
|
|
750
|
-
* @public
|
|
751
|
-
* @memberof Meeting
|
|
752
|
-
*/
|
|
753
|
-
isAudioSelf(): any;
|
|
754
|
-
/**
|
|
755
|
-
* Truthy when a meeting has a video connection established
|
|
756
|
-
* @returns {Boolean} true if meeting video connected otherwise false
|
|
757
|
-
* @public
|
|
758
|
-
* @memberof Meeting
|
|
759
|
-
*/
|
|
760
|
-
isVideoConnected(): boolean;
|
|
761
|
-
/**
|
|
762
|
-
* Convenience function to tell whether video is muted
|
|
763
|
-
* @returns {Boolean} if meeting video is muted or not
|
|
764
|
-
* @public
|
|
765
|
-
* @memberof Meeting
|
|
766
|
-
*/
|
|
767
|
-
isVideoMuted(): any;
|
|
768
|
-
/**
|
|
769
|
-
* Convenience function to tell whether the end user changed the video state
|
|
770
|
-
* @returns {Boolean} if meeting video is muted or not
|
|
771
|
-
* @public
|
|
772
|
-
* @memberof Meeting
|
|
773
|
-
*/
|
|
774
|
-
isVideoSelf(): any;
|
|
775
733
|
/**
|
|
776
734
|
* Sets the meeting info on the class instance
|
|
777
735
|
* @param {Object} meetingInfo
|
|
@@ -830,15 +788,6 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
830
788
|
* @memberof Meeting
|
|
831
789
|
*/
|
|
832
790
|
uploadLogs(options?: object): void;
|
|
833
|
-
/**
|
|
834
|
-
* Removes remote audio and video stream on the class instance and triggers an event
|
|
835
|
-
* to developers
|
|
836
|
-
* @returns {undefined}
|
|
837
|
-
* @public
|
|
838
|
-
* @memberof Meeting
|
|
839
|
-
* @deprecated after v1.89.3
|
|
840
|
-
*/
|
|
841
|
-
unsetRemoteStream(): void;
|
|
842
791
|
/**
|
|
843
792
|
* Removes remote audio, video and share tracks from class instance's mediaProperties
|
|
844
793
|
* @returns {undefined}
|
|
@@ -861,76 +810,30 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
861
810
|
*/
|
|
862
811
|
closeRemoteTracks(): Promise<[any, any, any]>;
|
|
863
812
|
/**
|
|
864
|
-
*
|
|
865
|
-
*
|
|
866
|
-
*
|
|
867
|
-
* @
|
|
868
|
-
|
|
869
|
-
private sendLocalMediaReadyEvent;
|
|
870
|
-
/**
|
|
871
|
-
* Sets the local audio track on the class and emits an event to the developer
|
|
872
|
-
* @param {MediaStreamTrack} rawAudioTrack
|
|
873
|
-
* @param {Boolean} emitEvent if true, a media ready event is emitted to the developer
|
|
874
|
-
* @returns {undefined}
|
|
875
|
-
* @private
|
|
876
|
-
* @memberof Meeting
|
|
813
|
+
* Stores the reference to a new microphone track, sets up the required event listeners
|
|
814
|
+
* on it, cleans up previous track, etc.
|
|
815
|
+
*
|
|
816
|
+
* @param {LocalMicrophoneTrack | null} localTrack local microphone track
|
|
817
|
+
* @returns {Promise<void>}
|
|
877
818
|
*/
|
|
878
819
|
private setLocalAudioTrack;
|
|
879
820
|
/**
|
|
880
|
-
*
|
|
881
|
-
*
|
|
882
|
-
*
|
|
883
|
-
* @
|
|
884
|
-
* @
|
|
885
|
-
* @memberof Meeting
|
|
821
|
+
* Stores the reference to a new camera track, sets up the required event listeners
|
|
822
|
+
* on it, cleans up previous track, etc.
|
|
823
|
+
*
|
|
824
|
+
* @param {LocalCameraTrack | null} localTrack local camera track
|
|
825
|
+
* @returns {Promise<void>}
|
|
886
826
|
*/
|
|
887
827
|
private setLocalVideoTrack;
|
|
888
828
|
/**
|
|
889
|
-
*
|
|
890
|
-
*
|
|
891
|
-
*
|
|
892
|
-
*
|
|
893
|
-
* @
|
|
894
|
-
|
|
895
|
-
setLocalTracks(localStream: any): void;
|
|
896
|
-
/**
|
|
897
|
-
* Sets the local media stream on the class and emits an event to the developer
|
|
898
|
-
* @param {MediaStreamTrack} rawLocalShareTrack the local share media track
|
|
899
|
-
* @returns {undefined}
|
|
900
|
-
* @public
|
|
901
|
-
* @memberof Meeting
|
|
902
|
-
*/
|
|
903
|
-
setLocalShareTrack(rawLocalShareTrack: MediaStreamTrack | null): void;
|
|
904
|
-
/**
|
|
905
|
-
* Closes the local stream from the class and emits an event to the developer
|
|
906
|
-
* @returns {undefined}
|
|
907
|
-
* @event media:stopped
|
|
908
|
-
* @public
|
|
909
|
-
* @memberof Meeting
|
|
910
|
-
*/
|
|
911
|
-
closeLocalStream(): any;
|
|
912
|
-
/**
|
|
913
|
-
* Closes the local stream from the class and emits an event to the developer
|
|
914
|
-
* @returns {undefined}
|
|
915
|
-
* @event media:stopped
|
|
916
|
-
* @public
|
|
917
|
-
* @memberof Meeting
|
|
918
|
-
*/
|
|
919
|
-
closeLocalShare(): any;
|
|
920
|
-
/**
|
|
921
|
-
* Removes the local stream from the class and emits an event to the developer
|
|
922
|
-
* @returns {undefined}
|
|
923
|
-
* @public
|
|
924
|
-
* @memberof Meeting
|
|
925
|
-
*/
|
|
926
|
-
unsetLocalVideoTrack(): void;
|
|
927
|
-
/**
|
|
928
|
-
* Removes the local share from the class and emits an event to the developer
|
|
929
|
-
* @returns {undefined}
|
|
930
|
-
* @public
|
|
931
|
-
* @memberof Meeting
|
|
829
|
+
* Stores the reference to a new screen share track, sets up the required event listeners
|
|
830
|
+
* on it, cleans up previous track, etc.
|
|
831
|
+
* It also sends the floor grant/release request.
|
|
832
|
+
*
|
|
833
|
+
* @param {LocalDisplayTrack | undefined} localDisplayTrack local camera track
|
|
834
|
+
* @returns {Promise<void>}
|
|
932
835
|
*/
|
|
933
|
-
|
|
836
|
+
private setLocalShareTrack;
|
|
934
837
|
/**
|
|
935
838
|
* sets up listner for mercury event
|
|
936
839
|
* @returns {undefined}
|
|
@@ -963,63 +866,25 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
963
866
|
* @memberof Meeting
|
|
964
867
|
*/
|
|
965
868
|
private setCorrelationId;
|
|
966
|
-
/**
|
|
967
|
-
* Mute the audio for a meeting
|
|
968
|
-
* @returns {Promise} resolves the data from muting audio {mute, self} or rejects if there is no audio set
|
|
969
|
-
* @public
|
|
970
|
-
* @memberof Meeting
|
|
971
|
-
*/
|
|
972
|
-
muteAudio(): any;
|
|
973
|
-
/**
|
|
974
|
-
* Unmute meeting audio
|
|
975
|
-
* @returns {Promise} resolves data from muting audio {mute, self} or rejects if there is no audio set
|
|
976
|
-
* @public
|
|
977
|
-
* @memberof Meeting
|
|
978
|
-
*/
|
|
979
|
-
unmuteAudio(): any;
|
|
980
|
-
/**
|
|
981
|
-
* Mute the video for a meeting
|
|
982
|
-
* @returns {Promise} resolves data from muting video {mute, self} or rejects if there is no video set
|
|
983
|
-
* @public
|
|
984
|
-
* @memberof Meeting
|
|
985
|
-
*/
|
|
986
|
-
muteVideo(): any;
|
|
987
|
-
/**
|
|
988
|
-
* Unmute meeting video
|
|
989
|
-
* @returns {Promise} resolves data from muting video {mute, self} or rejects if there is no video set
|
|
990
|
-
* @public
|
|
991
|
-
* @memberof Meeting
|
|
992
|
-
*/
|
|
993
|
-
unmuteVideo(): any;
|
|
994
869
|
/**
|
|
995
870
|
* Shorthand function to join AND set up media
|
|
996
871
|
* @param {Object} options - options to join with media
|
|
997
872
|
* @param {JoinOptions} [options.joinOptions] - see #join()
|
|
998
|
-
* @param {MediaDirection} options.
|
|
999
|
-
* @
|
|
1000
|
-
* @returns {Promise} -- {join: see join(), media: see addMedia(), local: see getMediaStreams()}
|
|
873
|
+
* @param {MediaDirection} [options.mediaOptions] - see #addMedia()
|
|
874
|
+
* @returns {Promise} -- {join: see join(), media: see addMedia()}
|
|
1001
875
|
* @public
|
|
1002
876
|
* @memberof Meeting
|
|
1003
877
|
* @example
|
|
1004
878
|
* joinWithMedia({
|
|
1005
879
|
* joinOptions: {resourceId: 'resourceId' },
|
|
1006
|
-
*
|
|
1007
|
-
*
|
|
1008
|
-
*
|
|
1009
|
-
*
|
|
1010
|
-
* receiveVideo:true,
|
|
1011
|
-
* receiveAudio: true,
|
|
1012
|
-
* receiveShare: true
|
|
1013
|
-
* }
|
|
1014
|
-
* audioVideoOptions: {
|
|
1015
|
-
* audio: 'audioDeviceId',
|
|
1016
|
-
* video: 'videoDeviceId'
|
|
1017
|
-
* }})
|
|
880
|
+
* mediaOptions: {
|
|
881
|
+
* localTracks: { microphone: microphoneTrack, camera: cameraTrack }
|
|
882
|
+
* }
|
|
883
|
+
* })
|
|
1018
884
|
*/
|
|
1019
885
|
joinWithMedia(options?: {
|
|
1020
886
|
joinOptions?: any;
|
|
1021
|
-
|
|
1022
|
-
audioVideoOptions?: any;
|
|
887
|
+
mediaOptions?: AddMediaOptions;
|
|
1023
888
|
}): any;
|
|
1024
889
|
/**
|
|
1025
890
|
* Initiates the reconnection of the media in the meeting
|
|
@@ -1148,38 +1013,6 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1148
1013
|
* @memberof Meeting
|
|
1149
1014
|
*/
|
|
1150
1015
|
moveFrom(resourceId: string): any;
|
|
1151
|
-
/**
|
|
1152
|
-
* Get local media streams based on options passed
|
|
1153
|
-
*
|
|
1154
|
-
* NOTE: this method can only be used with transcoded meetings, not with multistream meetings
|
|
1155
|
-
*
|
|
1156
|
-
* @param {MediaDirection} mediaDirection A configurable options object for joining a meeting
|
|
1157
|
-
* @param {AudioVideo} [audioVideo] audio/video object to set audioinput and videoinput devices, see #Media.getUserMedia
|
|
1158
|
-
* @param {SharePreferences} [sharePreferences] audio/video object to set audioinput and videoinput devices, see #Media.getUserMedia
|
|
1159
|
-
* @returns {Promise} see #Media.getUserMedia
|
|
1160
|
-
* @public
|
|
1161
|
-
* @todo should be static, or moved so can be called outside of a meeting
|
|
1162
|
-
* @memberof Meeting
|
|
1163
|
-
*/
|
|
1164
|
-
getMediaStreams: (mediaDirection: any, audioVideo?: any, sharePreferences?: any) => any;
|
|
1165
|
-
/**
|
|
1166
|
-
* Checks if the machine has at least one audio or video device
|
|
1167
|
-
* @param {Object} options
|
|
1168
|
-
* @param {Boolean} options.sendAudio
|
|
1169
|
-
* @param {Boolean} options.sendVideo
|
|
1170
|
-
* @returns {Object}
|
|
1171
|
-
* @memberof Meetings
|
|
1172
|
-
*/
|
|
1173
|
-
getSupportedDevices: ({ sendAudio, sendVideo, }: {
|
|
1174
|
-
sendAudio: boolean;
|
|
1175
|
-
sendVideo: boolean;
|
|
1176
|
-
}) => any;
|
|
1177
|
-
/**
|
|
1178
|
-
* Get the devices from the Media module
|
|
1179
|
-
* @returns {Promise} resolves to an array of DeviceInfo
|
|
1180
|
-
* @memberof Meetings
|
|
1181
|
-
*/
|
|
1182
|
-
getDevices: () => any;
|
|
1183
1016
|
/**
|
|
1184
1017
|
* Handles ROAP_FAILURE event from the webrtc media connection
|
|
1185
1018
|
*
|
|
@@ -1197,13 +1030,13 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1197
1030
|
setupStatsAnalyzerEventHandlers: () => void;
|
|
1198
1031
|
getMediaConnectionDebugId(): string;
|
|
1199
1032
|
/**
|
|
1200
|
-
* Creates a webrtc media connection
|
|
1033
|
+
* Creates a webrtc media connection and publishes tracks to it
|
|
1201
1034
|
*
|
|
1202
1035
|
* @param {Object} turnServerInfo TURN server information
|
|
1203
1036
|
* @param {BundlePolicy} [bundlePolicy] Bundle policy settings
|
|
1204
1037
|
* @returns {RoapMediaConnection | MultistreamRoapMediaConnection}
|
|
1205
1038
|
*/
|
|
1206
|
-
createMediaConnection
|
|
1039
|
+
private createMediaConnection;
|
|
1207
1040
|
/**
|
|
1208
1041
|
* Listens for an event emitted by eventEmitter and emits it from the meeting object
|
|
1209
1042
|
*
|
|
@@ -1215,19 +1048,14 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1215
1048
|
*/
|
|
1216
1049
|
forwardEvent(eventEmitter: any, eventTypeToForward: any, meetingEventType: any): void;
|
|
1217
1050
|
/**
|
|
1218
|
-
*
|
|
1219
|
-
*
|
|
1220
|
-
* @param {
|
|
1221
|
-
* @param {MediaDirection} options.mediaSettings pass media options
|
|
1222
|
-
* @param {MediaStream} options.localStream
|
|
1223
|
-
* @param {MediaStream} options.localShare
|
|
1224
|
-
* @param {BundlePolicy} options.bundlePolicy bundle policy for multistream meetings
|
|
1225
|
-
* @param {RemoteMediaManagerConfig} options.remoteMediaManagerConfig only applies if multistream is enabled
|
|
1051
|
+
* Creates a media connection to the server. Media connection is required for sending or receiving any audio/video.
|
|
1052
|
+
*
|
|
1053
|
+
* @param {AddMediaOptions} options
|
|
1226
1054
|
* @returns {Promise}
|
|
1227
1055
|
* @public
|
|
1228
1056
|
* @memberof Meeting
|
|
1229
1057
|
*/
|
|
1230
|
-
addMedia(options?:
|
|
1058
|
+
addMedia(options?: AddMediaOptions): Promise<any>;
|
|
1231
1059
|
/**
|
|
1232
1060
|
* Informs if the peer connection is in a state that can be updated with updateMedia (audio/video/share)
|
|
1233
1061
|
* @returns {Boolean}
|
|
@@ -1258,94 +1086,25 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1258
1086
|
*/
|
|
1259
1087
|
processNextQueuedMediaUpdate: () => void;
|
|
1260
1088
|
/**
|
|
1261
|
-
*
|
|
1262
|
-
*
|
|
1263
|
-
*
|
|
1264
|
-
*
|
|
1265
|
-
*
|
|
1266
|
-
* @param {MediaDirection} options.mediaSettings
|
|
1267
|
-
* @returns {Promise}
|
|
1268
|
-
* @public
|
|
1269
|
-
* @memberof Meeting
|
|
1270
|
-
*/
|
|
1271
|
-
updateMedia(options?: {
|
|
1272
|
-
localStream?: MediaStream;
|
|
1273
|
-
localShare?: MediaStream;
|
|
1274
|
-
mediaSettings?: any;
|
|
1275
|
-
}): any;
|
|
1276
|
-
/**
|
|
1277
|
-
* Update the main audio track with new parameters
|
|
1278
|
-
*
|
|
1279
|
-
* NOTE: this method can only be used with transcoded meetings, for multistream meetings use publishTrack()
|
|
1280
|
-
*
|
|
1281
|
-
* @param {Object} options
|
|
1282
|
-
* @param {boolean} options.sendAudio
|
|
1283
|
-
* @param {boolean} options.receiveAudio
|
|
1284
|
-
* @param {MediaStream} options.stream Stream that contains the audio track to update
|
|
1285
|
-
* @returns {Promise}
|
|
1286
|
-
* @public
|
|
1287
|
-
* @memberof Meeting
|
|
1288
|
-
*/
|
|
1289
|
-
updateAudio(options: {
|
|
1290
|
-
sendAudio: boolean;
|
|
1291
|
-
receiveAudio: boolean;
|
|
1292
|
-
stream: MediaStream;
|
|
1293
|
-
}): Promise<unknown>;
|
|
1294
|
-
/**
|
|
1295
|
-
* Update the main video track with new parameters
|
|
1296
|
-
*
|
|
1297
|
-
* NOTE: this method can only be used with transcoded meetings, for multistream meetings use publishTrack()
|
|
1089
|
+
* Updates the media connection - it allows to enable/disable all audio/video/share in the meeting.
|
|
1090
|
+
* This does not affect the published tracks, so for example if a microphone track is published and
|
|
1091
|
+
* updateMedia({audioEnabled: false}) is called, the audio will not be sent or received anymore,
|
|
1092
|
+
* but the track's "published" state is not changed and when updateMedia({audioEnabled: true}) is called,
|
|
1093
|
+
* the sending of the audio from the same track will resume.
|
|
1298
1094
|
*
|
|
1299
1095
|
* @param {Object} options
|
|
1300
|
-
* @param {boolean} options.
|
|
1301
|
-
* @param {boolean} options.
|
|
1302
|
-
* @param {
|
|
1096
|
+
* @param {boolean} options.audioEnabled [optional] enables/disables receiving and sending of main audio in the meeting
|
|
1097
|
+
* @param {boolean} options.videoEnabled [optional] enables/disables receiving and sending of main video in the meeting
|
|
1098
|
+
* @param {boolean} options.shareEnabled [optional] enables/disables receiving and sending of screen share in the meeting
|
|
1303
1099
|
* @returns {Promise}
|
|
1304
1100
|
* @public
|
|
1305
1101
|
* @memberof Meeting
|
|
1306
1102
|
*/
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
stream: MediaStream;
|
|
1311
|
-
}): Promise<unknown>;
|
|
1312
|
-
/**
|
|
1313
|
-
* Internal function when stopping a share stream, cleanup
|
|
1314
|
-
* @param {boolean} sendShare
|
|
1315
|
-
* @param {boolean} previousShareStatus
|
|
1316
|
-
* @returns {Promise}
|
|
1317
|
-
* @private
|
|
1318
|
-
* @memberof Meeting
|
|
1319
|
-
*/
|
|
1320
|
-
private checkForStopShare;
|
|
1321
|
-
/**
|
|
1322
|
-
* Update the share streams, can be used to start sharing
|
|
1323
|
-
*
|
|
1324
|
-
* NOTE: this method can only be used with transcoded meetings, for multistream meetings use publishTrack()
|
|
1325
|
-
*
|
|
1326
|
-
* @param {Object} options
|
|
1327
|
-
* @param {boolean} options.sendShare
|
|
1328
|
-
* @param {boolean} options.receiveShare
|
|
1329
|
-
* @returns {Promise}
|
|
1330
|
-
* @public
|
|
1331
|
-
* @memberof Meeting
|
|
1332
|
-
*/
|
|
1333
|
-
updateShare(options: {
|
|
1334
|
-
sendShare?: boolean;
|
|
1103
|
+
updateMedia(options: {
|
|
1104
|
+
audioEnabled?: boolean;
|
|
1105
|
+
videoEnabled?: boolean;
|
|
1335
1106
|
receiveShare?: boolean;
|
|
1336
|
-
|
|
1337
|
-
skipSignalingCheck?: boolean;
|
|
1338
|
-
}): Promise<unknown>;
|
|
1339
|
-
/**
|
|
1340
|
-
* Do all the attach media pre set up before executing the actual attach
|
|
1341
|
-
* @param {MediaStream} localStream
|
|
1342
|
-
* @param {MediaStream} localShare
|
|
1343
|
-
* @param {MediaDirection} mediaSettings
|
|
1344
|
-
* @returns {undefined}
|
|
1345
|
-
* @private
|
|
1346
|
-
* @memberof Meeting
|
|
1347
|
-
*/
|
|
1348
|
-
private preMedia;
|
|
1107
|
+
}): Promise<void>;
|
|
1349
1108
|
/**
|
|
1350
1109
|
* Acknowledge the meeting, outgoing or incoming
|
|
1351
1110
|
* @param {String} type
|
|
@@ -1403,12 +1162,12 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1403
1162
|
*/
|
|
1404
1163
|
private requestScreenShareFloor;
|
|
1405
1164
|
/**
|
|
1406
|
-
*
|
|
1407
|
-
*
|
|
1408
|
-
*
|
|
1409
|
-
* @
|
|
1165
|
+
* Requests screen share floor if such request is pending.
|
|
1166
|
+
* It should be called whenever meeting state changes to JOINED
|
|
1167
|
+
*
|
|
1168
|
+
* @returns {void}
|
|
1410
1169
|
*/
|
|
1411
|
-
|
|
1170
|
+
private requestScreenShareFloorIfPending;
|
|
1412
1171
|
/**
|
|
1413
1172
|
* Sends a request to Locus to release the screen share floor.
|
|
1414
1173
|
* @returns {Promise} see #meetingRequest.changeMeetingFloor
|
|
@@ -1524,45 +1283,12 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1524
1283
|
height: number;
|
|
1525
1284
|
};
|
|
1526
1285
|
}): any;
|
|
1527
|
-
/**
|
|
1528
|
-
* Sets the quality of the local video stream
|
|
1529
|
-
* @param {String} level {LOW|MEDIUM|HIGH}
|
|
1530
|
-
* @returns {Promise<MediaStream>} localStream
|
|
1531
|
-
*/
|
|
1532
|
-
setLocalVideoQuality(level: string): any;
|
|
1533
1286
|
/**
|
|
1534
1287
|
* Sets the quality level of the remote incoming media
|
|
1535
1288
|
* @param {String} level {LOW|MEDIUM|HIGH}
|
|
1536
1289
|
* @returns {Promise}
|
|
1537
1290
|
*/
|
|
1538
|
-
setRemoteQualityLevel(level: string):
|
|
1539
|
-
/**
|
|
1540
|
-
* This is deprecated, please use setLocalVideoQuality for setting local and setRemoteQualityLevel for remote
|
|
1541
|
-
* @param {String} level {LOW|MEDIUM|HIGH}
|
|
1542
|
-
* @returns {Promise}
|
|
1543
|
-
* @deprecated After FHD support
|
|
1544
|
-
*/
|
|
1545
|
-
setMeetingQuality(level: string): any;
|
|
1546
|
-
/**
|
|
1547
|
-
*
|
|
1548
|
-
* NOTE: this method can only be used with transcoded meetings, for multistream use publishTrack()
|
|
1549
|
-
*
|
|
1550
|
-
* @param {Object} options parameter
|
|
1551
|
-
* @param {Boolean} options.sendAudio send audio from the display share
|
|
1552
|
-
* @param {Boolean} options.sendShare send video from the display share
|
|
1553
|
-
* @param {Object} options.sharePreferences
|
|
1554
|
-
* @param {MediaTrackConstraints} options.sharePreferences.shareConstraints constraints to apply to video
|
|
1555
|
-
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackConstraints}
|
|
1556
|
-
* @param {Boolean} options.sharePreferences.highFrameRate if shareConstraints isn't provided, set default values based off of this boolean
|
|
1557
|
-
* @returns {Promise}
|
|
1558
|
-
*/
|
|
1559
|
-
shareScreen(options?: {
|
|
1560
|
-
sendAudio: boolean;
|
|
1561
|
-
sendShare: boolean;
|
|
1562
|
-
sharePreferences: {
|
|
1563
|
-
shareConstraints: MediaTrackConstraints;
|
|
1564
|
-
};
|
|
1565
|
-
}): any;
|
|
1291
|
+
setRemoteQualityLevel(level: string): Promise<void>;
|
|
1566
1292
|
/**
|
|
1567
1293
|
* Functionality for when a share is ended.
|
|
1568
1294
|
* @private
|
|
@@ -1740,21 +1466,32 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1740
1466
|
* @returns {Promise}
|
|
1741
1467
|
*/
|
|
1742
1468
|
enableMusicMode(shouldEnableMusicMode: boolean): Promise<void>;
|
|
1469
|
+
/** Updates the tracks being sent on the transcoded media connection
|
|
1470
|
+
*
|
|
1471
|
+
* @returns {Promise<void>}
|
|
1472
|
+
*/
|
|
1473
|
+
private updateTranscodedMediaConnection;
|
|
1474
|
+
/**
|
|
1475
|
+
* Publishes a track.
|
|
1476
|
+
*
|
|
1477
|
+
* @param {LocalTrack} track to publish
|
|
1478
|
+
* @returns {Promise}
|
|
1479
|
+
*/
|
|
1480
|
+
private publishTrack;
|
|
1481
|
+
/**
|
|
1482
|
+
* Un-publishes a track.
|
|
1483
|
+
*
|
|
1484
|
+
* @param {LocalTrack} track to unpublish
|
|
1485
|
+
* @returns {Promise}
|
|
1486
|
+
*/
|
|
1487
|
+
private unpublishTrack;
|
|
1743
1488
|
/**
|
|
1744
1489
|
* Publishes specified local tracks in the meeting
|
|
1745
1490
|
*
|
|
1746
1491
|
* @param {Object} tracks
|
|
1747
1492
|
* @returns {Promise}
|
|
1748
1493
|
*/
|
|
1749
|
-
publishTracks(tracks:
|
|
1750
|
-
microphone?: LocalMicrophoneTrack;
|
|
1751
|
-
camera?: LocalCameraTrack;
|
|
1752
|
-
screenShare: {
|
|
1753
|
-
audio?: LocalTrack;
|
|
1754
|
-
video?: LocalDisplayTrack;
|
|
1755
|
-
};
|
|
1756
|
-
annotationInfo?: AnnotationInfo;
|
|
1757
|
-
}): Promise<void>;
|
|
1494
|
+
publishTracks(tracks: LocalTracks): Promise<void>;
|
|
1758
1495
|
/**
|
|
1759
1496
|
* Un-publishes specified local tracks in the meeting
|
|
1760
1497
|
*
|