javascript 摄像头,javascript调用手机摄像头

  javascript 摄像头,javascript调用手机摄像头

  移动设备和桌面计算机上的客户端API最初是不同步的。一开始,移动设备总是有一定的功能和对应的API,但是慢慢的,这些API就会出现在桌面电脑上。应用程序接口技术之一是getUserMedia API,它允许应用程序开发人员访问用户的摄像头或内置摄像头。让我告诉你如何通过浏览器访问你的相机,并提取截图。

  HTML代码

  我在下面的代码里写了一些注释,请阅读:复制代码如下:

  !-

  理想情况下,我们应该首先确定您的设备是否

  有相机或摄像机,但为了简单起见,我们直接在这里

  写HTML标签而不是用JavaScript判断。

  然后动态生成这些标签。

  -

  视频id=视频宽度=640 高度=480 自动播放/视频

  button id=snap 快照照片/button

  canvas id=canvas 宽度=640 高度=480/canvas

  在写上面的标签之前,你要判断用户的客户端是否有摄像头支持,但是这里为了省事,直接在这里写这些HTML标签。需要注意的是,我们这里使用的长宽是640480。

  JavaScript代码

  因为我们手写HTML,下面的js代码会比你想象的简单很多。复制代码如下:

  //将事件侦听器放到适当的位置

  window . addevent listener( DOMContentLoaded ,function() {

  //抓取元素,创建设置等。

  var canvas=document . getelementbyid( canvas ),

  context=canvas.getContext(2d ),

  video=document . getelementbyid( video ),

  videoObj={ video: true },

  errBack=函数(错误){

  console.log(视频捕获错误: ,error . code);

  };

  //将视频监听器放置到位

  if(navigator.getUserMedia) { //标准

  navigator . getuser media(video obj,function(stream) {

  video.src=stream

  video . play();

  },errBack);

  } else if(navigator . WebKit getuser media){//WebKit-前缀

  navigator . webkitgetusermedia(video obj,function(stream){

  video . src=window . webkiturl . createobjecturl(stream);

  video . play();

  },errBack);

  }

  else if(navigator . mozgetusermedia){//Firefox-前缀

  navigator . mozgetusermedia(video obj,function(stream){

  video.src=window。URL.createObjectURL(流);

  video . play();

  },errBack);

  }

  },假);

  一旦判断出用户的浏览器支持getUserMedia,下面就很简单了,只需要将那个视频元素的src设置为用户摄像头的视频直播连接即可。这就是你用浏览器访问相机所需要做的一切!

  拍照的功能只能说稍微复杂一点。我们在按钮上添加一个监视器,并在画布上绘制视频图片。复制代码如下:

  //触发拍照动作

  document . getelementbyid(“snap”)。addEventListener(click ,function() {

  context.drawImage(视频,0,0,640,480);

  });

  当然,你也可以给图片添加一些滤镜效果。

  以前我们要用第三方插件从浏览器访问用户的摄像头,有些复杂。现在只需要HTML5和javaScript的canvas技术,就可以简单快速的操作用户的摄像头。不仅仅是为了接入摄像头,更因为HTML5的画布技术和它的强大,我们可以给图片添加各种迷人的滤镜效果。现在,在浏览器里用自己的相机给自己拍一张照片吧!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: