移动设备和桌面电脑上的客户端API起初并不是同步的。最初总是移动设备上先拥有某些功能和相应的API,但慢慢的,这些API会出现在桌面电脑上。其中一个应用接口技术就是getUserMedia API,它能让应用开发者访问用户的摄像头或内置相机。下面就让我展示一下如何通过浏览器来访问你的摄像头,并提取截屏图形。
HTML代码
下面的代码里我写了一部分注释,请阅读:

复制代码代码如下:

<!--
理想情况下我们应该先判断你的设备上是否
有摄像头或相机,但简单起见,我们在这里直接
写出了HTML标记,而不是用JavaScript先判断
然后动态生成这些标记
-->
<video id="video" width="640" height="480" autoplay></video>
<button id="snap">Snap Photo</button>
<canvas id="canvas" width="640" height="480"></canvas>

在写出上面这些标记前应该判断用户的客户端是否有摄像头支持,但这里为了不那么麻烦,这里直接写出了这些HTML标记,需要注意的是我们这里使用的长宽是640×480。
JavaScript代码
因为我们是手工写出的HTML,所以下面的js代码会比你想象的要简单了很多。

复制代码代码如下:

// Put event listeners into place
window.addEventListener("DOMContentLoaded", function() {
// Grab elements, create settings, etc.
var canvas = document.getElementById("canvas"),
context = canvas.getContext("2d"),
video = document.getElementById("video"),
videoObj = { "video": true },
errBack = function(error) {
console.log("Video capture error: ", error.code); 
};
// Put video listeners into place
if(navigator.getUserMedia) { // Standard
navigator.getUserMedia(videoObj, function(stream) {
video.src = stream;
video.play();
}, errBack);
} else if(navigator.webkitGetUserMedia) { // WebKit-prefixed
navigator.webkitGetUserMedia(videoObj, function(stream){
video.src = window.webkitURL.createObjectURL(stream);
video.play();
}, errBack);
}
else if(navigator.mozGetUserMedia) { // Firefox-prefixed
navigator.mozGetUserMedia(videoObj, function(stream){
video.src = window.URL.createObjectURL(stream);
video.play();
}, errBack);
}
}, false);

一旦判断出用户浏览器支持getUserMedia ,下面就非常简单了,只需要将那个video元素的src设置为用户的摄像头视频直播连接。这就是用浏览器访问摄像头需要做的所有的事情!
拍照的功能只能说是稍微复杂一点点。我们在按钮上加入一个监听器,将视频画面画到画布上。

复制代码代码如下:

// 触发拍照动作
document.getElementById("snap")
.addEventListener("click", function() {
context.drawImage(video, 0, 0, 640, 480);
});

当然,你还可以在图片上加一些滤镜效果….
以前我们需要使用第三方的插件才能从浏览器里访问用户的摄像头,这不免有些复杂。现在只需要HTML5的画布技术和javaScript,我们就能简单快速的操作用户的摄像头。不仅仅还是访问摄像头,而且是因为HTML5的画布技术及其强大,我们可以给图片上加入各种迷人的滤镜效果。现在,在浏览器里用自己的摄像头给自己拍张照片吧!

