如何使用HTML5和JavaScript访问特定的相机设备?

时间:2015-03-20 09:41:35

标签: javascript html5 camera

我写了一些HTML5和JS代码,用于在画布上从网络摄像头渲染视频流,但我不知道指定打开哪个摄像机设备的方法。

事实上,如果我访问我的代码与我的Android一起运行的网页,它只会显示“selfie-cam”。如何指定使用手机的主摄像头?有没有办法做到这一点?

如果我从笔记本电脑访问该网页,则会打开内置网络摄像头。但是如何连接(辅助)USB摄像头?

这是我脚本的“主要”:

var video, canvas, context;

window.onload = Initialize;

初始化功能:

function Initialize()
{
    video = document.getElementById("videoElement");

    canvas = document.getElementById("canvasElement");
    canvas.width = parseInt(canvas.style.width);
    canvas.height = parseInt(canvas.style.height);

    context = document.getCSSCanvasContext("2d", "mask", 640, 480);

    navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia;// || navigator.msGetUserMedia || navigator.oGetUserMedia;

    if(navigator.getUserMedia)
    {
        navigator.getUserMedia({video: true}, VideoCapture, Error);
        requestAnimationFrame(IdleFunc);
    }
    else
    {
        alert("Error: your browser is not supported.");
    }
}

成功回调:

function VideoCapture(stream)
{
    video.src = window.URL.createObjectURL(stream);
}

失败回调:

function Error(e)
{
    alert("Error: " + e);
}

空闲功能:

function IdleFunc()
{
    requestAnimationFrame(IdleFunc);

    if(video.readyState === video.HAVE_ENOUGH_DATA)
    {
        context.drawImage(video, 0, 0, canvas.width, canvas.height);
    }
}

任何帮助?

谢谢。 抱歉我的英语:)

PC :Windows 8.1,Chrome(v41)。 智能手机:Android 4.2.2,Chrome(v41)。

0 个答案:

没有答案