setSinkId() 函数在 Electron App 中抛出错误



我正在尝试开发一个播放音频并包含更改音频设备功能的应用程序。我唯一的问题是当我尝试使用setSinkId()函数时,它会给我一个 DOMException 中止错误,并显示消息"无法执行操作并已中止"。我已经在最新版本的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参数,但这并没有区别。

我感受到你的痛苦,我在开发过程中也有同样的问题。我没有直接解决它。我只能建议检查有关源HTML元素引用的一些事项。

1(srcObject设置是否正确? 首次使用setSinkId()前,请检查是否

audio.srcObject = stream;

2(检查setSinkId()事件是否未被pause()play()load()事件中断。请记住,setSinkId()是一个承诺。

await audio.setSinkId(selectedId);
audio.play();

希望对您有所帮助。

也许它与这个旧报告的问题有关。它已经搁置多年了。

https://bugs.chromium.org/p/chromium/issues/detail?id=697877

请记住,为了获得Chrome的可见性,您应该使用您的Google帐户"启动"它,以帮助Chromium团队了解其重要性。

相关内容

最新更新