Skip to content

Запись звонков

SDK позволяет записывать звонки и управлять отображением участников в записи.

Начало записи

Для начала записи используется метод SDK.startStream:

javascript
await SDK.startStream(
    isRecord,   // true - запись, false - трансляция
    name,       // Название видеоролика
    movieId,    // ID видео (опционально)
    privacy,    // 'PUBLIC' | 'FRIENDS' | 'DIRECT_LINK'
    groupId,    // ID группы (опционально)
    roomId      // ID комнаты (null для основного зала)
);

Пример:

javascript
// Начать запись с названием
await SDK.startStream(true, 'Запись совещания', null, 'DIRECT_LINK', null, null);

Остановка записи

javascript
// Остановить запись
await SDK.stopStream(roomId);

// Остановить без сохранения
await SDK.stopStream(roomId, true);

Роли участников в записи

Метод SDK.recordSetConf позволяет управлять тем, какие участники будут видны в записи:

  • king — участник, который показывается крупно (только один)
  • pawns — остальные участники, которые будут видны в записи

Важно

Если хотя бы у одного участника установлена роль, в записи будут видны только те участники, у кого есть роль.

javascript
import { ExternalIdType } from '@vkontakte/calls-sdk';

// Установить главного участника (king)
const king = { id: 'user123', type: ExternalIdType.USER };

// Установить остальных видимых участников (pawns)
const pawns = [
    { id: 'user456', type: ExternalIdType.USER },
    { id: 'user789', type: ExternalIdType.USER }
];

await SDK.recordSetConf(
    king,                   // Главный участник
    pawns,                  // Остальные участники
    false,                  // Скрыть количество невидимых участников
    null                    // roomId (null для основного зала)
);

Публикация записи

После завершения записи её можно опубликовать:

javascript
await SDK.publishStream(roomId);

Получение информации о записи

javascript
const streamInfo = await SDK.getStreamInfo();
console.log(streamInfo);

События записи

Для отслеживания состояния записи используйте коллбэки в SDK.init:

javascript
await SDK.init({
    // ...другие параметры
    
    // Запись началась
    onRecordStarted: (initiator, recordMovieId, recordStartTime, recordType) => {
        console.log('Запись начата:', recordMovieId);
    },
    
    // Запись остановлена
    onRecordStopped: () => {
        console.log('Запись завершена');
    }
});