@vkontakte/calls-sdk 2.6.3-dev.c4e735f.0 → 2.6.3-dev.cd0dd8d.0

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.
@@ -217,6 +217,14 @@ export default class Conversation extends EventEmitter {
217
217
  private _onRemoveParticipant;
218
218
  changeDevice(kind: MediaDeviceKind): Promise<void>;
219
219
  toggleScreenCapturing(screenEnabled: boolean, audioShareEnabled: boolean): Promise<void>;
220
+ toggleAnimojiCapturing(state: boolean): void;
221
+ setAnimojiSvg(
222
+ /** svg в незашифрованном (string) или зашифрованном (ArrayBuffer) виде */
223
+ svg: string | ArrayBuffer,
224
+ /** participantId внешнего участника звонка, не требуется для текущего участника (текущего пользователя клиента) */
225
+ participantId?: ParticipantId | null,
226
+ /** ключ расшифровки svg внешнего пользователя или кастомный ключ, не требуется для незашифрованных svg */
227
+ decryptionKey?: string | null): void;
220
228
  setVideoStream(stream: MediaStream, isScreen?: boolean): Promise<void>;
221
229
  setAudioStream(stream: MediaStream): Promise<void>;
222
230
  toggleLocalVideo(enabled: boolean): Promise<void>;
@@ -271,11 +279,11 @@ export default class Conversation extends EventEmitter {
271
279
  createJoinLink(): Promise<string>;
272
280
  removeJoinLink(): Promise<never>;
273
281
  addMovie({ movieId, gain, metadata }: IAddMovieParams): Promise<{
274
- movieId: string;
282
+ movieId: number;
275
283
  streamType: string;
276
284
  }>;
277
285
  updateMovie(params: IUpdateMovieData): Promise<void>;
278
- removeMovie(movieId: string): Promise<void>;
286
+ removeMovie(movieId: number): Promise<void>;
279
287
  updateRooms(rooms: SignalingMessage.Room[], assignRandomly: boolean): Promise<void>;
280
288
  activateRooms(roomIds: number[], deactivate: boolean): Promise<void>;
281
289
  switchRoom(toRoomId: number | null, participantId?: ParticipantId): Promise<void>;
@@ -334,6 +342,12 @@ export default class Conversation extends EventEmitter {
334
342
  private _onOptionsChanged;
335
343
  private _onNetworkStatus;
336
344
  private _onRemoteStreamSecond;
345
+ /**
346
+ * Коллбек, вызывающийся при получении/остановке стрима от AnimojiReceiver
347
+ * @param participantId - участник, к которому относится стрим
348
+ * @param stream - стрим анимированного аватара, null в случае остановки стрима
349
+ */
350
+ private _onAnimojiStream;
337
351
  private _onPeerConnectionClosed;
338
352
  private _changeFeatureSet;
339
353
  private _changeNeedRate;
@@ -5,7 +5,8 @@ import MediaSettings from '../types/MediaSettings';
5
5
  export declare const enum MediaSourceEvent {
6
6
  SOURCE_CHANGED = "SOURCE_CHANGED",
7
7
  TRACK_REPLACED = "TRACK_REPLACED",
8
- SCREEN_STATUS = "SCREEN_STATUS"
8
+ SCREEN_STATUS = "SCREEN_STATUS",
9
+ ANIMOJI_STATUS = "ANIMOJI_STATUS"
9
10
  }
10
11
  /**
11
12
  * Тип трека
@@ -29,12 +30,17 @@ export declare class MediaSource extends EventEmitter {
29
30
  private _videoStatusOnScreenCapturingEnabled;
30
31
  private _effect;
31
32
  private _onDeviceChange;
33
+ /** MediaSource занят при переключении камеры или микрофона */
34
+ private _sourceBusy;
35
+ /** Состояние выключателя Animoji в UI */
36
+ private _animojiEnabled;
32
37
  constructor();
33
38
  request(mediaOptions?: MediaOption[], needEmptyTracks?: boolean): Promise<void>;
34
39
  getStream(): MediaStream | null;
35
40
  getScreenTrack(): MediaStreamTrack | null;
36
41
  getSendVideoTrack(noDataChannel?: boolean): MediaStreamTrack | null;
37
42
  private _getSendAudioTrack;
43
+ getAnimojiEnabled(): boolean;
38
44
  addTrackToPeerConnection(pc: RTCPeerConnection, observer: boolean, noDataChannel: boolean, audioRed: boolean): void;
39
45
  getMediaSettings(): MediaSettings;
40
46
  changeDevice(kind: MediaDeviceKind): Promise<void>;
@@ -57,10 +63,13 @@ export declare class MediaSource extends EventEmitter {
57
63
  * Может использоваться для тестирования.
58
64
  */
59
65
  setAudioStream(stream: MediaStream): Promise<void>;
66
+ private _busy;
67
+ private _free;
60
68
  private _changeAudioInput;
61
69
  private _changeScreen;
62
70
  private _disableScreenCapture;
63
71
  private disableAudioShare;
72
+ private stopAudioShareTrack;
64
73
  private getSilentAudioShareTrack;
65
74
  private _replaceLocalTrack;
66
75
  private _stopLocalTrack;
@@ -71,6 +80,9 @@ export declare class MediaSource extends EventEmitter {
71
80
  toggleScreenCapturing(captureScreen: boolean, captureAudio: boolean): Promise<void>;
72
81
  toggleVideo(enabled: boolean): Promise<void>;
73
82
  toggleAudio(enabled: boolean): Promise<void>;
83
+ toggleAnimojiCapturing(enabled: boolean): void;
84
+ onAnimojiSender(created: boolean): void;
85
+ onAnimojiStream(stream?: MediaStream | null): Promise<void>;
74
86
  setResolution(width: number, height: number): Promise<void>;
75
87
  updateNoiseSuppression(): Promise<void>;
76
88
  videoEffect(effect: IEffect | null): Promise<void>;
@@ -1,3 +1,4 @@
1
+ import type { AnimojiSvgData } from '@vkontakte/calls-vmoji';
1
2
  import BaseSignaling from '../../abstract/BaseSignaling';
2
3
  import { ParticipantId } from '../../types/Participant';
3
4
  import ServerSettings from '../../types/ServerSettings';
@@ -13,6 +14,10 @@ export default class DirectTransport extends EventEmitter {
13
14
  private _remoteSDP;
14
15
  private _remoteCandidates;
15
16
  private _state;
17
+ private _animojiDataChannel;
18
+ private _animojiReceiver;
19
+ private _animojiSender;
20
+ private _animojiSvgDataByParticipantId;
16
21
  private _isOpen;
17
22
  private _remotePeerId;
18
23
  private _statInterval;
@@ -39,6 +44,7 @@ export default class DirectTransport extends EventEmitter {
39
44
  preventRestart(): void;
40
45
  allowRestart(): void;
41
46
  close(error?: Error): void;
47
+ setAnimojiSvg(participantId: ParticipantId, svgData: AnimojiSvgData): void;
42
48
  private _setState;
43
49
  private _onSignalingNotification;
44
50
  private _handleTransmittedData;
@@ -58,6 +64,7 @@ export default class DirectTransport extends EventEmitter {
58
64
  private _createAnswer;
59
65
  private static _patchDescription;
60
66
  private _onReplacedTrack;
67
+ private _onAnimojiStatus;
61
68
  private _startStatInterval;
62
69
  private _stopStatInterval;
63
70
  private _checkBadNetwork;
@@ -65,4 +72,9 @@ export default class DirectTransport extends EventEmitter {
65
72
  private _stopSettingsInterval;
66
73
  private _calcFingerprint;
67
74
  private _applySettings;
75
+ private _createDataChannel;
76
+ private _createAnimojiReceiver;
77
+ private _removeAnimojiReceiver;
78
+ private _createAnimojiSender;
79
+ private _removeAnimojiSender;
68
80
  }
@@ -1,3 +1,4 @@
1
+ import type { AnimojiSvgData } from '@vkontakte/calls-vmoji';
1
2
  import BaseSignaling from '../../abstract/BaseSignaling';
2
3
  import { ParticipantId } from '../../types/Participant';
3
4
  import ServerSettings from '../../types/ServerSettings';
@@ -14,6 +15,10 @@ export default class ServerTransport extends EventEmitter {
14
15
  private _producerScreen;
15
16
  private _consumerScreen;
16
17
  private _asr;
18
+ private _animojiDataChannel;
19
+ private _animojiReceiver;
20
+ private _animojiSender;
21
+ private _animojiSvgDataByParticipantId;
17
22
  private _isOpen;
18
23
  private _observer;
19
24
  private _reconnectionPrevented;
@@ -36,7 +41,7 @@ export default class ServerTransport extends EventEmitter {
36
41
  private _rtpReceiversByStreamId;
37
42
  private _producerSessionId;
38
43
  private _newAudioShareTrack;
39
- constructor(signaling: BaseSignaling, mediaSource: MediaSource, serverSettings: ServerSettings);
44
+ constructor(signaling: BaseSignaling, mediaSource: MediaSource, serverSettings: ServerSettings, animojiSvgDataByParticipantId?: Record<ParticipantId, AnimojiSvgData>);
40
45
  getState(): TransportState;
41
46
  updateStatisticsInterval(): void;
42
47
  open(observer?: boolean): void;
@@ -45,6 +50,7 @@ export default class ServerTransport extends EventEmitter {
45
50
  preventRestart(): void;
46
51
  allowRestart(): void;
47
52
  updateSettings(settings: ServerSettings): void;
53
+ setAnimojiSvg(participantId: ParticipantId, svgData: AnimojiSvgData): void;
48
54
  private _closeConnection;
49
55
  private static _closeDataChannel;
50
56
  private _createDataChannel;
@@ -60,8 +66,13 @@ export default class ServerTransport extends EventEmitter {
60
66
  private _removeCaptureSender;
61
67
  private _createCaptureReceiver;
62
68
  private _removeCaptureReceiver;
69
+ private _createAnimojiSender;
70
+ private _removeAnimojiSender;
71
+ private _createAnimojiReceiver;
72
+ private _removeAnimojiReceiver;
63
73
  private _applyConsumerSettings;
64
74
  private _onScreenSharingStatus;
75
+ private _onAnimojiStatus;
65
76
  private _setState;
66
77
  private _startStatInterval;
67
78
  private _stopStatInterval;
@@ -1,3 +1,4 @@
1
+ import type { AnimojiSvgData } from '@vkontakte/calls-vmoji/types';
1
2
  import BaseSignaling from '../../abstract/BaseSignaling';
2
3
  import { ParticipantId } from '../../types/Participant';
3
4
  import ServerSettings from '../../types/ServerSettings';
@@ -17,7 +18,8 @@ export declare const enum TransportEvent {
17
18
  TOPOLOGY_CHANGED = "TOPOLOGY_CHANGED",
18
19
  NETWORK_STATUS = "NETWORK_STATUS",
19
20
  PEER_CONNECTION_CLOSED = "PEER_CONNECTION_CLOSED",
20
- ASR_TRANSCRIPTION = "ASR_TRANSCRIPTION"
21
+ ASR_TRANSCRIPTION = "ASR_TRANSCRIPTION",
22
+ ANIMOJI_STREAM = "ANIMOJI_STREAM"
21
23
  }
22
24
  export declare const enum TransportState {
23
25
  IDLE = "IDLE",
@@ -45,6 +47,7 @@ export declare class Transport extends EventEmitter {
45
47
  private _stListeners;
46
48
  private _states;
47
49
  private _localState;
50
+ private _animojiSvgDataByParticipantId;
48
51
  constructor(topology: TransportTopology, signaling: BaseSignaling, mediaSource: MediaSource, serverSettings: ServerSettings);
49
52
  updateSettings(settings: ServerSettings): void;
50
53
  updateStatisticsInterval(): void;
@@ -57,6 +60,7 @@ export declare class Transport extends EventEmitter {
57
60
  allocated(): string[];
58
61
  opened(): string[];
59
62
  getState(): TransportState;
63
+ setAnimojiSvg(participantId: ParticipantId, svgData: AnimojiSvgData): void;
60
64
  private _setStates;
61
65
  private _setState;
62
66
  private _setLocalState;
@@ -83,5 +87,6 @@ export declare class Transport extends EventEmitter {
83
87
  private _onServerRemoteTrackAdded;
84
88
  private _onServerRemoteTrackRemoved;
85
89
  private _onAsrTranscription;
90
+ private _onAnimojiStream;
86
91
  getStreamWaitingTimeMs(streamId: string, targetRtpTimestamp: number): number;
87
92
  }
@@ -3,6 +3,7 @@ declare const enum DataChannelLabel {
3
3
  producerCommand = "producerCommand",
4
4
  consumerScreenShare = "consumerScreenShare",
5
5
  producerScreenShare = "producerScreenShare",
6
- asr = "asr"
6
+ asr = "asr",
7
+ animoji = "animoji"
7
8
  }
8
9
  export default DataChannelLabel;
@@ -6,6 +6,7 @@ declare enum MediaOption {
6
6
  VIDEO = "VIDEO",
7
7
  SCREEN_SHARING = "SCREEN_SHARING",
8
8
  MOVIE_SHARING = "MOVIE_SHARING",
9
- AUDIO_SHARING = "AUDIO_SHARING"
9
+ AUDIO_SHARING = "AUDIO_SHARING",
10
+ ANIMOJI = "ANIMOJI"
10
11
  }
11
12
  export default MediaOption;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vkontakte/calls-sdk",
3
- "version": "2.6.3-dev.c4e735f.0",
3
+ "version": "2.6.3-dev.cd0dd8d.0",
4
4
  "author": "vk.com",
5
5
  "description": "Library for video calls based on the vk.com platform",
6
6
  "homepage": "https://vk.com",
@@ -15,6 +15,7 @@
15
15
  ],
16
16
  "dependencies": {
17
17
  "@vkontakte/calls-video-effects": "1.0.6-beta.18",
18
+ "@vkontakte/calls-vmoji": "1.0.4",
18
19
  "@vkontakte/libvpx": "2.0.9",
19
20
  "bit-buffer": "0.2.5",
20
21
  "messagepack": "1.1.12",
@@ -215,8 +215,9 @@ declare namespace External {
215
215
  * Ошибка получения трека с камеры или микрофона
216
216
  *
217
217
  * @param error
218
+ * @param original
218
219
  */
219
- function onPermissionsError(error: FatalError): void;
220
+ function onPermissionsError(error: FatalError, original: Error): void;
220
221
  /**
221
222
  * Пользователь отключился от звонка
222
223
  *
@@ -1,4 +1,5 @@
1
1
  import type { VideoEffects } from '@vkontakte/calls-video-effects';
2
+ import type * as Vmoji from '@vkontakte/calls-vmoji';
2
3
  import { ConversationData } from '../classes/Conversation';
3
4
  import HangupReason from '../classes/HangupReason';
4
5
  import { MediaTrackKind } from '../classes/MediaSource';
@@ -119,6 +120,12 @@ export declare type ParamsObject = {
119
120
  * _По умолчанию: `15`_
120
121
  */
121
122
  screenFrameRate: number;
123
+ /**
124
+ * Вариант захвата экрана. Поддерживается в Chrome 107+
125
+ * @see https://developer.chrome.com/docs/web-platform/screen-sharing-controls/
126
+ * @hidden
127
+ */
128
+ displaySurface: DisplayCaptureSurfaceType;
122
129
  /**
123
130
  * Экземпляр класса `VideoEffects` из `@vkontakte/calls-video-effects`
124
131
  *
@@ -137,6 +144,12 @@ export declare type ParamsObject = {
137
144
  * _По умолчанию: `480`_
138
145
  */
139
146
  videoEffectMaxHeight: number;
147
+ /**
148
+ * Экземпляр класса `Vmoji` из `@vkontakte/calls-vmoji`
149
+ *
150
+ * Можно установить позднее методом `setVmoji`
151
+ */
152
+ vmoji: typeof Vmoji | null;
140
153
  iceRestartWaitTime: number;
141
154
  transportConnectionWaitTime: number;
142
155
  /**
@@ -305,6 +318,12 @@ export declare type ParamsObject = {
305
318
  * @hidden
306
319
  */
307
320
  screenShareCongestionControl: boolean;
321
+ /**
322
+ * Включить возможность захвата звука при трансляции экрана
323
+ *
324
+ * _По умолчанию: `false`_
325
+ */
326
+ audioShare: boolean;
308
327
  /**
309
328
  * Настройки api
310
329
  */
@@ -416,7 +435,7 @@ export declare type ParamsObject = {
416
435
  /**
417
436
  * Ошибка получения трека с камеры или микрофона
418
437
  */
419
- onPermissionsError?: (error: FatalError) => void;
438
+ onPermissionsError?: (error: FatalError, original: Error) => void;
420
439
  /**
421
440
  * Пользователь отключился от звонка
422
441
  */
@@ -585,10 +604,6 @@ export declare type ParamsObject = {
585
604
  * @param feedback массив с реакциями
586
605
  */
587
606
  onFeedback?: (feedback: IFeedbackExternal[], roomId: number | null) => void;
588
- /**
589
- * Включать capability c аудио шарой
590
- */
591
- audioShareCapabilityEnabled: boolean;
592
607
  /**
593
608
  * Изменился список ролей, которым доступны ConversationFeatures
594
609
  *
@@ -650,12 +665,16 @@ export default abstract class Params {
650
665
  static get videoFrameRate(): number;
651
666
  static get videoFacingMode(): FacingMode;
652
667
  static get screenFrameRate(): number;
668
+ static get displaySurface(): DisplayCaptureSurfaceType;
653
669
  static get videoEffects(): VideoEffects | null;
654
670
  static set videoEffects(value: VideoEffects | null);
655
671
  static get videoEffectMaxWidth(): number;
656
672
  static set videoEffectMaxWidth(value: number);
657
673
  static get videoEffectMaxHeight(): number;
658
674
  static set videoEffectMaxHeight(value: number);
675
+ static get useVmoji(): boolean;
676
+ static get vmoji(): typeof Vmoji | null;
677
+ static set vmoji(value: typeof Vmoji | null);
659
678
  static get voiceParams(): {
660
679
  [key: string]: number;
661
680
  };
@@ -698,7 +717,7 @@ export default abstract class Params {
698
717
  static get filterObservers(): boolean;
699
718
  static get muteMode(): boolean;
700
719
  static get preserveAudioTracks(): boolean;
701
- static get audioShareCapabilityEnabled(): boolean;
720
+ static get audioShare(): boolean;
702
721
  static get screenShareCongestionControl(): boolean;
703
722
  static get api(): {
704
723
  /** таймаут для батчинга на получение externalId */
@@ -49,7 +49,9 @@ declare class MediaConstraints {
49
49
  * @hidden
50
50
  */
51
51
  export declare class ScreenConstraints extends MediaConstraints {
52
+ readonly captureController: CaptureController | null;
52
53
  constructor(width: number, height: number, withAudioShare: boolean);
54
+ getNative(): object;
53
55
  }
54
56
  declare namespace WebRTCUtils {
55
57
  /**
@@ -178,6 +180,9 @@ declare namespace WebRTCUtils {
178
180
  * Возвращает подверсию браузера (если она есть)
179
181
  */
180
182
  function browserSubVersion(): string;
183
+ /**
184
+ * Браузер поддерживает захват звука при трансляции экрана
185
+ */
181
186
  function isAudioShareSupported(): boolean;
182
187
  }
183
188
  export default WebRTCUtils;
@@ -18,6 +18,10 @@ export declare type MediaSettings = {
18
18
  * Включена ли трансляция звука
19
19
  */
20
20
  isAudioSharingEnabled: boolean;
21
+ /**
22
+ * Включена ли трансляция вимоджи
23
+ */
24
+ isAnimojiEnabled: boolean;
21
25
  videoStreams: VideoStreamInfo[];
22
26
  };
23
27
  export declare type VideoStreamInfo = {
@@ -1,18 +1,52 @@
1
1
  import LiveStatus from '../enums/LiveStatus';
2
- import { OkUserId, CompositeUserId } from './Participant';
2
+ import { CompositeUserId } from './Participant';
3
3
  import { MediaType } from './ParticipantStreamDescription';
4
+ /**
5
+ * Preview изображения ролика
6
+ */
4
7
  export interface IMoviePreview {
8
+ /**
9
+ * Ссылка на изображение
10
+ */
5
11
  url: string;
12
+ /**
13
+ * Ширина изображения
14
+ */
6
15
  width: number;
16
+ /**
17
+ * Высота изображения
18
+ */
7
19
  height: number;
8
20
  }
21
+ /**
22
+ * MetaData ролика
23
+ */
24
+ export interface IMovieMetaData {
25
+ /**
26
+ * Название ролика
27
+ */
28
+ title?: string;
29
+ /**
30
+ * Список Preview
31
+ */
32
+ thumbnails?: IMoviePreview[];
33
+ }
34
+ /**
35
+ * Параметры для добавления ролика в Совместный Просмотр
36
+ */
9
37
  export interface IAddMovieParams {
10
- movieId: string;
38
+ /**
39
+ * ID Ролика
40
+ */
41
+ movieId: number;
42
+ /**
43
+ * Начальная громкость
44
+ */
11
45
  gain?: number;
12
- metadata?: {
13
- title?: string;
14
- thumbnails?: IMoviePreview[];
15
- };
46
+ /**
47
+ * MetaData ролика
48
+ */
49
+ metadata?: IMovieMetaData;
16
50
  }
17
51
  export declare type ISharedMovieStateResponse = [
18
52
  number,
@@ -23,38 +57,133 @@ export declare type ISharedMovieStateResponse = [
23
57
  number,
24
58
  number
25
59
  ];
60
+ /**
61
+ * Состояние проигрываемого ролика
62
+ */
26
63
  export interface ISharedMovieState {
64
+ /**
65
+ * ID Инициатора совместного просмотра
66
+ * @hidden
67
+ */
27
68
  participantId: CompositeUserId;
69
+ /**
70
+ * Громкость
71
+ */
28
72
  gain?: number;
73
+ /**
74
+ * Находится ли в состоянии паузы
75
+ */
29
76
  pause?: boolean;
77
+ /**
78
+ * Время прошедшее с начала ролика (сек)
79
+ */
30
80
  offset?: number;
81
+ /**
82
+ * Находится ли в стостоянии временного мьюта звука
83
+ */
31
84
  mute?: boolean;
85
+ /**
86
+ * Состояние лайва
87
+ * @hidden
88
+ */
32
89
  liveStatus?: LiveStatus;
90
+ /**
91
+ * Время до начала трансляции
92
+ * @hidden
93
+ */
33
94
  startTimeMs: number;
34
95
  }
96
+ /**
97
+ * Параментры для обновления состояния ролика
98
+ */
35
99
  export interface IUpdateMovieData {
36
- movieId: string;
100
+ /**
101
+ * Id ролика
102
+ */
103
+ movieId: number;
104
+ /**
105
+ * Громкость
106
+ */
37
107
  gain?: number;
108
+ /**
109
+ * Поставить на паузу / снять с паузы
110
+ */
38
111
  pause?: boolean;
112
+ /**
113
+ * Перемотать на n секунд
114
+ */
39
115
  offset?: number;
116
+ /**
117
+ * Временно отключить звук / включить звук в предыдущее состояние
118
+ */
40
119
  mute?: boolean;
41
120
  }
121
+ /**
122
+ * Информация по добавленному ролику в Совместный просмотр
123
+ */
42
124
  export interface ISharedMovieInfo {
43
- movieId: OkUserId;
125
+ /**
126
+ * Id ролика
127
+ */
128
+ movieId: number;
129
+ /**
130
+ * Id инициатора совсместного просмотра
131
+ * @hidden
132
+ */
44
133
  initiatorId: CompositeUserId;
134
+ /**
135
+ * Название ролика
136
+ */
45
137
  title: string;
138
+ /**
139
+ * Тип ролика (на данный момент STREAM или MOVIE)
140
+ */
46
141
  source: MediaType;
142
+ /**
143
+ * Внешний Id ролика
144
+ */
47
145
  externalMovieId: string;
146
+ /**
147
+ * Продолжительность ролика в секундах
148
+ */
48
149
  duration: number;
150
+ /**
151
+ * Массив Preview
152
+ */
49
153
  thumbnails: IMoviePreview[];
50
154
  }
155
+ /**
156
+ * Информация по удоленному из Совместного Просмотра ролику
157
+ */
51
158
  export interface ISharedMovieStoppedInfo {
52
- movieId: OkUserId;
159
+ /**
160
+ * Id ролика
161
+ */
162
+ movieId: number;
163
+ /**
164
+ * Id инициатора совсместного просмотра
165
+ * @hidden
166
+ */
53
167
  initiatorId: CompositeUserId;
168
+ /**
169
+ * Тип ролика (на данный момент STREAM или MOVIE)
170
+ */
54
171
  source: MediaType;
55
172
  }
173
+ /**
174
+ * Информация по пришедшему стриму ролика в Совместном просмотре
175
+ */
56
176
  export interface IOnRemoteMovieData {
177
+ /**
178
+ * Id стрима
179
+ */
57
180
  streamName: string;
181
+ /**
182
+ * Стрим
183
+ */
58
184
  stream: MediaStream | null;
185
+ /**
186
+ * Тип ролика (на данный момент STREAM или MOVIE)
187
+ */
59
188
  mediaType: MediaType;
60
189
  }
@@ -18,7 +18,7 @@ export interface IMuteParticipantParams {
18
18
  export interface IMuteParticipantInternalParams {
19
19
  uid: OkUserId | null;
20
20
  muteStates: MuteStates;
21
- requestedMedia: MediaOption[];
22
- deviceIdx: number;
23
- roomId: number | null;
21
+ requestedMedia?: MediaOption[];
22
+ deviceIdx?: number;
23
+ roomId?: number | null;
24
24
  }
@@ -7,7 +7,8 @@ export declare enum MediaType {
7
7
  SCREEN = "SCREEN",
8
8
  STREAM = "STREAM",
9
9
  MOVIE = "MOVIE",
10
- AUDIOSHARE = "AUDIOSHARE"
10
+ AUDIOSHARE = "AUDIOSHARE",
11
+ ANIMOJI = "ANIMOJI"
11
12
  }
12
13
  export declare function serializeParticipantStreamDescription(description: ParticipantStreamDescription): string;
13
14
  export declare function parseParticipantStreamDescription(descriptionString: string): ParticipantStreamDescription;