У меня есть приложение, хранящееся на сервере IBM, где одно и то же приложение используется несколькими людьми. У нас есть функция, в которой нам нужно выполнять этот конкретный фрагмент кода в одно и то же время для нескольких человек. Как я могу этого добиться? Особенность заключается в том, что конкретный человек инициирует функцию записи, которая откроет микрофоны каждого человека. Это достигается за счет сохранения переменной, значение которой я устанавливаю и устанавливаю, но когда я заканчиваю запись, человек, который немедленно заканчивает, запускается код, но для других людей требуется несколько миллисекунд и даже секунд, чтобы выполнить тот же кусок кода. ? Любая помощь, как я могу решить эту проблему.
render () {
this.props.meetingData.isMeetingDiscussionStarted ? this.recordFullAudio() : null;
!this.props.meetingData.isMeetingDiscussionStarted ? this.stopRecordingAudio() : null;
}
recordFullAudio = () => {
const constraints = {
audio: {
channels: 1
},
video: false
};
getUserMedia(constraints)
.then(stream => {
this.stream = stream;
const mimeType = 'audio/mpeg';
const mime = ['audio/wav', 'audio/mpeg', 'audio/webm', 'audio/ogg']
.filter(MediaRecorder.isTypeSupported)[0];
const options = {
mimeType: 'audio/webm',
};
this.mediaRecorder = new MediaRecorder(stream);
this.mediaRecorder.addEventListener('dataavailable', event => {
audioChunks.push(event.data);
});
this.mediaRecorder.addEventListener('stop', () => { });
}).catch(error => { });
}
stopRecordingAudio = () => {
if (this.mediaRecorder && this.mediaRecorder.state !== 'inactive') {
this.mediaRecorder.stop();
this.stream.getTracks().forEach((track) => {
track.stop();
});
}
// Cleanup
this.mediaRecorder = null;
this.stream = null;
}
isMeetingDiscussionStarted
- это та переменная, которая поддерживается в NodeJS sharedb do c, которая используется для начала и завершения записи.