我们正在电子中构建一个应用程序,在设置新的deviceId后,麦克风没有变化。没有显示错误。
//myId is an id retrieved from navigator.mediaDevices.enumerateDevices();
const constraints = {audio: {deviceId: {exact: myId}}};
navigator.mediaDevices.getUserMedia(constraints);
我们做错了什么?当我们在外部网站上测试它时,它看起来工作正常。
我们所有的搜索结果都没有任何有用的东西,或者是非常过时的搜索结果。电子是一个 chrome 浏览器。我们已经在这个问题上纠缠了一个多星期。它在Ubuntu和Windows 11上不起作用(目前为止我们只测试了这两个操作系统)。我们还没有为MacOs感到烦恼。
1条答案
按热度按时间x6h2sr281#
1.请确保myId不为空,因为当您第一次调用
navigator.mediaDevices.enumerateDevices()
时,它可能返回空字符串。1.对于我
const constraints = {audio: {deviceId: {exact: myId}}};
返回错误,因为exact
。对于我工作const constraints = {audio: {deviceId: myId}};
const constraints = {audio: {deviceId: {exact: myId}};
结尾缺少一个'}'。1.如果您设置新设备,您必须从新流中获取新曲目并添加到旧流中。
这是一个工作代码,它根据您单击按钮来改变麦克风
script.js
index.html