Работа с потоками медиаданных
Раздел содержит примеры работы с потоками медиаданных (MediaStream) внутри конференций.
Подробнее о работе с медиаданными читайте в разделе Работа с источниками медиаданных
Подключение и отключение потоков медиаданных к комнате
Пример подключения:
await room.setUserAudioInput(audioInputMediaStream);
await room.setUserVideoInput(videoInputMediaStream);
await room.setDisplayVideoInput(displayVideoInputMediaStream);
Пример отключения:
await room.setUserAudioInput();
await room.setUserVideoInput();
await room.setDisplayVideoInput();
Отключение и включение медиапотока локального пользователя
Отключение медиапотока (mute):
await room.muteAudioInput(true);
await room.muteVideoInput(true);
await room.muteDisplayVideoInput(true);
Включение медиапотока:
await room.muteAudioInput(false);
await room.muteVideoInput(false);
await room.muteDisplayVideoInput(false);
Видео участников
Вы получите видеопоток участника только после подключения созданного потока к конференции и только если участник решил поделиться видео.
Чтобы понять, есть ли видео от участника, подпишитесь на события добавления видеопотоков. После этого выполняйте запросы получения видео с заданными параметрами:
import { handleEvent, USER_MEDIA_TYPE } from '@salutejs/jazz-sdk-web';
const unsubscribe = handleEvent(room.event$, 'addTrack', ({ payload }) => {
if (payload.mediaType === USER_MEDIA_TYPE.VIDEO) {
// Видеопоток всегда имеет принадлежность к участнику
payload.participantId;
// Полученный MediaStream можно использовать для отображения видео
payload.stream;
}
});
unsubscribe();
Вы можете получить видеопоток определенного участника:
const mediaStream = room.getVideoStream(payload.participantId, {
source: 'user',
});
Плагин videoElementPoolPlugin
упрощает работу с видео в SaluteJazz SDK для Web.
Аудио участников
Вы получите аудиопоток участника только после подключения созданного потока к конференции и только если участник решил поделиться видео.
Чтобы понять, есть ли аудио от участника, подпишитесь на события добавления аудиопотоков. После этого выполняйте запросы получения аудио с заданными параметрами:
import { handleEvent, USER_MEDIA_TYPE } from '@salutejs/jazz-sdk-web';
const unsubscribe = handleEvent(room.event$, 'addTrack', ({ payload }) => {
if (payload.mediaType === USER_MEDIA_TYPE.AUDIO) {
// Трек всегда имеет принадлежность к участнику
payload.participantId;
// Полученный MediaStream можно использовать для воспроизведения звука на странице
payload.stream;
}
});
unsubscribe();
Плагин audioOutputMixerPlugin
упрощает работу с аудио в SaluteJazz SDK для Web.