Запись звонков
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('Запись завершена');
}
});