我一直在使用web audio api并创建了一个上下文,并用数据填充了一个源缓冲区。它可以在默认输出设备上播放,但我不了解如何选择目的地。在旧的w3规范中,您可以将正确的deviceId传递给音频上下文构造函数,但是我无法在不使用媒体元素的情况下弄清楚如何执行此操作。有什么建议吗?
source = context.createBufferSource()
source.loop = true;
source.buffer = globalAudioBuffer;
source.connect(context.destination);
context.resume();
source.start(0);
答案 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()
。