我已经为使用getUserMedia的iPad构建了这个Web应用程序,并将生成的视频流式传输到网站上的视频元素.我正在使用的型号是iPad Air,后置摄像头分辨率为1936x2592.目前,getUserMedia方法的约束是:
video: {
facingMode: 'environment',
width: { ideal: 1936 },
height: { ideal: 2592 }
}
Run Code Online (Sandbox Code Playgroud)
然而,当我拉入视频时,它看起来相当颗粒感.通过控制台日志挖掘以获取流,视频轨道以及该轨道的设置,看起来视频的分辨率已缩小到720x1280.这有什么特别的原因吗?webRTC/getUserMedia可以处理的最大分辨率是多少?
在我的网站上,我需要用户可以上传照片.但为了确保图像不模糊,我想自动检测相机是自动对焦还是找到一种方法来帮助对焦. 相机正确对焦时,如何自动拍照?任何的想法??
我的代码:
navigator.getUserMedia = (navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia);
var options = {video: true};
var videoWidth, videoHeight;
var video = document.getElementById('my-webcam');
var canvascam = document.getElementById('canvas-cam');
var onFail = function(e) {
alert('Failed to get camera');
alert(e);
};
var onSuccess = function(stream) {
if(navigator.mozGetUserMedia) {
video.mozSrcObject = stream;
} else {
var url = window.URL || window.webkitURL;
video.src = url.createObjectURL(stream);
}
setTimeout(function(){
setInterval(updateCanvas,30);
//Take photo when camera is focused
},1000);
};
navigator.getUserMedia(options, onSuccess, onFail);
function updateCanvas(){
canvascam.getContext('2d').drawImage(video, 0, 0, …Run Code Online (Sandbox Code Playgroud)