使用 javascript 如何在 webRTC 中更改所选摄像头?通过打开 webrtc 设备面板,可以更改摄像头/麦克风 - 然后页面会要求您刷新。
假设不刷新就没办法换设备,那webrtc的设备面板怎么通过javascript打开呢?
Firefox 刚刚使用全新的 rtpSender(以前在标准委员会中称为“doohickey”)实现了在对等连接呼叫中切换流(切换摄像头)所需功能的早期版本。
rtpSender.replaceTrack(新轨道,成功,失败)。它假定您已经有一个(单独的)媒体流,并且另一个摄像头处于打开状态。这在 Android 上有点棘手,因为您一次只能激活一个摄像头。
Chrome 倾向于限制您的设备选择,除非您使用设备枚举器并指定设备。
我刚刚检查了 firefox(桌面浏览器),在 webrtc 调用之间,我刚刚调用了
navigator.getUserMedia({
'audio': true,
'video': {...
它给了我选择设备的选项,我只有一个摄像头,所以只有那个选项,但对于麦克风,我有多个选项,也在 chrome 中选中,因为在 chrome 中,你没有选择麦克风选项的选项,它只是给了我允许/拒绝的选项。
您可以使用 getUserMedia API 请求访问摄像头,然后传入指定所需摄像头的 MediaStreamConstraints 对象。
这是一个选择前置摄像头的示例代码片段:
const constraints = {
video: {
facingMode: { exact: "user" }
}
};
navigator.mediaDevices.getUserMedia(constraints)
.then((stream) => {
// do something with the stream
})
.catch((error) => {
console.error(error);
});