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 相关文章推荐
a标签的css样式四个状态
Mar 09 HTML / CSS
css3实现针线缝合效果(图解步骤)
Feb 04 HTML / CSS
基于DOM+CSS3实现OrgChart组织结构图插件
Mar 02 HTML / CSS
CSS3制作气泡对话框的实例教程
May 10 HTML / CSS
用CSS3实现瀑布流布局的示例代码
Nov 10 HTML / CSS
浅谈CSS3 动画卡顿解决方案
Jan 02 HTML / CSS
html5的画布canvas——画出弧线、旋转的图形实例代码+效果图
Jun 09 HTML / CSS
Html5大文件断点续传实现方法
Dec 05 HTML / CSS
总结html5自定义属性有哪些
Apr 01 HTML / CSS
HTML5 Blob对象的具体使用
May 22 HTML / CSS
AmazeUI导航的示例代码
Aug 14 HTML / CSS
关于HTML5+ API plusready的兼容问题
Nov 20 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下使用SimpleXML 处理XML 文件
2010/02/27 PHP
延长phpmyadmin登录时间的方法
2011/02/06 PHP
php日期转时间戳,指定日期转换成时间戳
2012/07/17 PHP
安装ImageMagick出现error while loading shared libraries的解决方法
2014/09/23 PHP
PHP将session信息存储到数据库的类实例
2015/03/04 PHP
javascript数组的扩展实现代码集合
2008/06/01 Javascript
jQuery Lightbox 图片展示插件使用说明
2010/04/25 Javascript
实用的JS正则表达式(手机号码/IP正则/邮编正则/电话等)
2013/01/11 Javascript
java、javascript实现附件下载示例
2014/08/14 Javascript
Javascript 拖拽雏形(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
JavaScript驾驭网页-CSS与DOM
2016/03/24 Javascript
Angular.js中下拉框实现渲染html的方法
2017/06/18 Javascript
node通过npm写一个cli命令行工具
2017/10/12 Javascript
layer.open 获取不到表单信息的解决方法
2019/09/26 Javascript
解决vue scoped scss 无效的问题
2020/09/04 Javascript
[03:56]还原FTP电影首映式 DOTA2群星拼出遗迹世界
2014/03/26 DOTA
利用Python为iOS10生成图标和截屏
2016/09/24 Python
python3制作捧腹网段子页爬虫
2017/02/12 Python
tensorflow构建BP神经网络的方法
2018/03/12 Python
对Tensorflow中的变量初始化函数详解
2018/07/27 Python
python移位运算的实现
2019/07/15 Python
Django 实现前端图片压缩功能的方法
2019/08/07 Python
matplotlib 画双轴子图无法显示x轴的解决方法
2020/07/27 Python
Python unittest如何生成HTMLTestRunner模块
2020/09/08 Python
手把手教你配置JupyterLab 环境的实现
2021/02/02 Python
基于CSS3制作立体效果导航菜单
2016/01/12 HTML / CSS
美国第二大团购网站:LivingSocial
2016/07/24 全球购物
韩国三星集团旗下时尚品牌官网:SSF SHOP
2016/08/02 全球购物
2019年Java面试必问之经典试题
2012/09/12 面试题
字符串str除首尾字符外的其他字符按升序排列
2013/03/08 面试题
小学语文教研活动总结
2014/07/01 职场文书
解除劳动合同协议书(样本)
2014/10/02 职场文书
家长会欢迎词
2015/01/23 职场文书
Python+tkinter实现高清图片保存
2022/03/13 Python
十大最强格斗系宝可梦,超梦X仅排第十,第二最重格斗礼仪
2022/03/18 日漫
PC版《死亡搁浅导剪版》现已发售 展开全新的探险
2022/04/03 其他游戏