我正在尝试分析浏览器的音频输出,但我不希望出现 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 的所有文档,但找不到。感谢任何可以提供帮助的人!