@webex/plugin-meetings 3.0.0-beta.146 → 3.0.0-beta.148
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/annotation/index.js +0 -2
- package/dist/annotation/index.js.map +1 -1
- 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 +1112 -1873
- 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 +97 -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/annotation/index.ts +0 -2
- 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 +544 -1567
- 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/annotation/index.ts +4 -4
- package/test/unit/spec/meeting/index.js +811 -1367
- 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;
|
|
@@ -582,6 +582,13 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
582
582
|
* @memberof Meeting
|
|
583
583
|
*/
|
|
584
584
|
private setupLocusControlsListener;
|
|
585
|
+
/**
|
|
586
|
+
* Trigger annotation info update event
|
|
587
|
+
@returns {undefined}
|
|
588
|
+
@param {object} contentShare
|
|
589
|
+
@param {object} previousContentShare
|
|
590
|
+
*/
|
|
591
|
+
private triggerAnnotationInfoEvent;
|
|
585
592
|
/**
|
|
586
593
|
* Set up the locus info media shares listener
|
|
587
594
|
* update content and whiteboard sharing id value for members, and updates the member
|
|
@@ -730,48 +737,6 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
730
737
|
* @memberof Meeting
|
|
731
738
|
*/
|
|
732
739
|
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
740
|
/**
|
|
776
741
|
* Sets the meeting info on the class instance
|
|
777
742
|
* @param {Object} meetingInfo
|
|
@@ -830,15 +795,6 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
830
795
|
* @memberof Meeting
|
|
831
796
|
*/
|
|
832
797
|
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
798
|
/**
|
|
843
799
|
* Removes remote audio, video and share tracks from class instance's mediaProperties
|
|
844
800
|
* @returns {undefined}
|
|
@@ -861,76 +817,30 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
861
817
|
*/
|
|
862
818
|
closeRemoteTracks(): Promise<[any, any, any]>;
|
|
863
819
|
/**
|
|
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
|
|
820
|
+
* Stores the reference to a new microphone track, sets up the required event listeners
|
|
821
|
+
* on it, cleans up previous track, etc.
|
|
822
|
+
*
|
|
823
|
+
* @param {LocalMicrophoneTrack | null} localTrack local microphone track
|
|
824
|
+
* @returns {Promise<void>}
|
|
877
825
|
*/
|
|
878
826
|
private setLocalAudioTrack;
|
|
879
827
|
/**
|
|
880
|
-
*
|
|
881
|
-
*
|
|
882
|
-
*
|
|
883
|
-
* @
|
|
884
|
-
* @
|
|
885
|
-
* @memberof Meeting
|
|
828
|
+
* Stores the reference to a new camera track, sets up the required event listeners
|
|
829
|
+
* on it, cleans up previous track, etc.
|
|
830
|
+
*
|
|
831
|
+
* @param {LocalCameraTrack | null} localTrack local camera track
|
|
832
|
+
* @returns {Promise<void>}
|
|
886
833
|
*/
|
|
887
834
|
private setLocalVideoTrack;
|
|
888
835
|
/**
|
|
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
|
|
836
|
+
* Stores the reference to a new screen share track, sets up the required event listeners
|
|
837
|
+
* on it, cleans up previous track, etc.
|
|
838
|
+
* It also sends the floor grant/release request.
|
|
839
|
+
*
|
|
840
|
+
* @param {LocalDisplayTrack | undefined} localDisplayTrack local camera track
|
|
841
|
+
* @returns {Promise<void>}
|
|
932
842
|
*/
|
|
933
|
-
|
|
843
|
+
private setLocalShareTrack;
|
|
934
844
|
/**
|
|
935
845
|
* sets up listner for mercury event
|
|
936
846
|
* @returns {undefined}
|
|
@@ -963,63 +873,25 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
963
873
|
* @memberof Meeting
|
|
964
874
|
*/
|
|
965
875
|
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
876
|
/**
|
|
995
877
|
* Shorthand function to join AND set up media
|
|
996
878
|
* @param {Object} options - options to join with media
|
|
997
879
|
* @param {JoinOptions} [options.joinOptions] - see #join()
|
|
998
|
-
* @param {MediaDirection} options.
|
|
999
|
-
* @
|
|
1000
|
-
* @returns {Promise} -- {join: see join(), media: see addMedia(), local: see getMediaStreams()}
|
|
880
|
+
* @param {MediaDirection} [options.mediaOptions] - see #addMedia()
|
|
881
|
+
* @returns {Promise} -- {join: see join(), media: see addMedia()}
|
|
1001
882
|
* @public
|
|
1002
883
|
* @memberof Meeting
|
|
1003
884
|
* @example
|
|
1004
885
|
* joinWithMedia({
|
|
1005
886
|
* 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
|
-
* }})
|
|
887
|
+
* mediaOptions: {
|
|
888
|
+
* localTracks: { microphone: microphoneTrack, camera: cameraTrack }
|
|
889
|
+
* }
|
|
890
|
+
* })
|
|
1018
891
|
*/
|
|
1019
892
|
joinWithMedia(options?: {
|
|
1020
893
|
joinOptions?: any;
|
|
1021
|
-
|
|
1022
|
-
audioVideoOptions?: any;
|
|
894
|
+
mediaOptions?: AddMediaOptions;
|
|
1023
895
|
}): any;
|
|
1024
896
|
/**
|
|
1025
897
|
* Initiates the reconnection of the media in the meeting
|
|
@@ -1148,38 +1020,6 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1148
1020
|
* @memberof Meeting
|
|
1149
1021
|
*/
|
|
1150
1022
|
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
1023
|
/**
|
|
1184
1024
|
* Handles ROAP_FAILURE event from the webrtc media connection
|
|
1185
1025
|
*
|
|
@@ -1197,13 +1037,13 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1197
1037
|
setupStatsAnalyzerEventHandlers: () => void;
|
|
1198
1038
|
getMediaConnectionDebugId(): string;
|
|
1199
1039
|
/**
|
|
1200
|
-
* Creates a webrtc media connection
|
|
1040
|
+
* Creates a webrtc media connection and publishes tracks to it
|
|
1201
1041
|
*
|
|
1202
1042
|
* @param {Object} turnServerInfo TURN server information
|
|
1203
1043
|
* @param {BundlePolicy} [bundlePolicy] Bundle policy settings
|
|
1204
1044
|
* @returns {RoapMediaConnection | MultistreamRoapMediaConnection}
|
|
1205
1045
|
*/
|
|
1206
|
-
createMediaConnection
|
|
1046
|
+
private createMediaConnection;
|
|
1207
1047
|
/**
|
|
1208
1048
|
* Listens for an event emitted by eventEmitter and emits it from the meeting object
|
|
1209
1049
|
*
|
|
@@ -1215,19 +1055,14 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1215
1055
|
*/
|
|
1216
1056
|
forwardEvent(eventEmitter: any, eventTypeToForward: any, meetingEventType: any): void;
|
|
1217
1057
|
/**
|
|
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
|
|
1058
|
+
* Creates a media connection to the server. Media connection is required for sending or receiving any audio/video.
|
|
1059
|
+
*
|
|
1060
|
+
* @param {AddMediaOptions} options
|
|
1226
1061
|
* @returns {Promise}
|
|
1227
1062
|
* @public
|
|
1228
1063
|
* @memberof Meeting
|
|
1229
1064
|
*/
|
|
1230
|
-
addMedia(options?:
|
|
1065
|
+
addMedia(options?: AddMediaOptions): Promise<any>;
|
|
1231
1066
|
/**
|
|
1232
1067
|
* Informs if the peer connection is in a state that can be updated with updateMedia (audio/video/share)
|
|
1233
1068
|
* @returns {Boolean}
|
|
@@ -1258,94 +1093,25 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1258
1093
|
*/
|
|
1259
1094
|
processNextQueuedMediaUpdate: () => void;
|
|
1260
1095
|
/**
|
|
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()
|
|
1298
|
-
*
|
|
1299
|
-
* @param {Object} options
|
|
1300
|
-
* @param {boolean} options.sendVideo
|
|
1301
|
-
* @param {boolean} options.receiveVideo
|
|
1302
|
-
* @param {MediaStream} options.stream Stream that contains the video track to update
|
|
1303
|
-
* @returns {Promise}
|
|
1304
|
-
* @public
|
|
1305
|
-
* @memberof Meeting
|
|
1306
|
-
*/
|
|
1307
|
-
updateVideo(options: {
|
|
1308
|
-
sendVideo: boolean;
|
|
1309
|
-
receiveVideo: boolean;
|
|
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()
|
|
1096
|
+
* Updates the media connection - it allows to enable/disable all audio/video/share in the meeting.
|
|
1097
|
+
* This does not affect the published tracks, so for example if a microphone track is published and
|
|
1098
|
+
* updateMedia({audioEnabled: false}) is called, the audio will not be sent or received anymore,
|
|
1099
|
+
* but the track's "published" state is not changed and when updateMedia({audioEnabled: true}) is called,
|
|
1100
|
+
* the sending of the audio from the same track will resume.
|
|
1325
1101
|
*
|
|
1326
1102
|
* @param {Object} options
|
|
1327
|
-
* @param {boolean} options.
|
|
1328
|
-
* @param {boolean} options.
|
|
1103
|
+
* @param {boolean} options.audioEnabled [optional] enables/disables receiving and sending of main audio in the meeting
|
|
1104
|
+
* @param {boolean} options.videoEnabled [optional] enables/disables receiving and sending of main video in the meeting
|
|
1105
|
+
* @param {boolean} options.shareEnabled [optional] enables/disables receiving and sending of screen share in the meeting
|
|
1329
1106
|
* @returns {Promise}
|
|
1330
1107
|
* @public
|
|
1331
1108
|
* @memberof Meeting
|
|
1332
1109
|
*/
|
|
1333
|
-
|
|
1334
|
-
|
|
1110
|
+
updateMedia(options: {
|
|
1111
|
+
audioEnabled?: boolean;
|
|
1112
|
+
videoEnabled?: boolean;
|
|
1335
1113
|
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;
|
|
1114
|
+
}): Promise<void>;
|
|
1349
1115
|
/**
|
|
1350
1116
|
* Acknowledge the meeting, outgoing or incoming
|
|
1351
1117
|
* @param {String} type
|
|
@@ -1403,12 +1169,12 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1403
1169
|
*/
|
|
1404
1170
|
private requestScreenShareFloor;
|
|
1405
1171
|
/**
|
|
1406
|
-
*
|
|
1407
|
-
*
|
|
1408
|
-
*
|
|
1409
|
-
* @
|
|
1172
|
+
* Requests screen share floor if such request is pending.
|
|
1173
|
+
* It should be called whenever meeting state changes to JOINED
|
|
1174
|
+
*
|
|
1175
|
+
* @returns {void}
|
|
1410
1176
|
*/
|
|
1411
|
-
|
|
1177
|
+
private requestScreenShareFloorIfPending;
|
|
1412
1178
|
/**
|
|
1413
1179
|
* Sends a request to Locus to release the screen share floor.
|
|
1414
1180
|
* @returns {Promise} see #meetingRequest.changeMeetingFloor
|
|
@@ -1524,45 +1290,12 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1524
1290
|
height: number;
|
|
1525
1291
|
};
|
|
1526
1292
|
}): 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
1293
|
/**
|
|
1534
1294
|
* Sets the quality level of the remote incoming media
|
|
1535
1295
|
* @param {String} level {LOW|MEDIUM|HIGH}
|
|
1536
1296
|
* @returns {Promise}
|
|
1537
1297
|
*/
|
|
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;
|
|
1298
|
+
setRemoteQualityLevel(level: string): Promise<void>;
|
|
1566
1299
|
/**
|
|
1567
1300
|
* Functionality for when a share is ended.
|
|
1568
1301
|
* @private
|
|
@@ -1740,21 +1473,32 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1740
1473
|
* @returns {Promise}
|
|
1741
1474
|
*/
|
|
1742
1475
|
enableMusicMode(shouldEnableMusicMode: boolean): Promise<void>;
|
|
1476
|
+
/** Updates the tracks being sent on the transcoded media connection
|
|
1477
|
+
*
|
|
1478
|
+
* @returns {Promise<void>}
|
|
1479
|
+
*/
|
|
1480
|
+
private updateTranscodedMediaConnection;
|
|
1481
|
+
/**
|
|
1482
|
+
* Publishes a track.
|
|
1483
|
+
*
|
|
1484
|
+
* @param {LocalTrack} track to publish
|
|
1485
|
+
* @returns {Promise}
|
|
1486
|
+
*/
|
|
1487
|
+
private publishTrack;
|
|
1488
|
+
/**
|
|
1489
|
+
* Un-publishes a track.
|
|
1490
|
+
*
|
|
1491
|
+
* @param {LocalTrack} track to unpublish
|
|
1492
|
+
* @returns {Promise}
|
|
1493
|
+
*/
|
|
1494
|
+
private unpublishTrack;
|
|
1743
1495
|
/**
|
|
1744
1496
|
* Publishes specified local tracks in the meeting
|
|
1745
1497
|
*
|
|
1746
1498
|
* @param {Object} tracks
|
|
1747
1499
|
* @returns {Promise}
|
|
1748
1500
|
*/
|
|
1749
|
-
publishTracks(tracks:
|
|
1750
|
-
microphone?: LocalMicrophoneTrack;
|
|
1751
|
-
camera?: LocalCameraTrack;
|
|
1752
|
-
screenShare: {
|
|
1753
|
-
audio?: LocalTrack;
|
|
1754
|
-
video?: LocalDisplayTrack;
|
|
1755
|
-
};
|
|
1756
|
-
annotationInfo?: AnnotationInfo;
|
|
1757
|
-
}): Promise<void>;
|
|
1501
|
+
publishTracks(tracks: LocalTracks): Promise<void>;
|
|
1758
1502
|
/**
|
|
1759
1503
|
* Un-publishes specified local tracks in the meeting
|
|
1760
1504
|
*
|