如何解决检查音频和视频设备是否使用javascript连接
我正在使用twilio video API构建视频通话Web平台,我们要求在用户加入通话之前,我们必须检查用户是否已将音频和视频设备连接到计算机,如果用户没有任何音频和视频设备,其中,则不允许用户加入视频通话。
我已经尝试过https://webrtc.org/getting-started/media-devices中的 mediaDevices.enumerateDevices 。下面是代码,
function getConnectedDevices(type,callback) {
navigator.mediaDevices.enumerateDevices()
.then(devices => {
console.log(devices);
callback(filtered);
});
}
这在json下面给出了我
[{
deviceId: "default",groupId: "10684f807204708d605cc3ad0e5c4eaf763f1440775b8f79cdecf72806cc82f5",kind: "audioinput",label: "Default - Microphone (Realtek Audio)"
},{
deviceId: "communications",label: "Communications - Microphone (Realtek Audio)"
},{
deviceId: "491ccf0569924a7c1264a6afd337a8f744f239d78414e80f17a07122725bb46c",label: "Microphone (Realtek Audio)"
},{
deviceId: "823160fcdef4bedf2d1769cfbcb9058fe41bc01258b811f9aef19eb21a27cb76",groupId: "f86216b491186ac3208f9fc59d31b913e7017bafb505005d39983345ab35811f",kind: "videoinput",label: "Integrated Webcam (0bda:5689)"
},{
deviceId: "default",kind: "audiooutput",label: "Default - Speakers / Headphones (Realtek Audio)"
},label: "Communications - Speakers / Headphones (Realtek Audio)"
},{
deviceId: "213851f9659d4751c7c60016112d74e290d1ce398d12d774bda0c68ef590f61c",label: "Speakers / Headphones (Realtek Audio)"
}
]
通过查看json,我无法完全理解如何检查可用的音频和视频设备。由于我必须以角度来实现这一点,所以我不想使用jQuery或任何pluggin
解决方法
如果您的计算机没有连接任何音频或视频设备,则此阵列为空。看来您已经在这里连接了几台设备。
您要查找的是audioinput
(用于麦克风)和videoinput
(用于照相机)。
因此您可以执行以下操作:
navigator.mediaDevices.enumerateDevices()
.then(devices => {
const microphones = devices.filter(d => d.kind === 'audioinput');
const cameras = devices.filter(d => d.kind === 'videoinput');
callback(
microphones,cameras
);
});
如果cameras.length > 0
则连接了某种类型的相机,如果microphones.length > 0
则连接了某种麦克风。您可以使用它来检查是否要允许某人加入呼叫。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。