Итак, я работаю над небольшим электронным настольным приложением, которое захватывает экран рабочего стола и записывает видео и аудио. Когда я пытаюсь добавить аудио в поток, он начинает очень плохо отражаться, и я не уверен, почему.
Я использую:
- Windows 10 PRO 18362.778
- Chrome 81.0.4044.113
- Электрон 8.2.3
Вот некоторый код.
Я создаю эти ограничения, когда хочу захватить и записать только видео:
const constraints = {
audio: false,
video: {
mandatory: {
chromeMediaSource: 'desktop',
chromeMediaSourceId: source.id
}
}
}
Затем я передаю это потоку так:
const stream = await navigator.mediaDevices.getUserMedia(constraints)
Это работает как шарм. Однако, когда я начинаю добавлять аудио, это дает мне эхо:
const constraints = {
audio: {
mandatory: {
chromeMediaSource: 'desktop',
}
},
video: {
mandatory: {
chromeMediaSource: 'desktop',
}
}
}
Кроме того, я не могу просто установить звук на true. Затем он дает мне эту ошибку:
Uncaught (в обещании) DOMException: Ошибка запуска захвата экрана
Интересный факт. Когда я go до страницы документации Mozilla об аудио ограничениях и использую демо-кнопку, это также дает мне эхо. Я пытался сделать это на Edge, и результат получился лучше, но все же имел эхо. Так может ли это быть аудиокод c?
Здесь говорит, что ограничение echoCancellation поддерживается и включено по умолчанию, начиная с Chrome версии 62.
Здесь - это ветвь на Github где я пытался найти решение, но не смог.
Здесь - это мое git репо, если вы хотите посмотреть на него более внимательно.
PS: это мое первый пост здесь. Дайте мне знать, если я сделал что-то не так и могу улучшить пост. Спасибо!