HTML5 Canvas+JS控制电脑或手机上的摄像头实例相关推荐

  1. 使用HTML5技术控制电脑或手机上的摄像头

    移动设备和桌面电脑上的客户端API起初并不是同步的.最初总是移动设备上先拥有某些功能和相应的API,但慢慢的,这些API会出现在桌面电脑上.其中一个应用接口技术就是getUserMedia API,它 ...

  2. 使用HTML5技术控制电脑或手机上的摄像头(转载)

    移动设备和桌面电脑上的客户端API起初并不是同步的.最初总是移动设备上先拥有某些功能和相应的API,但慢慢的,这些API会出现在桌面电脑上.其中一个应用接口技术就是getUserMedia API,它 ...

  3. 基于socket实现虚拟手柄使用手机控制电脑游戏(上)-电脑服务端

    基于socket实现虚拟手柄使用手机控制电脑游戏(上)-电脑服务端 这个是关于利用socket套接字实现手机控制电脑按键的一个实例,完成这个项目可以实现用手机控制狂野飙车等游戏,就是一个简易的手机虚拟 ...

  4. java canvas 缩放图片_详解如何用HTML5 Canvas API控制图片的缩放变换

    摘要:这篇HTML5栏目下的"详解如何用HTML5 Canvas API控制图片的缩放变换",介绍的技术点是"html5_canvas.canvas.Html5.控制图片 ...

  5. html5 canvas+js实现ps钢笔抠图(速抠图 www.sukoutu.com)

    html5 canvas+js实现ps钢笔抠图(速抠图 www.sukoutu.com)   根据html5 canvas+js实现ps钢笔抠图的实现,aiaito 开发者开发了一套在线抠图工具,速抠 ...

  6. html5 canvas+js实现ps钢笔抠图

    html5 canvas+js实现ps钢笔抠图 原文:https://www.cnblogs.com/guozefeng/p/3719915.html 1. 项目要求需要用js实现photoshop中 ...

  7. html5 retina 1像素,HTML5 canvas 在 iPhone 4 retina 屏幕上的优化

    HTML5 canvas 在 iPhone 4 retina 屏幕上的优化 mac52ipod· 2011-02-11 阅读数 7793 随着 iPhone4 的推出, retina 屏在移动设备中被 ...

  8. java连接电脑可以把整个文件下载到手机里然后直接用么,如果是山寨机支持java如何用电脑往手机上下载软件...

    如果是山寨机支持java如何用电脑往手机上下载软件 浏览次数:6388次悬赏分:0|解决时间:2009-4-26 09:09|提问者:李佳朔 最佳答案 目前国内的大多数国产手机均支持mpr格式软件!也 ...

  9. 视频文件 wrf格式,可以通过WRF格式视频转换器_wrf转成wmv 转换成 wmv格式,可以在电脑或手机上观看,且声音也能转换过来。之前wrf用耳机貌似播放不出来,之后是可以播放出来的。

    视频文件 wrf格式,可以通过WRF格式视频转换器_wrf转成wmv 转换成 wmv格式,可以在电脑或手机上观看,且声音也能转换过来.之前wrf用耳机貌似播放不出来,之后是可以播放出来的. wmv可以 ...

最新文章

  1. C#GDI+图像处理
  2. set OpenCV_ROOT
  3. VS2005使用點滴積累
  4. Java 8中新的并行API:Glitz和Glamour的背后
  5. PHP ob_get_level嵌套输出缓冲
  6. 【渝粤题库】陕西师范大学292111 社会学概论 作业
  7. python上传excel文件_POST上传的excel(xls)文件,如何直接读进pandas,避免写入到磁盘?...
  8. 戴尔计算机网卡驱动程序,dell戴尔网卡驱动如何安装
  9. 【附源码】计算机毕业设计SSM汽车4S店服务管理系统
  10. AnkhSvn安装及使用
  11. chisel线网(wire)和寄存器(reg)详解(更新)
  12. Web 应用程序安全检查表
  13. 联想笔记本无线网络无法使用(无线开关已打开,但搜不到无线网络)
  14. 计算机交换机配置实验心得,网络配置实验心得
  15. vue项目报eslint格式错误解决方案
  16. Zhong__安装配置ElasticSearch
  17. 又是一个极佳的虚拟机网站
  18. html 怪异模式,CSS_浅谈CSS编程中的怪异模式,怪异模式盒模型 今天学习了 - phpStudy...
  19. 如何帮助企业员工快速成长?不少企业是这样做的
  20. Castor 解析xml文件报错org.exolab.castor.xml.MarshalException

热门文章

  1. 来来来,干了这碗毒鸡汤……
  2. 2013年jQuery Validation Engine 表单验证
  3. [每日一题] 0. 每日一题题解汇总
  4. Linux 无线网卡配置
  5. 蓝牙耳机排行榜10强:全球最经典的十大蓝牙耳机品牌!
  6. 八电平怎么画_动漫人体怎么学?初学漫画必备干货!
  7. 实用手机应用知识(查找微信历史聊天群、检查微信好友单删等,不断更新)
  8. IE input X 去掉文本框的叉叉和密码输入框的眼睛图标
  9. jquery html对象 转换成字符串,JQuery - 将'HTMLDivElement'对象数组转换为字符串
  10. visio常用快捷键_[转载]VISIO常用快捷键