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