@vkontakte/calls-sdk 2.7.1 → 2.7.2-beta.1

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.
@@ -12,7 +12,7 @@ import UpdateDisplayLayoutErrorReason from '../enums/UpdateDisplayLayoutErrorRea
12
12
  import UserRole from '../enums/UserRole';
13
13
  import UserType from '../enums/UserType';
14
14
  import { JSONObject } from '../static/Json';
15
- import { AsrInfo } from '../types/Asr';
15
+ import { AsrInfo, IAsrStartParams } from '../types/Asr';
16
16
  import { IFeaturesPerRole } from '../types/ConversationFeature';
17
17
  import { ExternalParticipant, ExternalParticipantId, ExternalParticipantListChunk, ExternalUserId } from '../types/ExternalId';
18
18
  import MediaModifiers from '../types/MediaModifiers';
@@ -268,7 +268,7 @@ export default class Conversation extends EventEmitter {
268
268
  private _isCallAdmin;
269
269
  private _checkAdminRole;
270
270
  grantRoles(participantId: CompositeUserId, roles: UserRole[], revoke: boolean): Promise<void>;
271
- startAsr(): Promise<void>;
271
+ startAsr(params: IAsrStartParams): Promise<void>;
272
272
  stopAsr(): Promise<void>;
273
273
  requestAsr(request: boolean): Promise<void>;
274
274
  muteParticipant(participantId: ParticipantId | null, muteStates: MuteStates, requestedMedia?: MediaOption[], roomId?: number | null): Promise<void>;
@@ -299,15 +299,16 @@ export default class Conversation extends EventEmitter {
299
299
  activateRooms(roomIds: number[], deactivate: boolean): Promise<void>;
300
300
  switchRoom(toRoomId: number | null, participantId?: ParticipantId): Promise<void>;
301
301
  removeRooms(roomIds: number[]): Promise<void>;
302
- startStream(isRecord?: boolean, name?: string | null, movieId?: string | null, privacy?: 'PUBLIC' | 'FRIENDS' | 'DIRECT_LINK', groupId?: string | null, roomId?: number | null): Promise<SignalingMessage>;
303
- stopStream(roomId?: number | null): Promise<SignalingMessage>;
302
+ startStream(isRecord?: boolean, name?: string | null, movieId?: string | null, privacy?: 'PUBLIC' | 'FRIENDS' | 'DIRECT_LINK', groupId?: string | null, roomId?: number | null): Promise<never>;
303
+ stopStream(roomId?: number | null): Promise<never>;
304
304
  recordSetRole(participantId: ParticipantId, role: RecordRole | null, roomId?: number | null): Promise<void>;
305
305
  getStreamInfo(): Promise<{
306
306
  movieId: any;
307
307
  preview: any;
308
308
  }>;
309
- setLocalResolution(width: number, height: number, params?: {
310
- effect: IVideoDimentions;
309
+ setLocalResolution({ video, effect }: {
310
+ video: IVideoDimentions;
311
+ effect?: IVideoDimentions;
311
312
  }): Promise<void>;
312
313
  videoEffect(effect: IEffect | null): Promise<void>;
313
314
  getParticipants(parameters: IGetParticipantsParameters): Promise<ExternalParticipant[]>;
@@ -1,7 +1,7 @@
1
1
  import type { IEffect } from '@vkontakte/calls-video-effects';
2
2
  import EventEmitter from '../classes/EventEmitter';
3
3
  import MediaOption from '../enums/MediaOption';
4
- import MediaSettings from '../types/MediaSettings';
4
+ import MediaSettings, { IVideoDimentions } from '../types/MediaSettings';
5
5
  import { ScreenCaptureSettings } from '../types/ScreenCaptureSettings';
6
6
  export declare const enum MediaSourceEvent {
7
7
  SOURCE_CHANGED = "SOURCE_CHANGED",
@@ -45,12 +45,6 @@ export declare class MediaSource extends EventEmitter {
45
45
  addTrackToPeerConnection(pc: RTCPeerConnection, observer: boolean, noDataChannel: boolean, audioRed: boolean): void;
46
46
  getMediaSettings(): MediaSettings;
47
47
  changeDevice(kind: MediaDeviceKind): Promise<void>;
48
- /**
49
- * Освобождает все видео треки, полученные с камеры
50
- * На некоторых мобилках без этого нельзя переключить камеру
51
- * @hidden
52
- */
53
- stopVideoTrack(): Promise<void>;
54
48
  /**
55
49
  * Установка кастомного стрима для видео, например внешний шаринг экрана
56
50
  * или стрим из canvas
@@ -91,7 +85,10 @@ export declare class MediaSource extends EventEmitter {
91
85
  toggleAudio(enabled: boolean): Promise<void>;
92
86
  toggleAnimojiCapturing(enabled: boolean): void;
93
87
  onAnimojiSender(created: boolean): void;
94
- setResolution(width: number, height: number): Promise<void>;
88
+ setResolution({ video, effect }: {
89
+ video: IVideoDimentions;
90
+ effect?: IVideoDimentions;
91
+ }): Promise<void>;
95
92
  updateNoiseSuppression(): Promise<void>;
96
93
  videoEffect(effect: IEffect | null): Promise<void>;
97
94
  getAudioShareTrack(): MediaStreamTrack | null;
@@ -11,6 +11,7 @@ import SignalingCommandType from '../enums/SignalingCommandType';
11
11
  import SignalingConnectionType from '../enums/SignalingConnectionType';
12
12
  import UserRole from '../enums/UserRole';
13
13
  import { JSONObject } from '../static/Json';
14
+ import { IAsrStartParams } from '../types/Asr';
14
15
  import MediaModifiers from '../types/MediaModifiers';
15
16
  import MediaSettings from '../types/MediaSettings';
16
17
  import { IAddMovieParams, IUpdateMovieData } from '../types/MovieShare';
@@ -146,7 +147,7 @@ export default class Signaling extends BaseSignaling {
146
147
  readyToSend(): void;
147
148
  getParticipantListChunk(participantListChunkParameters: ParticipantListChunkParameters): Promise<SignalingMessage>;
148
149
  getParticipants(externalIds: SignalingMessage.ExternalId[]): Promise<SignalingMessage>;
149
- startAsr(): Promise<SignalingMessage>;
150
+ startAsr(params: IAsrStartParams): Promise<SignalingMessage>;
150
151
  stopAsr(): Promise<SignalingMessage>;
151
152
  requestAsr(request: boolean): Promise<SignalingMessage>;
152
153
  setAsrDataChannel(dataChannel: RTCDataChannel): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vkontakte/calls-sdk",
3
- "version": "2.7.1",
3
+ "version": "2.7.2-beta.1",
4
4
  "author": "vk.com",
5
5
  "description": "Library for video calls based on the vk.com platform",
6
6
  "homepage": "https://vk.com",
@@ -14,7 +14,7 @@
14
14
  "**/*.d.ts"
15
15
  ],
16
16
  "dependencies": {
17
- "@vkontakte/calls-video-effects": "1.0.6-beta.18",
17
+ "@vkontakte/calls-video-effects": "1.1.3",
18
18
  "@vkontakte/calls-vmoji": "1.0.5-beta.5",
19
19
  "@vkontakte/libvpx": "2.0.9",
20
20
  "bit-buffer": "0.2.5",
@@ -630,6 +630,16 @@ export type ParamsObject = {
630
630
  * (если ключ фичи отсутствует, или в ролях пустой массив, считаем фичу доступной для всех пользователей)
631
631
  */
632
632
  onFeaturesPerRoleChanged?: (featuresPerRole: IFeaturesPerRole) => void;
633
+ /**
634
+ * Начата текстовая расшифровка звонка
635
+ * @param initiatorId Id пользователя, запустившего расшифровку звонка
636
+ * @param movieId Id расшифровки
637
+ */
638
+ onAsrStarted?: (initiatorId: ExternalParticipantId, movieId: number) => void;
639
+ /**
640
+ * Закончена текстовая расшифровка звонка
641
+ */
642
+ onAsrStopped?: () => void;
633
643
  };
634
644
  export default abstract class Params {
635
645
  private static _params;
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * Вспомогательный плагин для работы с WebRTC
3
3
  */
4
+ import { IVideoDimentions } from '../types/MediaSettings';
4
5
  /**
5
6
  * Тип камеры мобильного устройства
6
7
  */
@@ -14,55 +15,6 @@ export declare enum FacingMode {
14
15
  */
15
16
  ENVIRONMENT = "environment"
16
17
  }
17
- /**
18
- * @hidden
19
- */
20
- export declare namespace FacingMode {
21
- function contains(item: string | FacingMode): boolean;
22
- }
23
- /********************* MediaConstraints *********************/
24
- /**
25
- * Вспомогательный класс для формирования параметров, которые нужны для запроса камеры и микрофона.
26
- * @hidden
27
- */
28
- declare class MediaConstraints {
29
- protected audio: MediaTrackConstraints | boolean;
30
- protected video: MediaTrackConstraints | boolean;
31
- private readonly needVideo;
32
- constructor(audioDeviceId: boolean | string, videoDeviceId?: boolean | string, videoMaxWidth?: number, videoMaxHeight?: number);
33
- /**
34
- * Возвращает нативные параметры для передачи в getUserMedia.
35
- */
36
- getNative(): MediaStreamConstraints;
37
- /**
38
- * Метод упрощает параметры, чтобы попробовать сделать getUserMedia еще раз при ошибке.
39
- * Сначала убираются размеры, потом соотношения сторон.
40
- */
41
- simplify(): MediaConstraints;
42
- /**
43
- * Проверяет, можно ли упростить параметры.
44
- */
45
- canSimplify(): boolean;
46
- /**
47
- * Проверяет, есть ли параметры видео.
48
- */
49
- isVideo(): boolean;
50
- /**
51
- * Проверяет, есть ли параметры аудио.
52
- */
53
- isAudio(): boolean;
54
- }
55
- /********************* /MediaConstraints *********************/
56
- /********************* ScreenConstraints *********************/
57
- /**
58
- * Вспомогательный класс для формирования параметров, которые нужны для запроса трансляции экрана.
59
- * @hidden
60
- */
61
- export declare class ScreenConstraints extends MediaConstraints {
62
- readonly captureController: CaptureController | null;
63
- constructor(width: number, height: number, frameRate: number, withAudioShare: boolean);
64
- getNative(): MediaStreamConstraints;
65
- }
66
18
  declare namespace WebRTCUtils {
67
19
  /**
68
20
  * Инициализирует устройства. До вызова этого метода бесполезно опрашивать другие публичные методы
@@ -118,6 +70,10 @@ declare namespace WebRTCUtils {
118
70
  function hasPermissions(needVideo?: boolean): boolean;
119
71
  /**
120
72
  * Запрашивает камеру и микрофон пользователя
73
+ *
74
+ * @param needVideo Нужно ли видео
75
+ * @param needAudio Нужно ли аудио
76
+ * @param needEmptyTracks Добавлять ли в стрим пустые треки для отключенного видео/аудио
121
77
  */
122
78
  function getUserMedia(needVideo?: boolean, needAudio?: boolean, needEmptyTracks?: boolean): Promise<MediaStream>;
123
79
  /**
@@ -128,9 +84,9 @@ declare namespace WebRTCUtils {
128
84
  * Запрашивает камеру пользователя
129
85
  *
130
86
  * @param deviceId ID устройства
131
- * @param effectEnabled Включен ли эффект видео
87
+ * @param resolution Размеры видео
132
88
  */
133
- function getUserVideo(deviceId?: string, effectEnabled?: boolean): Promise<MediaStream>;
89
+ function getUserVideo(deviceId?: string, resolution?: IVideoDimentions): Promise<MediaStream>;
134
90
  /**
135
91
  * Запрашивает микрофон пользователя
136
92
  *
package/types/Asr.d.ts CHANGED
@@ -9,3 +9,12 @@ export interface AsrTranscription {
9
9
  timestamp: number;
10
10
  duration: number;
11
11
  }
12
+ /**
13
+ * Параметры расшифровки звонка
14
+ */
15
+ export interface IAsrStartParams {
16
+ /**
17
+ * Наименование файла в который сохранится расшифровка
18
+ */
19
+ name: string;
20
+ }
@@ -17,7 +17,6 @@ import MuteStates from './MuteStates';
17
17
  import { CompositeUserId, OkUserId, ParticipantId, ParticipantListMarker as ParticipantParticipantListMarker, ParticipantListMarkers, ParticipantListType as ParticipantParticipantListType } from './Participant';
18
18
  import VideoSettings from './VideoSettings';
19
19
  import { ChatRoom } from './WaitingHall';
20
- type SignalingMessage = Record<string, any>;
21
20
  export type RecordInfo = {
22
21
  initiator: ParticipantId;
23
22
  recordMovieId: number;
package/utils/Media.d.ts CHANGED
@@ -1,4 +1,6 @@
1
+ import { IVideoDimentions } from '../types/MediaSettings';
1
2
  export declare const stopMediaStreamTrack: (track: MediaStreamTrack) => void;
2
3
  export declare const stopMediaStreamTracks: (stream: MediaStream) => void;
3
4
  export declare const stopMediaStreamVideoTracks: (stream: MediaStream) => void;
4
5
  export declare const cloneVideoTrack: (stream: MediaStream) => MediaStreamTrack;
6
+ export declare function setVideoResolution(track: MediaStreamTrack, { width, height }: IVideoDimentions): Promise<void>;
@@ -1 +0,0 @@
1
- import 'jasmine-ajax';
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};