html5调用相机api,HTML5 API getUserMedia 调用摄像头 拍拍照

来来来,对着你的浏览器跳个舞,唱首歌,你是我的小呀小苹果.......

今天介绍一个新玩意儿

navigator.getUserMedia

该兄弟可以让你对着你的浏览器照镜子哦!当你孤孤单单一个人的时候(程序员本来就是一个人!),可以对着浏览器说说话看看自己那英姿。

提示用户需要权限去使用像摄像头或麦克风之类的媒体设备.如果用户提供了这个权限,successCallback函数会被调用,且接收一个LocalMediaStream 对象作为参数.

语法

navigator.getUserMedia ( constraints, successCallback, errorCallback );

constraints

constraints参数是一个 MediaStreamConstraints 对象,包含两个值为布尔值的成员: video 及 audio. 这个参数描述了被 LocalMediaStream对象所支持的媒体类型,使用时,需要在constraints参数里指定某个类型或者两个类型.如果某特定类型不被浏览器所支持, getUserMedia 会调用errorCallback函数,并传入错误类型NOT_SUPPORTED_ERROR. 如果浏览器不能得到特定类型的音频或者视频流, getUserMedia 会调用 errorCallback 函数,并传入错误类型MANDATORY_UNSATISFIED_ERR.

若某种媒体类型未被指定,他的值默认为false。下面的例子描述了如何去设置constraints函数接收audio与video:

{ video: true, audio: true }

下面的例子是我对该函数的理解,作的一个小小的调用摄像头及麦克风

html 代码

Make Photo

javascript 代码:

var video = document.getElementById("video");

navigator.getMedia = navigator.getUserMedia ||

navigator.webkitGetUserMedia ||

navigator.mozGetUserMedia ||

navigator.msGetUserMedia;

navigator.getMedia(

// use type video or audio

{

video: true,

audio: true

},

// success callback

function (stream) {

video.src = window.webkitURL.createObjectURL(stream);

},

// error callback

function(err) {

console.log("The following error occured: " + err);

}

);

setInterval(function(){

var videoElement = document.getElementById('video');

var canvasObj = document.getElementById('canvas2');

var context1 = canvasObj.getContext('2d');

context1.fillStyle = "#ffffff";

context1.fillRect(0, 0, 320, 240);

context1.drawImage(videoElement, 0, 0, 320, 240);

},1000/60);

function getPic(){

var videoElement = document.getElementById('video');

var canvasObj = document.getElementById('canvas1');

var context1 = canvasObj.getContext('2d');

context1.fillStyle = "#ffffff";

context1.fillRect(0, 0, 320, 240);

context1.drawImage(videoElement, 0, 0, 320, 240);

}

再来一张图片让大家爽一爽

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值