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 transform 属性来变换背景图的方法
May 07 HTML / CSS
利用SVG和CSS3来实现一个炫酷的边框动画
Jul 22 HTML / CSS
什么是CSS3 HSLA色彩模式?HSLA模拟渐变色条
Apr 26 HTML / CSS
利用CSS3实现开门效果实例源码
Aug 22 HTML / CSS
让IE支持HTML5的方法
Dec 11 HTML / CSS
html5 Canvas画图教程(11)—使用lineTo/arc/bezierCurveTo画椭圆形
Jan 09 HTML / CSS
深入了解canvas在移动端绘制模糊的问题解决
Apr 30 HTML / CSS
详解window.open被浏览器拦截的解决方案
Jul 18 HTML / CSS
VSCode 自定义html5模板的实现
Dec 05 HTML / CSS
html+css实现文字折叠特效实例
Jun 02 HTML / CSS
在CSS中使用when/else的方法
Jan 18 HTML / CSS
CSS使用Flex和Grid布局实现3D骰子
Aug 05 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
星际中的相关伤害
2020/03/04 星际争霸
一些关于PHP的知识
2006/11/17 PHP
可定制的PHP缩略图生成程式(需要GD库支持)
2007/03/06 PHP
php获取发送给用户的header信息的方法
2015/03/16 PHP
php中关于socket的系列函数总结
2015/05/18 PHP
php 中phar包的使用教程详解
2018/10/26 PHP
PHP7新增函数
2021/03/09 PHP
可以支持多中格式的JS键盘
2007/05/02 Javascript
基于jquery的自定义鼠标提示效果 jquery.toolTip
2010/11/14 Javascript
Javascript数组的排序 sort()方法和reverse()方法
2012/06/04 Javascript
javascript代码运行不出来执行错误的可能情况整理
2013/10/18 Javascript
js 获取元素下面所有li的两种方法
2014/04/14 Javascript
JavaScript中一个奇葩的IE浏览器判断方法
2014/04/16 Javascript
js实现拖拽效果(构造函数)
2015/12/14 Javascript
jQuery实现的超简单点赞效果实例分析
2015/12/31 Javascript
基于AngularJs + Bootstrap + AngularStrap相结合实现省市区联动代码
2016/05/30 Javascript
Bootstrap和Angularjs配合自制弹框的实例代码
2016/08/24 Javascript
Angular.JS中select下拉框设置value的方法
2017/06/20 Javascript
vue中SPA单页面应用程序详解
2017/11/07 Javascript
微信小程序实现流程进度的图样式功能
2018/01/16 Javascript
Vuejs+vue-router打包+Nginx配置的实例
2018/09/20 Javascript
如何在微信小程序中实现Mixins方案
2019/06/20 Javascript
Vue-cli4 配置 element-ui 按需引入操作
2020/09/11 Javascript
[01:15]《辉夜杯》北京网鱼队巡礼
2015/10/26 DOTA
[01:57]DOTA2上海特锦赛小组赛解说单车采访花絮
2016/02/27 DOTA
Python os模块学习笔记
2015/06/21 Python
python字符串查找函数的用法详解
2019/07/08 Python
Java ExcutorService优雅关闭方式解析
2020/05/30 Python
Python生成pdf目录书签的实例方法
2020/10/29 Python
采购部岗位职责
2013/11/24 职场文书
影视广告专业求职信
2014/09/02 职场文书
幼儿园大班教师个人总结
2015/02/05 职场文书
SQLServer2008提示评估期已过解决方案
2021/04/12 SQL Server
浅谈node.js中间件有哪些类型
2021/04/29 Javascript
详解Python自动化之文件自动化处理
2021/06/21 Python
详解redis在微服务领域的贡献
2021/10/16 Redis