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效果)整理
Dec 30 HTML / CSS
详解CSS中iconfont的使用
Aug 04 HTML / CSS
CSS3实现多背景模拟动态边框的效果
Nov 08 HTML / CSS
详解CSS3 rem(设置字体大小) 教程
Nov 21 HTML / CSS
HTML5 Web 存储详解
Sep 16 HTML / CSS
突破canvas语法限制 让他支持链式语法
Dec 24 HTML / CSS
html5 canvas-2.用canvas制作一个猜字母的小游戏
Jan 07 HTML / CSS
使用HTML5 Canvas API控制字体的显示与渲染的方法
Mar 24 HTML / CSS
HTML5拖拉上传文件的简单实例
Jan 11 HTML / CSS
浅谈HTML5 FileReader分布读取文件以及其方法简介
Nov 09 HTML / CSS
HTML5 新表单类型示例代码
Mar 20 HTML / CSS
CSS子盒子水平和垂直居中的五种方法
Jul 23 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/07/12 PHP
一个简单的网页密码登陆php代码
2012/07/17 PHP
php结合js实现点击超链接执行删除确认操作
2014/10/31 PHP
ioncube_loader_win_5.2.dll的错误解决方法
2015/01/04 PHP
Laravel 5框架学习之用户认证
2015/04/09 PHP
Zend Framework动作助手Redirector用法实例详解
2016/03/05 PHP
javascript仿php的print_r函数输出json数据
2013/09/13 Javascript
Angularjs 自定义服务的三种方式(推荐)
2016/08/02 Javascript
JavaScript登录验证码的实现
2016/10/27 Javascript
JavaScript中的 attribute 和 jQuery中的 attr 方法浅析
2017/01/04 Javascript
从零学习node.js之mysql数据库的操作(五)
2017/02/24 Javascript
Vue.js中extend选项和delimiters选项的比较
2017/07/17 Javascript
微信小程序事件对象中e.target和e.currentTarget的区别详解
2019/05/08 Javascript
微信小程序页面间跳转传参方式总结
2019/06/13 Javascript
javascript实现5秒倒计时并跳转功能
2019/06/20 Javascript
js实现一个简易计算器
2020/03/30 Javascript
Vue+iview+webpack ie浏览器兼容简单处理
2019/09/20 Javascript
js实现3D照片墙效果
2019/10/28 Javascript
JS数组方法push()、pop()用法实例分析
2020/01/18 Javascript
[57:18]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#3VP VS VG
2016/03/03 DOTA
在Python中封装GObject模块进行图形化程序编程的教程
2015/04/14 Python
python实现颜色空间转换程序(Tkinter)
2015/12/31 Python
基于asyncio 异步协程框架实现收集B站直播弹幕
2016/09/11 Python
详解python 拆包可迭代数据如tuple, list
2017/12/29 Python
Anaconda入门使用总结
2018/04/05 Python
在Python函数中输入任意数量参数的实例
2019/07/16 Python
Python多线程:主线程等待所有子线程结束代码
2020/04/25 Python
python中get和post有什么区别
2020/06/19 Python
HTML5 video视频字幕的使用和制作方法
2018/05/03 HTML / CSS
HTML5标签与HTML4标签的区别示例介绍
2013/07/18 HTML / CSS
ALDO加拿大官网:加拿大女鞋品牌
2018/12/22 全球购物
2014年办公室主任工作总结
2014/11/12 职场文书
MySQL 用 limit 为什么会影响性能
2021/09/15 MySQL
详解JAVA的控制语句
2021/11/11 Java/Android
centos7安装mysql5.7经验记录
2022/05/02 Servers