即使设备上没有连接麦克风,我也想进行WebRTC呼叫并听到声音。我用来加入VOIP呼叫的web应用程序检测到我没有麦克风,并关闭我的音频,因为它假设我想要呼叫。
我注意到web应用程序正在使用navigator.mediaDevices.enumerateDevices来确定我是否安装了合适的设备来进行通话。我有什么办法可以模拟返回有效的MediaDeviceInfo对象来欺骗站点,让他们认为我有一个有效的麦克风,这样我就可以继续通话了吗?
编辑与重复答案相关的内容
我不认为我可以直接重写navigator.enumerateDevices = function(){...}
返回值是不能用MediaDeviceInfo构造函数创建的MediaDeviceInfo对象列表。但是我很想知道是否有人知道一种方法,可以创建某种响应数组,以满足任何消费者对页面上已解决的承诺的需求。
发布于 2020-05-04 22:04:48
navigator.mediaDevices.enumerateDevices返回promise。试试下面的代码片段。您可以添加n个设备。
var device1 = {
deviceId: "default",
kind: "audiooutput",
label: "",
groupId: "default"
}
device1.__proto__ = MediaDeviceInfo.prototype;
navigator.mediaDevices.enumerateDevices = function() {
return new Promise((res, rej)=>{res([device1])})
}发布于 2020-02-05 21:23:55
您可以尝试如下所示:
var device1 = {
deviceId: "default",
kind: "audiooutput",
label: "",
groupId: "default"
}
device1.__proto__ = MediaDeviceInfo.prototype;
navigator.mediaDevices.enumerateDevices = function() {
return [device1]
}https://stackoverflow.com/questions/42462773
复制相似问题