【发布时间】:2019-12-25 20:59:37
【问题描述】:
我正在尝试开发一个可以播放音频并包含更改音频设备功能的应用程序。我唯一的问题是当我尝试使用 setSinkId() 函数时,它给了我一个 DOMException AbortError 消息“无法执行操作并已中止”。我在最新版本的 Chrome 中尝试了完全相同的代码,它允许我设置 sinkId 没有任何问题。这是我的代码:
var promise = audio.setSinkId(deviceID);
promise.then(function(result) {
console.log('Audio output device sink ID is ' + deviceID);
}, function(e) {
console.log('Error: ' + e.name + ' - ' + e.message);
});
我在设置浏览器窗口时尝试通过enableBlinkFeatures 传递AudioOutputDevices 参数,但这并没有什么不同。
【问题讨论】:
-
在哪个浏览器中报错?并非所有浏览器都支持 setSinkId。虽然,我必须承认,我希望在尚不支持它的浏览器上出现不同的错误消息。您可以在此页面查看该功能支持的浏览器列表:developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement。
-
在我的情况下,当我的 Web 应用程序的用户关闭麦克风(作为输入设备)然后尝试更改输出设备时,用户收到此错误“未捕获(承诺)DOMException:操作无法执行并被中止”。对你有帮助吗?
标签: javascript html electron html5-audio