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制作3D样式按钮实现代码
Mar 18 HTML / CSS
CSS3新属性transition-property transform box-shadow实例学习
Jun 06 HTML / CSS
利用CSS3的特性改变文本选中时的颜色
Sep 11 HTML / CSS
基于ccs3的timeline时间线实现方法
Apr 30 HTML / CSS
css3实现文字首尾衔接跑马灯的示例代码
Oct 16 HTML / CSS
使用Html5、CSS实现文字阴影效果
Jan 17 HTML / CSS
HTML5 Web Workers之网站也能多线程的实现
Apr 24 HTML / CSS
HTML5中新标签和常用标签详解
Mar 07 HTML / CSS
微信端html5页面调用分享接口示例
Mar 14 HTML / CSS
Html5页面二次分享的实现
Jul 30 HTML / CSS
html5 datalist 选中option选项后的触发事件
Mar 05 HTML / CSS
前端使用canvas生成盲水印的加密解密的实现
Dec 16 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 array_merge下进行数组合并的代码
2008/07/22 PHP
PHP fgetcsv 定义和用法(附windows与linux下兼容问题)
2012/05/29 PHP
php给一组指定关键词添加span标签的方法
2015/03/31 PHP
js实现DIV的一些简单控制
2007/06/04 Javascript
替代window.event.srcElement效果的可兼容性的函数
2009/12/18 Javascript
jquery的$getjson调用并获取远程的JSON字符串问题
2012/12/10 Javascript
jquery.boxy弹出框(后隔N秒后自动隐藏/自动跳转)
2013/01/15 Javascript
关于jquery input textare 事件绑定及用法学习
2013/04/03 Javascript
js改变img标签的src属性在IE下没反应的解决方法
2013/07/23 Javascript
jQuery中filter()和find()的区别深入了解
2013/09/25 Javascript
js this函数调用无需再次抓获id,name或标签名
2014/03/03 Javascript
javascript定义变量时加var与不加var的区别
2014/12/22 Javascript
JavaScript中DOM详解
2015/04/13 Javascript
微信支付如何实现内置浏览器的H5页面支付
2015/09/25 Javascript
基于BootStrap Metronic开发框架经验小结【五】Bootstrap File Input文件上传插件的用法详解
2016/05/12 Javascript
微信小程序 loading(加载中提示框)实例
2016/10/28 Javascript
分类解析jQuery选择器
2016/11/23 Javascript
Vue生命周期示例详解
2017/04/12 Javascript
select获取下拉框的值 下拉框默认选中方法
2018/02/28 Javascript
微信小程序url传参写变量的方法
2018/08/09 Javascript
JS图片懒加载的优点及实现原理
2020/01/10 Javascript
详解JavaScript中的数据类型,以及检测数据类型的方法
2020/09/17 Javascript
[01:02:47]EG vs Secret 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
python使用in操作符时元组和数组的区别分析
2015/05/19 Python
Python3一行代码实现图片文字识别的示例
2018/01/15 Python
python print出共轭复数的方法详解
2019/06/25 Python
python打印直角三角形与等腰三角形实例代码
2019/10/20 Python
python Django框架实现web端分页呈现数据
2019/10/31 Python
pyCharm 实现关闭代码检查
2020/06/09 Python
基于Keras的格式化输出Loss实现方式
2020/06/17 Python
Python使用grequests并发发送请求的示例
2020/11/05 Python
python hmac模块验证客户端的合法性
2020/11/07 Python
Python基于unittest实现测试用例执行
2020/11/25 Python
介绍java中初始化块的使用
2012/09/11 面试题
给学校建议书范文
2014/05/13 职场文书
社团个人总结范文
2015/03/05 职场文书