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

标签 api audio web web-audio-api

我一直在使用网络音频 API 并创建了一个上下文,并用数据填充了源缓冲区。它在默认输出设备上运行良好,但我不明白如何选择目的地。在旧的 w3 规范中,您可以将正确的 deviceId 传递给音频上下文构造函数,但我现在不知道如何在不使用媒体元素的情况下执行此操作。有什么建议吗?

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

最佳答案

不幸的是,设置网络音频图的目标音频设备尚未实现,并且其 API 尚未最终确定。

您现在可以做的是将网络音频图连接到 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()

关于api - 如何使用 Web Audio Api 选择目标输出设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41863094/

相关文章:

iphone - Foursquare iPhone API 附近的地方

java - 我应该在我的类图中包含属于 java API 一部分的类吗?

audio - 音频信号的数字信号处理

java - 元素返回空字符串

docker - Keyvault 无法在通过 Visual Studio 中的 Docker 运行的应用程序中运行

javascript - 是否可以使用 socket.io 取消订阅 MtGox API channel ?

web - Web音频过滤器节点弹出

iphone - 如何在 OpenAL 或 Core Audio 中调整 Head-related transfer function (HRTF)?

Java - 从需要登录的网站读取数据

html - iOS 在网站上放置白条