我正在尝试使用navigator.MediaDevices.getUserMedia()webrtc在通话期间切换设备摄像头。这个功能在桌面浏览器上工作正常,但在mozilla android上它无法正常工作。 这是我正在使用的代码。
var front=false;
var myConstraints = { video: { facingMode: (front? "user" : "environment")} };
navigator.mediaDevices.getUserMedia(myConstraints).then(function(stream) {
}
关于这个的任何想法??
答案 0 :(得分:4)
手机硬件通常不允许同时打开前置和后置摄像头。在获取另一台摄像机之前,将代码更改为stop()
现有流。
有关工作示例,请参阅my answer to a similar question。
答案 1 :(得分:2)
使用最新版本的adapter.js并查看NotReadableerror是否正在发生,似乎Chrome for android无法通过使用stream.getVideoTracks()[0] .stop();来释放前置摄像头硬件以切换到后置。我认为这可能是一个错误
答案 2 :(得分:1)
Webcam.set({
width: 490,
height: 450,
image_format: 'jpeg',
jpeg_quality: 90,
constraints: {
facingMode: {
exact: 'environment'
}
}
});
此代码适用于所有浏览器。
constraints: {facingMode: { exact: 'environment' }}
以上行负责打开后置摄像头,设置约束:null表示打开后置摄像头。您还可以通过实现“切换摄像头”按钮方法来调整此代码