如何使用Web Audio Api选择目标输出设备

时间:2017-01-25 22:46:06

标签: api audio web web-audio-api

我一直在使用web audio api并创建了一个上下文,并用数据填充了一个源缓冲区。它可以在默认输出设备上播放,但我不了解如何选择目的地。在旧的w3规范中,您可以将正确的deviceId传递给音频上下文构造函数,但是我无法在不使用媒体元素的情况下弄清楚如何执行此操作。有什么建议吗?

source = context.createBufferSource()
source.loop = true;
source.buffer = globalAudioBuffer;
source.connect(context.destination);
context.resume();
source.start(0);

1 个答案:

答案 0 :(得分:3)

不幸的是,设置webaudio图表的目标音频设备尚未实现,而且这个api尚未最终确定。

您现在可以做的是将webaudio图表连接到HTML元素,set the sinkid of the element(目前仅适用于Chrome)

这是一个简单的例子:

var ac = new AudioContext();
var audio = new Audio();
var o = ac.createOscillator();
o.start();
var dest = ac.createMediaStreamDestination();
o.connect(dest);
audio.src = URL.createObjectURL(dest.stream);
audio.play();

现在你的振荡器将播放音频元素和 您现在可以使用已连接输出设备的deviceId调用audio.setSinkId()