php安卓浏览器调用相机拍照,浏览器调用相机进行拍照
需求
浏览器调用相机进行拍照
代码
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安卓浏览器调用相机拍照,浏览器调用相机进行拍照相关推荐
- android调用chrome,android webview调用使用chrome浏览器
我已经做了一个web应用程序,它在移动Chrome中工作正常,但在铬中我看到一些问题,所以可以从应用程序中调用android chrome而不是webview.android webview调用使用c ...
- 服务器项目前端调用摄像头失败,浏览器调用摄像头失败:NotSupportedError Only secure origins are allowed...
通过浏览器调用摄像头失败:NotSupportedError Only secure origins are allowed 错误报告 NotSupportedError Only secure or ...
- 根据屏幕分辨率获取css,根据判断浏览器类型屏幕分辨率自动调用不同CSS的代码...
既判断分辨率,也判断浏览器 重新完善代码,使之成为判断浏览器类型屏幕分辨率自动调用不同CSS的代码. 解释: var IE1024=""; var IE800="&quo ...
- android调用网页方法,Android调用手机浏览器的正确方式
有时候我们需要调用手机的浏览器,搜索过会我们一般都能找到这样的代码: //从其他浏览器打开 Intent intent = new Intent(); intent.setAction(Intent. ...
- 5调用外部浏览器打开代码_浏览器事件循环
浏览器运行过程中会同时面对多种任务,用户交互事件(鼠标.键盘).网络请求.页面渲染等.而这些任务不能是无序的,必须有个先来后到,浏览器内部需要一套预定的逻辑来有序处理这些任务,因此浏览器事件循环诞生了 ...
- 浏览器使用java_java如何调用本地的浏览器
1.调用本地的浏览器 import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; p ...
- 用浏览器的油猴子脚本调用IDM下载百度云盘中的资料
用浏览器的油猴子脚本调用IDM下载百度云盘中的资料(只能支持单个文件下载) 第一步需要现在浏览器中安装油猴子插件Tampermonkey.crx 安装油猴子插件 插件主页:https://tamper ...
- Android获取本机浏览器包名,并调用指定浏览器打开网页
昨天还在嘀咕着项目快做完了,接下来公司会安排什么事,结果今天就给了我一个新任务,其中要做的一个功能就是指定调用谷歌浏览器打开网页,如果没有该浏览器就提示客户进行下载,查找一番资料后,觉得这种东西还是要 ...
- 记录第一次使用selenium 调用Chrome无头浏览器和options一些参数解析整合
记录第一次使用selenium 调用Chrome无头浏览器和options一些参数解析整合 1.selenium使用 from selenium import webdriver from selen ...
- 阿里旺旺调用谷歌Chrome浏览器打不开网页崩溃了显示错误代码 RESULT_CODE_MISSING_DATA-完美解决
环景: win10专业版 谷歌浏览器90.0 阿里旺旺2.0.1 问题描述: 直接通过谷歌浏览器的快捷方式打开浏览器正常,但是用阿里旺旺软件对话框打开店铺链接调用谷歌浏览器,浏览器就会崩溃,显示错误代 ...
最新文章
- 本科计算机学渣,2017计算机老学渣的经验教训
- 从传递函数到差分方程的转换
- CSHOP后台设置SMTP发邮件提示 Error: need RCPT command 错误解决
- Korney Korneevich and XOR(CF750F1/F2)
- linux 限额系统,Linux磁盘限额(quota)
- android消息发送字符串,Android aSmack-如何对文件发送进行自定义消息...
- MP算法与OMP算法
- 微信小程序开发——字体样式设置
- Android个人简历自我评价,Android开发工程师岗位个人简历自我评价范文
- 面试经验|传音控股自动化测试
- 什么是计算机技术作文500字,关于电脑的作文500字
- Python:蒙特卡罗方法模拟解决三门问题
- 树莓派3 搭建tensorflow并进行物体识别
- 适合小规模培训、带货的群直播是怎样的呢?
- 加密一条保序的数据流
- Mac 下有哪些能极大地提高工作效率的软件?
- VMware+Ubuntu安装使用说明
- python 制作刷题程序
- 利用go-ethereum创建自己的以太坊账户
- Y05 - 024、数据的应用①:四则运算、运算优先级