Можно ли применить ограничения к работающей звуковой дорожке в реальном времени? У меня это не работает, по крайней мере, на Chrome v80.
Предположим, у меня есть поток:
const stream = await navigator.mediaDevices.getUserMedia({
audio: {
autoGainControl: true
channelCount: 2
echoCancellation: true
noiseSuppression: true
},
video: false
});
Теперь, позже я хочу изменить некоторые из этих параметров:
for (const track of stream.getAudioTracks()) {
track.applyConstraints({
autoGainControl: false,
echoCancellation: false,
noiseSuppression: false
});
}
Это не имеет никакого эффекта. Если я вызываю track.getConstraints()
, я вижу свои новые ограничения, но на слух они не действуют, пока я не перезагружу страницу и не применю их с самого начала. Кроме того, когда я вызываю track.getSettings()
, я вижу, что мои новые ограничения не применены.
Я также пытался вызвать track.enabled = false
перед применением ограничений, а затем track.enabled = true
, но безуспешно.
Любые советы о том, как заставить это работать, не делая новый вызов getUserMedia()
?