需求

浏览器调用相机进行拍照

代码

mediaDevices.getUserMedia()

目前,浏览器已经提供了一种API能够直接访问用户的媒体设备(摄像头、麦克风),这就使得浏览器能够直接捕获到来自于这些设备的相关信息,可以实现的功能包括前端拍照、录音、录像等功能。

要获取用户媒体,使用的函数是:

navigator.mediaDevices.getUserMedia(constraints)

constraints - 为音频与视频指定参数,例如

{ audio: true, video: true } // 在获得的媒体中同时包含音频与视频

{

audio: true,

video: { width: 1280, height: 720 } // 获得指定了大小的视频

}

该函数返回的是一个Promise对象,用于处理用户是否成功成功授权了对这些媒体的访问。

.then(success) - 用于处理成功获得用户媒体时的相关操作,success回调参数中包含了媒体流,可对媒体流进行相关操作,例如:

// 将媒体流播放到一个video元素上

function success(stream) {

let video = document.querySelector('#video');

//let compatibleURL=window.URL || window.webkitURL;

console.log(stream);

video.srcObject = stream;

//video.src=window.URL.createObjectURL(stream);

video.onloadedmetadata = function (e) {

video.play();

}

}

.catch(error) - 用于处理调用失败的情况,error回调参数中包含有错误信息。

兼容性问题

由于不同浏览器对该接口进行了不同实现,因此需要进行一些兼容性处理。

新标准中该接口返回的是Promise对象,但较旧的浏览器使用较老的方式来进行处理。

function getUserMedia(constraints, success, error) {

if (navigator.mediaDevices.getUserMedia) {

navigator.mediaDevices.getUserMedia(constraints).then(success).catch(error);

} else if (navigator.webkitGetUserMeida) {

navigator.webkitGetUserMedia(constraints, success, error)

} else if (navigator.mozGetUserMedia) {

navigator.mozGetUserMedia(constraints, success, error)

} else if (navigator.getUserMedia) {

navigator.getUserMedia(constraints, success, error)

}

}

怎样实现拍照?

canvas是HTML5标准中的一个用于绘图的接口,可用于在前端进行图像处理/图形绘制。

前面的代码,我们将从浏览器获得的媒体信息展现在了一个video元素上;这样,我们就能够从该元素上得到当前帧的内容,从而把这个内容绘制到canvas元素上,实现静态图像捕获(拍照)。

let canvas = document.querySelector('#canvas');

let context = canvas.getContext('2d');

let captureBtn = document.querySelector('#captureBtn');

captureBtn.onclick = function () {

//将video当前帧绘制到Canvas上,完成拍照过程

context.drawImage(video, 0, 0, 480, 320);

}

···

php安卓浏览器调用相机拍照,浏览器调用相机进行拍照相关推荐

  1. android调用chrome,android webview调用使用chrome浏览器

    我已经做了一个web应用程序,它在移动Chrome中工作正常,但在铬中我看到一些问题,所以可以从应用程序中调用android chrome而不是webview.android webview调用使用c ...

  2. 服务器项目前端调用摄像头失败,浏览器调用摄像头失败:NotSupportedError Only secure origins are allowed...

    通过浏览器调用摄像头失败:NotSupportedError Only secure origins are allowed 错误报告 NotSupportedError Only secure or ...

  3. 根据屏幕分辨率获取css,根据判断浏览器类型屏幕分辨率自动调用不同CSS的代码...

    既判断分辨率,也判断浏览器 重新完善代码,使之成为判断浏览器类型屏幕分辨率自动调用不同CSS的代码. 解释: var IE1024=""; var IE800="&quo ...

  4. android调用网页方法,Android调用手机浏览器的正确方式

    有时候我们需要调用手机的浏览器,搜索过会我们一般都能找到这样的代码: //从其他浏览器打开 Intent intent = new Intent(); intent.setAction(Intent. ...

  5. 5调用外部浏览器打开代码_浏览器事件循环

    浏览器运行过程中会同时面对多种任务,用户交互事件(鼠标.键盘).网络请求.页面渲染等.而这些任务不能是无序的,必须有个先来后到,浏览器内部需要一套预定的逻辑来有序处理这些任务,因此浏览器事件循环诞生了 ...

  6. 浏览器使用java_java如何调用本地的浏览器

    1.调用本地的浏览器 import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; p ...

  7. 用浏览器的油猴子脚本调用IDM下载百度云盘中的资料

    用浏览器的油猴子脚本调用IDM下载百度云盘中的资料(只能支持单个文件下载) 第一步需要现在浏览器中安装油猴子插件Tampermonkey.crx 安装油猴子插件 插件主页:https://tamper ...

  8. Android获取本机浏览器包名,并调用指定浏览器打开网页

    昨天还在嘀咕着项目快做完了,接下来公司会安排什么事,结果今天就给了我一个新任务,其中要做的一个功能就是指定调用谷歌浏览器打开网页,如果没有该浏览器就提示客户进行下载,查找一番资料后,觉得这种东西还是要 ...

  9. 记录第一次使用selenium 调用Chrome无头浏览器和options一些参数解析整合

    记录第一次使用selenium 调用Chrome无头浏览器和options一些参数解析整合 1.selenium使用 from selenium import webdriver from selen ...

  10. 阿里旺旺调用谷歌Chrome浏览器打不开网页崩溃了显示错误代码 RESULT_CODE_MISSING_DATA-完美解决

    环景: win10专业版 谷歌浏览器90.0 阿里旺旺2.0.1 问题描述: 直接通过谷歌浏览器的快捷方式打开浏览器正常,但是用阿里旺旺软件对话框打开店铺链接调用谷歌浏览器,浏览器就会崩溃,显示错误代 ...

最新文章

  1. 本科计算机学渣,2017计算机老学渣的经验教训
  2. 从传递函数到差分方程的转换
  3. CSHOP后台设置SMTP发邮件提示 Error: need RCPT command 错误解决
  4. Korney Korneevich and XOR(CF750F1/F2)
  5. linux 限额系统,Linux磁盘限额(quota)
  6. android消息发送字符串,Android aSmack-如何对文件发送进行自定义消息...
  7. MP算法与OMP算法
  8. 微信小程序开发——字体样式设置
  9. Android个人简历自我评价,Android开发工程师岗位个人简历自我评价范文
  10. 面试经验|传音控股自动化测试
  11. 什么是计算机技术作文500字,关于电脑的作文500字
  12. Python:蒙特卡罗方法模拟解决三门问题
  13. 树莓派3 搭建tensorflow并进行物体识别
  14. 适合小规模培训、带货的群直播是怎样的呢?
  15. 加密一条保序的数据流
  16. Mac 下有哪些能极大地提高工作效率的软件?
  17. VMware+Ubuntu安装使用说明
  18. python 制作刷题程序
  19. 利用go-ethereum创建自己的以太坊账户
  20. Y05 - 024、数据的应用①:四则运算、运算优先级

热门文章

  1. 单键三档调光调色灯方案
  2. 每天学一点flash 76 百度MP3音乐APi接口使用
  3. 像素与分辨率_px与dip/dp_px与sp
  4. 原生webview内核对于H5页面渲染兼容性
  5. 集成电路企业免征企业所得税,中国芯将腾飞
  6. 邮箱设置自动回复接受服务器吗,如何设置 Postfix 邮件服务器上的自动回复
  7. C语言联合体union详解与实例
  8. 腾达ac11虚拟服务器,腾达(Tenda)AC11路由器手机怎么设置?
  9. c++攻读方向_攻读硕士学位的好,坏与丑
  10. excel 打印区域