Я пытаюсь проанализировать аудиовыход из браузера, но не хочу, чтобы появлялось приглашение getUserMedia (которое запрашивает разрешение на использование микрофона). Источниками звука являются SpeechSynthesis и файл Mp3. Вот мой код:
return navigator.mediaDevices.getUserMedia({
audio: true
})
.then(stream => new Promise(resolve => {
const track = stream.getAudioTracks()[0];
this.mediaStream_.addTrack(track);
this._source = this.audioContext.createMediaStreamSource(this.mediaStream_);
this._source.connect(this.analyser);
this.draw(this);
}));
Этот код работает нормально, но запрашивает разрешение на использование микрофона! Я вообще не заинтересован в микрофоне, мне нужно только измерить аудиовыход. Если я проверю все доступные устройства:
navigator.mediaDevices.enumerateDevices()
.then(function(devices) {
devices.forEach(function(device) {
console.log(device.kind + ": " + device.label +
" id = " + device.deviceId);
});
})
Я получаю список доступных устройств в браузере, включая «аудиовыход». Итак, есть ли способ направить аудиовыход в медиапоток, который затем можно использовать внутри функции createMediaStreamSource? Я проверил всю документацию по аудио API, но не смог ее найти. Спасибо всем, кто может помочь!