Как дать возможность отключить всех участников в amazon chime?
Мне нужно дать возможность одному участнику отключить звук для всех остальных участников с помощью amazon chime. Я использую amazon-chime-sdk-js.
1 ответ
Currently, there is no for mute/unmute Remote Attendee or mute all/unmute all option available in Amazon Chime SDK But yes we can use real-time messaging to achive this
Добавлять
realtimeSubscribeToReceiveDataMessage
на
{channel-name}
поэтому, когда пользователь присоединяется к собранию, он получит сообщение по этому каналу.
Как указано в приведенном ниже фрагменте кода
const realtimeSubscribeToReceiveGeneralDataMessage = async () => {
chime.audioVideo &&
(await chime.audioVideo.realtimeSubscribeToReceiveDataMessage(MessageTopic.GeneralDataMessage, async (data) => {
const receivedData = (data && data.json()) || {};
const { type, attendeeId } = receivedData || {};
if (attendeeId !== chime.attendeeId && type === 'MUTEALL') {
chime.audioVideo && (await chime.audioVideo.realtimeMuteLocalAudio());
} else if (attendeeId !== chime.attendeeId && type === 'STOPALLVIDEO') {
chime.audioVideo && (await chime.audioVideo.stopLocalVideoTile());
}
}));
Где
chime.attendeeId
ваш идентификатор участника и
GeneralDataMessage
это имя канала И вам нужно добавить кнопку, чтобы отключить все и остановить все видео
<Button
type="button"
onClick={() => {
chime.sendMessage(MessageTopic.GeneralDataMessage, {
type: 'MUTEALL',
});
}}
>
{'Mute All'}
</Button>
<Button
type="button"
onClick={() => {
chime.sendMessage(MessageTopic.GeneralDataMessage, {
type: 'STOPALLVIDEO',
});
}}
>
{'Stop All Video'}
</Button>
Вот способ отправки сообщений всем удаленным участникам через канал
sendMessage = (data) => {
new AsyncScheduler().start(() => {
const payload = {
...data,
attendeeId: this.attendeeId || '',
name: this.rosterName || '',
};
this.audioVideo &&
this.audioVideo.realtimeSendDataMessage(MessageTopic.GeneralDataMessage, payload, ChimeSdkWrapper.DATA_MESSAGE_LIFETIME_MS);
this.publishMessageUpdate(
new DataMessage(
Date.now(),
MessageTopic.GeneralDataMessage,
new TextEncoder().encode(payload),
this.meetingSession.configuration.credentials.attendeeId || '',
this.meetingSession.configuration.credentials.externalUserId || '',
),
);
});
Вот вопрос для справки: нажмите здесь