Html5在手机端调用相机的方法实现


Posted in HTML / CSS onMay 13, 2020

input调用设备录像,相机等…
HTML5官方文档解释:capture属性用于调用设备的摄像头或麦克风。
当accept=”audio/或video/”时capture只有两种值,一种是user,用于调用面向人脸的摄像头(例如手机前置摄像头),一种是environment,用于调用环境摄像头(例如手机后置摄像头)。
当accept=”audio”时,只要有capture就调用设备麦克风,忽略user和environment值。
至于网上提到的camera和filesystem,官方没提。
官方文档:www.w3.org/TR/2018/REC-html-media-capture-20180201/

iOS最遵守遵守HTML5规范,其次是X5内核,安卓的webview基本忽略了capture。
理想情况下应该按照如下开发webview:

1.当accept=”image/”时,capture=”user”调用前置照相机,capture=”其他值”,调用后置照相机
2. 当accept=”video/”时,capture=”user”调用前置录像机,capture=”其他值”,调用后置录像机
3. 当accept=”image/,video/”,capture=”user”调用前置摄像头,capture=”其他值”,调用后置摄像头,默认照相,可切换录像
4. 当accept=”audio/*”时,capture=”放空或者任意值”,调用录音机
5. 当input没有capture时,根据accppt类型给出文件夹选项以及摄像头或者录音机选项
6. input含有multiple时访问文件夹可勾选多文件,调用系统摄像头或者录音机都只是单文件
7. 无multiple时都只能单文件

判断设备类型

var ua = navigator.userAgent.toLowerCase();
if(ua.match(/android/i)) == "android") {
 alert("android");
}
if(ua.match(/iPhone/i)) == "iPhone") {
 alert("iPhone");
}
if(ua.match(/iPad/i)) == "iPad") {
 alert("iPad");
}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <input type="file" accept="image/*" capture="camera">  
    <input type="file" accept="video/*" capture="camcorder">  
    <input type="file" accept="audio/*" capture="microphone">  
</body>
</html>
<script>
    var file = document.querySelector('input');
        if (getIos()) {
            file.removeAttribute("capture"); //如果是ios设备就删除"capture"属性
        }
        function getIos() {
            var ua=navigator.userAgent.toLowerCase();
            if (ua.match(/iPhone\sOS/i) == "iphone os") {
                return true;
            } else {
                return false;
            }
        }
</script>

到此这篇关于Html5在手机端调用相机的方法实现的文章就介绍到这了,更多相关Html5手机端调用相机内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章,希望大家以后多多支持三水点靠木! 

HTML / CSS 相关文章推荐
基于CSS3实现的几个小loading效果
Sep 27 HTML / CSS
支持IE8的纯css3开发的响应式设计动画菜单教程
Nov 05 HTML / CSS
利用CSS3把图片变成灰色模式的实例代码
Sep 06 HTML / CSS
详解使用HTML5的classList属性操作CSS类
Oct 13 HTML / CSS
详解移动端HTML5音频与视频问题及解决方案
Aug 22 HTML / CSS
浅谈pc和移动端的响应式的使用
Jan 03 HTML / CSS
Html5中localStorage存储JSON数据并读取JSON数据的实现方法
Feb 13 HTML / CSS
详解快速开发基于 HTML5 网络拓扑图应用
Jan 08 HTML / CSS
使用html5新特性轻松监听任何App自带返回键的示例
Mar 13 HTML / CSS
html5响应式开发自动计算fontSize的方法
Jan 13 HTML / CSS
html5使用window.postMessage进行跨域实现数据交互的一次实战
Feb 24 HTML / CSS
position:sticky 粘性定位的几种巧妙应用详解
Apr 24 HTML / CSS
Html5页面获取微信公众号的openid的方法
May 12 #HTML / CSS
钉钉企业内部H5微应用开发详解
May 12 #HTML / CSS
html5 横向滑动导航栏的方法示例
May 08 #HTML / CSS
HTML5触摸事件(touchstart、touchmove和touchend)的实现
May 08 #HTML / CSS
HTML5 body设置自适应全屏
May 07 #HTML / CSS
iframe与window.onload如何使用详解
May 07 #HTML / CSS
HTML5录音实践总结(Preact)
May 07 #HTML / CSS
You might like
PHP Socket 编程
2010/04/09 PHP
linux使用crontab实现PHP执行计划定时任务
2014/05/10 PHP
ThinkPHP公共配置文件与各自项目中配置文件组合的方法
2014/11/24 PHP
smarty内置函数foreach用法实例
2015/01/22 PHP
php对关联数组循环遍历的实现方法
2015/03/13 PHP
值得分享的php+ajax实时聊天室
2016/07/20 PHP
jquery load()在firefox(火狐)下显示不正常的解决方法
2011/04/05 Javascript
IE6下javasc#ipt:void(0) 无效的解决方法
2013/12/23 Javascript
使用jquery实现IE下按backspace相当于返回操作
2014/03/18 Javascript
JavaScript获取路径设计源码
2014/05/22 Javascript
JavaScript中常用的六种互动方法示例
2015/03/13 Javascript
JS提交form表单实例分析
2015/12/10 Javascript
Javascript的表单与验证-非空验证
2016/03/18 Javascript
JavaScript表单焦点自动切换代码
2016/07/24 Javascript
Javascript 6里的4个新语法
2016/08/25 Javascript
AngularJS中的按需加载ocLazyLoad示例
2017/01/11 Javascript
Angular组件化管理实现方法分析
2017/03/17 Javascript
JavaScript异步上传图片文件的实例代码
2017/07/04 Javascript
浅谈在node.js进入文件目录的问题
2018/05/13 Javascript
JS获取月的第几周和年的第几周实例代码
2018/12/05 Javascript
angular6根据environments配置文件更改开发所需要的环境的方法
2019/03/06 Javascript
微信小程序页面间传递数组对象方法解析
2019/11/06 Javascript
Vue使用Element实现增删改查+打包的步骤
2020/11/25 Vue.js
python模拟登陆阿里妈妈生成商品推广链接
2014/04/03 Python
Python使用django获取用户IP地址的方法
2015/05/11 Python
详解Python中的动态属性和特性
2018/04/07 Python
django从请求到响应的过程深入讲解
2018/08/01 Python
nohup后台启动Python脚本,log不刷新的解决方法
2019/01/14 Python
Python如何对XML 解析
2020/06/28 Python
Python QTimer实现多线程及QSS应用过程解析
2020/07/11 Python
Python如何读写字节数据
2020/08/05 Python
Java面向对象面试题
2016/12/26 面试题
商务英语毕业生自荐信范文
2013/11/08 职场文书
考察现实表现材料
2014/05/19 职场文书
银行青年文明号事迹材料
2014/05/31 职场文书
学校会议通知范文
2015/04/15 职场文书