@vkontakte/calls-sdk 2.8.5-dev.87544199.0 → 2.8.5-dev.8b1faf52.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.
- package/CallsSDK.d.ts +15 -2
- package/calls-sdk.cjs.js +8 -8
- package/calls-sdk.esm.js +8 -8
- package/classes/Conversation.d.ts +2 -1
- package/classes/MediaSource.d.ts +13 -5
- package/classes/codec/IDecoder.d.ts +1 -1
- package/classes/codec/LibVPxDecoder.d.ts +1 -1
- package/classes/codec/LibVPxEncoder.d.ts +0 -3
- package/classes/codec/WebCodecsDecoder.d.ts +1 -1
- package/package.json +3 -2
- package/static/Params.d.ts +10 -1
- package/static/Utils.d.ts +2 -2
- package/static/WebRTCUtils.d.ts +2 -2
- package/types/SignalingMessage.d.ts +5 -0
|
@@ -76,7 +76,6 @@ export default class Conversation extends EventEmitter {
|
|
|
76
76
|
payload?: string;
|
|
77
77
|
}): Promise<ConversationData>;
|
|
78
78
|
private _onJoinPart2;
|
|
79
|
-
private _processConnectionRoomsInfo;
|
|
80
79
|
private _extractExternalRooms;
|
|
81
80
|
private _extractExternalRoomsData;
|
|
82
81
|
onPush(conversationId: string, type?: UserType, peerId?: number): Promise<void>;
|
|
@@ -143,6 +142,7 @@ export default class Conversation extends EventEmitter {
|
|
|
143
142
|
* @param connection
|
|
144
143
|
*/
|
|
145
144
|
private _processRooms;
|
|
145
|
+
private _extractConnectionPersonalMuteStates;
|
|
146
146
|
/**
|
|
147
147
|
* Обрабатывает информацию о мьютах в основном и сессионных залах
|
|
148
148
|
* @param connection
|
|
@@ -286,6 +286,7 @@ export default class Conversation extends EventEmitter {
|
|
|
286
286
|
effect?: IVideoDimentions;
|
|
287
287
|
}): Promise<void | undefined>;
|
|
288
288
|
videoEffect(effect: IEffect | null): Promise<void | undefined>;
|
|
289
|
+
audioEffect(effects: string[] | null, isPreset?: boolean): Promise<void | undefined>;
|
|
289
290
|
_convertExternalIdsToServerExternalIds(externalIds: ExternalId[]): SignalingMessage.ExternalId[];
|
|
290
291
|
getParticipants(parameters: IGetParticipantsParameters): Promise<ExternalParticipant[]>;
|
|
291
292
|
getParticipantListChunk(participantListChunkParameters: ParticipantListChunkParameters): Promise<ExternalParticipantListChunk>;
|
package/classes/MediaSource.d.ts
CHANGED
|
@@ -18,6 +18,10 @@ export declare const enum MediaTrackKind {
|
|
|
18
18
|
'screen' = "screen",
|
|
19
19
|
'audioshare' = "audioshare"
|
|
20
20
|
}
|
|
21
|
+
interface AudioEffectParams {
|
|
22
|
+
effects: string[];
|
|
23
|
+
isPreset?: boolean;
|
|
24
|
+
}
|
|
21
25
|
export declare class MediaSource extends EventEmitter {
|
|
22
26
|
/** Стрим с камеры и микрофона пользователя */
|
|
23
27
|
protected _stream: MediaStream | null;
|
|
@@ -25,14 +29,17 @@ export declare class MediaSource extends EventEmitter {
|
|
|
25
29
|
private _audioShareTrack;
|
|
26
30
|
/** Трек для отправки в медиа-канал. Может отличаться при скриншаринге в дата-канал */
|
|
27
31
|
private _sendVideoTrack;
|
|
28
|
-
/** Трек с камеры. В стриме будет другой трек при включенных эффектах */
|
|
32
|
+
/** Трек с камеры. В стриме будет другой трек при включенных видео эффектах */
|
|
29
33
|
private _cameraVideoTrack;
|
|
34
|
+
/** Трек с микрофона. В стриме будет другой трек при включенных аудио эффектах */
|
|
35
|
+
private _micAudioTrack;
|
|
36
|
+
/** Трек аудио эффектов. Не изменяется на протяжении всего времени */
|
|
37
|
+
private _audioEffectsTrack;
|
|
30
38
|
private _mediaSettings;
|
|
31
39
|
private _videoStatusOnScreenCapturingEnabled;
|
|
32
40
|
private _effect;
|
|
41
|
+
private _audioEffectParams;
|
|
33
42
|
private _onDeviceChange;
|
|
34
|
-
/** MediaSource занят при переключении камеры или микрофона */
|
|
35
|
-
private _sourceBusy;
|
|
36
43
|
/** Состояние выключателя Animoji в UI */
|
|
37
44
|
private _animojiEnabled;
|
|
38
45
|
constructor();
|
|
@@ -60,13 +67,12 @@ export declare class MediaSource extends EventEmitter {
|
|
|
60
67
|
* Может использоваться для тестирования.
|
|
61
68
|
*/
|
|
62
69
|
setAudioStream(stream: MediaStream): Promise<void>;
|
|
63
|
-
private _busy;
|
|
64
|
-
private _free;
|
|
65
70
|
private _changeAudioInput;
|
|
66
71
|
private _changeScreen;
|
|
67
72
|
private _disableScreenCapture;
|
|
68
73
|
private disableAudioShare;
|
|
69
74
|
private stopAudioShareTrack;
|
|
75
|
+
private _applyAudioEffect;
|
|
70
76
|
protected getSilentAudioShareTrack(): MediaStreamTrack;
|
|
71
77
|
protected _replaceLocalTrack(newTrack: MediaStreamTrack, sendTrack?: MediaStreamTrack): Promise<void>;
|
|
72
78
|
private _setEffect;
|
|
@@ -84,5 +90,7 @@ export declare class MediaSource extends EventEmitter {
|
|
|
84
90
|
}): Promise<void>;
|
|
85
91
|
updateNoiseSuppression(): Promise<void>;
|
|
86
92
|
videoEffect(effect: IEffect | null): Promise<void>;
|
|
93
|
+
audioEffect(audioEffectParams: AudioEffectParams | null): Promise<void>;
|
|
87
94
|
getAudioShareTrack(): MediaStreamTrack | null;
|
|
88
95
|
}
|
|
96
|
+
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export default interface IDecoder {
|
|
2
|
-
init(onFrameImage: (image: VideoFrame | ImageData) => void): Promise<void>;
|
|
2
|
+
init(onFrameImage: (image: VideoFrame | ImageData) => void, onFrameError?: (error: unknown) => void): Promise<void>;
|
|
3
3
|
decodeFrame(timestamp: number, data: Uint8Array, isVP9: boolean, keyFrame?: boolean): void;
|
|
4
4
|
destroy(): void;
|
|
5
5
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import IDecoder from './IDecoder';
|
|
2
2
|
import WorkerBase from './WorkerBase';
|
|
3
3
|
export default class LibVPxDecoder extends WorkerBase implements IDecoder {
|
|
4
|
-
init(onFrameImage: (image: ImageData) => void): Promise<void>;
|
|
4
|
+
init(onFrameImage: (image: ImageData) => void, onFrameError: (error: unknown) => void): Promise<void>;
|
|
5
5
|
decodeFrame(timestamp: number, data: Uint8Array, isVP9: boolean, keyFrame?: boolean): void;
|
|
6
6
|
destroy(): void;
|
|
7
7
|
static isBrowserSupported(): boolean;
|
|
@@ -11,8 +11,6 @@ export default class LibVPxEncoder extends WorkerBase implements IEncoder {
|
|
|
11
11
|
private _imageCapture;
|
|
12
12
|
private _canvas;
|
|
13
13
|
private _canvasCtx;
|
|
14
|
-
private _stream;
|
|
15
|
-
private _track;
|
|
16
14
|
private _frameReadTimeout;
|
|
17
15
|
private _lastFrame;
|
|
18
16
|
constructor(sourceTrack: MediaStreamTrack, onFrame: OnFrameCallback, useCongestionControl: boolean, maxBitrate: number);
|
|
@@ -23,7 +21,6 @@ export default class LibVPxEncoder extends WorkerBase implements IEncoder {
|
|
|
23
21
|
private _drawFrameVideo;
|
|
24
22
|
private _getFrameBitmap;
|
|
25
23
|
private _drawFrameData;
|
|
26
|
-
private _requestCanvasFrame;
|
|
27
24
|
init(): Promise<void>;
|
|
28
25
|
private _encode;
|
|
29
26
|
private _requestFrameVideo;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import IDecoder from './IDecoder';
|
|
2
2
|
import WorkerBase from './WorkerBase';
|
|
3
3
|
export default class WebCodecsDecoder extends WorkerBase implements IDecoder {
|
|
4
|
-
init(onFrameImage: (frame: VideoFrame) => void): Promise<void>;
|
|
4
|
+
init(onFrameImage: (frame: VideoFrame) => void, onFrameError: (error: unknown) => void): Promise<void>;
|
|
5
5
|
decodeFrame(timestamp: number, data: Uint8Array, isVP9: boolean, keyFrame?: boolean): void;
|
|
6
6
|
destroy(): void;
|
|
7
7
|
static isBrowserSupported(): boolean;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vkontakte/calls-sdk",
|
|
3
|
-
"version": "2.8.5-dev.
|
|
3
|
+
"version": "2.8.5-dev.8b1faf52.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",
|
|
@@ -14,8 +14,9 @@
|
|
|
14
14
|
"**/*.d.ts"
|
|
15
15
|
],
|
|
16
16
|
"dependencies": {
|
|
17
|
+
"@vkontakte/calls-audio-effects": "1.2.2",
|
|
17
18
|
"@vkontakte/calls-video-effects": "2.2.3-beta.2",
|
|
18
|
-
"@vkontakte/calls-vmoji": "1.0.10-beta.
|
|
19
|
+
"@vkontakte/calls-vmoji": "1.0.10-beta.8",
|
|
19
20
|
"@vkontakte/libvpx": "2.0.9",
|
|
20
21
|
"bit-buffer": "0.2.5",
|
|
21
22
|
"messagepack": "1.1.12",
|
package/static/Params.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { VideoEffects } from '@vkontakte/calls-video-effects';
|
|
2
|
+
import type { EffectVoiceChange } from '@vkontakte/calls-audio-effects';
|
|
2
3
|
import type * as Vmoji from '@vkontakte/calls-vmoji';
|
|
3
4
|
import { IAsrData } from '../types/Asr';
|
|
4
5
|
import { ConversationData } from '../types/Conversation';
|
|
@@ -159,6 +160,12 @@ export type ParamsObject = {
|
|
|
159
160
|
* Можно установить позднее методом `setVideoEffects`
|
|
160
161
|
*/
|
|
161
162
|
videoEffects: VideoEffects | null;
|
|
163
|
+
/**
|
|
164
|
+
* Экземпляр класса `AudioEffects` из [`@vkontakte/calls-audio-effects`](https://npmjs.com/package/@vkontakte/calls-audio-effects)
|
|
165
|
+
*
|
|
166
|
+
* Можно установить позднее методом `setAudioEffects`
|
|
167
|
+
*/
|
|
168
|
+
audioEffects: EffectVoiceChange | null;
|
|
162
169
|
/**
|
|
163
170
|
* Максимальная ширина видео в пикселях для видео эффекта
|
|
164
171
|
*
|
|
@@ -244,7 +251,7 @@ export type ParamsObject = {
|
|
|
244
251
|
* Отдавать приоритет кодеку VP9 для исходящего видео,
|
|
245
252
|
* если preferH264 тоже выставлен в true то первый приоритет будет у VP9, второй у H264
|
|
246
253
|
*
|
|
247
|
-
* _По умолчанию: `
|
|
254
|
+
* _По умолчанию: `false`_
|
|
248
255
|
*/
|
|
249
256
|
preferVP9: boolean;
|
|
250
257
|
/** @hidden */
|
|
@@ -883,6 +890,8 @@ export default abstract class Params {
|
|
|
883
890
|
static get videoFacingMode(): FacingMode | null;
|
|
884
891
|
static set videoFacingMode(value: FacingMode | null);
|
|
885
892
|
static get displaySurface(): DisplayCaptureSurfaceType;
|
|
893
|
+
static get audioEffects(): EffectVoiceChange | null;
|
|
894
|
+
static set audioEffects(value: EffectVoiceChange | null);
|
|
886
895
|
static get videoEffects(): VideoEffects | null;
|
|
887
896
|
static set videoEffects(value: VideoEffects | null);
|
|
888
897
|
static get videoEffectMaxWidth(): number;
|
package/static/Utils.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export declare const PARAMETERS_SEPARATOR = ":";
|
|
|
7
7
|
export declare const DEVICE_IDX_PARAMETER = "d";
|
|
8
8
|
/** @hidden */
|
|
9
9
|
declare namespace Utils {
|
|
10
|
-
function patchLocalSDP(sdp: string, preferH264: boolean,
|
|
10
|
+
function patchLocalSDP(sdp: string, preferH264: boolean, brokenH264Decoder: boolean, preferVP9: boolean, h264spsPpsIdrInKeyframe: boolean, isAudioNack?: boolean, preferRed?: boolean): string;
|
|
11
11
|
function patchRemoteSDP(sdp: string, oldDataChannelDescription: boolean, preferH264: boolean, brokenH264: boolean, preferVP9: boolean, brokenVP9Encoder: boolean, brokenVP9Decoder: boolean): string;
|
|
12
12
|
function getPeerIdString(peerId: SignalingMessage.PeerId): string;
|
|
13
13
|
function comparePeerId(peerId1: SignalingMessage.PeerId, peerId2: SignalingMessage.PeerId): boolean;
|
|
@@ -31,7 +31,7 @@ declare namespace Utils {
|
|
|
31
31
|
deviceIdx: number;
|
|
32
32
|
};
|
|
33
33
|
function uuid(): string;
|
|
34
|
-
function
|
|
34
|
+
function debounce(func: Function, ms: number): (this: any) => void;
|
|
35
35
|
function sdpFingerprint(sdp: string): bigint | null;
|
|
36
36
|
function delay(time: number): Promise<unknown>;
|
|
37
37
|
function applySettings(pc: RTCPeerConnection, videoSettings: VideoSettings, prevSettings: any): any;
|
package/static/WebRTCUtils.d.ts
CHANGED
|
@@ -121,9 +121,9 @@ declare namespace WebRTCUtils {
|
|
|
121
121
|
*/
|
|
122
122
|
function isScreenCapturingSupported(): boolean;
|
|
123
123
|
/**
|
|
124
|
-
* В некоторых браузерах H264 сломан
|
|
124
|
+
* В некоторых браузерах H264 decoder сломан
|
|
125
125
|
*/
|
|
126
|
-
function
|
|
126
|
+
function isBrokenH264Decoder(): boolean;
|
|
127
127
|
/**
|
|
128
128
|
* В некоторых браузерах VP9 encoder сломан
|
|
129
129
|
*/
|
|
@@ -6,6 +6,7 @@ import ConversationOption from '../enums/ConversationOption';
|
|
|
6
6
|
import FatalError from '../enums/FatalError';
|
|
7
7
|
import HangupType from '../enums/HangupType';
|
|
8
8
|
import MediaOption from '../enums/MediaOption';
|
|
9
|
+
import MuteState from '../enums/MuteState';
|
|
9
10
|
import ParticipantState from '../enums/ParticipantState';
|
|
10
11
|
import RoomsEventType from '../enums/RoomsEventType';
|
|
11
12
|
import SignalingCommandType from '../enums/SignalingCommandType';
|
|
@@ -332,6 +333,8 @@ declare namespace SignalingMessage {
|
|
|
332
333
|
mediaModifiers: MediaModifiers;
|
|
333
334
|
conversation: Conversation;
|
|
334
335
|
participants?: ParticipantListChunk;
|
|
336
|
+
muteState?: MuteState;
|
|
337
|
+
muteOptions?: MediaOption[];
|
|
335
338
|
}
|
|
336
339
|
export interface ChatRoomUpdated extends Notification {
|
|
337
340
|
eventType: ChatRoomEventType;
|
|
@@ -368,6 +371,8 @@ declare namespace SignalingMessage {
|
|
|
368
371
|
rooms: Room[];
|
|
369
372
|
roomId?: number;
|
|
370
373
|
};
|
|
374
|
+
muteState?: MuteState;
|
|
375
|
+
muteOptions?: MediaOption[];
|
|
371
376
|
}
|
|
372
377
|
export interface Feedback extends Notification {
|
|
373
378
|
feedback: IFeedback[];
|