В настоящее время я запускаю музыкальное приложение с помощью HTML5/JS и пытаюсь добиться минимальной задержки с помощью API записи MediaStream. Приложение позволяет пользователю записывать музыку с помощью камеры и микрофона. Пока камера и микрофон включены, код позволит пользователю слышать и видеть себя.
На данный момент у меня есть:
const stream = await navigator.mediaDevices.getUserMedia(
{
video: true,
audio: {
latency: {exact: 0.003},
}
}
);
// monitor video and audio (i.e. show it to the user)
this.video.srcObject = stream;
this.video.play();
Если я уменьшу требование к задержке, я получу ошибку OverConstrained. Задержка в порядке (лучше, чем по умолчанию), но все же не подходит для того, чтобы слышать себя во время записи. Есть небольшое заметное отставание от того, когда вы играете на гитаре и слышите ее в наушниках.
Есть ли другие оптимизации, которые я могу сделать для достижения лучших результатов? Я не забочусь о качестве видео и звука, поэтому, возможно, здесь может помочь снижение разрешения, частоты дискретизации и т. д.?