Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript WebRTC如何设置限制以在可用时使用音频_Javascript_Webrtc - Fatal编程技术网

Javascript WebRTC如何设置限制以在可用时使用音频

Javascript WebRTC如何设置限制以在可用时使用音频,javascript,webrtc,Javascript,Webrtc,通常,您可以按如下方式设置约束 { audio: true, video: true } 但我想再宽容一点。我只想获取音频,如果它能够获取,即如果麦克风可用,否则它将向我抛出NotFoundError错误 如果可能的话,有什么想法吗 是的 您可以使用该方法获取所有音频和视频设备的列表。 这将返回一个对象数组,该数组将具有kind属性,让您知道可以使用哪个约束 所以你可以做一些像 navigator.mediaDevices.enumerateDevices() .then(获取设备类型) .

通常,您可以按如下方式设置约束

{ audio: true, video: true }
但我想再宽容一点。我只想获取音频,如果它能够获取,即如果麦克风可用,否则它将向我抛出
NotFoundError
错误

如果可能的话,有什么想法吗

是的

您可以使用该方法获取所有音频和视频设备的列表。 这将返回一个对象数组,该数组将具有
kind
属性,让您知道可以使用哪个约束

所以你可以做一些像

navigator.mediaDevices.enumerateDevices()
.then(获取设备类型)
.then(getUserMedia)
.then(console.log)
.catch(控制台错误);
函数getDevicesTypes(列表){
返回新集合(列表
.filter(device=>device.kind.indexOf('input')>-1)
.map(device=>device.kind.replace('input','')
);
}
函数getUserMedia(设备种类){
常量约束={};
forEach(种类=>constraint[kind]=true);
console.log(约束);
返回navigator.mediaDevices.getUserMedia(约束);
}

您可以使用该方法获取所有音频和视频设备的列表。 这将返回一个对象数组,该数组将具有
kind
属性,让您知道可以使用哪个约束

所以你可以做一些像

navigator.mediaDevices.enumerateDevices()
.then(获取设备类型)
.then(getUserMedia)
.then(console.log)
.catch(控制台错误);
函数getDevicesTypes(列表){
返回新集合(列表
.filter(device=>device.kind.indexOf('input')>-1)
.map(device=>device.kind.replace('input','')
);
}
函数getUserMedia(设备种类){
常量约束={};
forEach(种类=>constraint[kind]=true);
console.log(约束);
返回navigator.mediaDevices.getUserMedia(约束);
}