通过 MediaDevices.getUserMedia() 获取用户多媒体权限时,需要注意其只工作于以下三种环境: localhost 域 开启了 HTTPS 的域 使用 file:/// 协议打开的本地文件 其他情况下,比如在一个 HTTP 站点上,navigator.mediaDevices 的值为 undefined. 如果想要 HTTP 环境下也能使用和调试 MediaDevices.getUserMedia(),可通过开启 Chrome 的相应参数. 通过相应参数启动 Chrome…
google 文档 HACKS 文档 相关代码 获取本地的音频 <input type="file" accept="audio/*" capture="microphone" id="recorder"> <audio id="player" controls></audio> <script> var recorder = document.getElem…
navigator.mediaDevices.getUserMedia: 作用:为用户提供直接连接摄像头.麦克风的硬件设备的接口 语法: navigator.mediaDevices.getUserMedia(constraints).then(function(mediaStream) { ..... } catch(function(error) { .... } 参数表示的意义 constraint:指定请求媒体的类型{video:布尔值:audio:布尔值} mediaStream:st…
本文代码测试要求,最新的chrome浏览器(手机APP),并且要允许chrome拍照录像权限,必须要HTTPS协议,http不支持. 原理:调用摄像头,将摄像头返回的媒体流渲染到视频标签中,再通过canvas绘制到画布上面,最后通过canvas分析二维码 兼容性只在手机中的chrome中测试通过,微信里面也能使用,但是canvas绘图很卡 测试连接 引用了第三方的qrcode.js解码,但是这个文件并未在GitHub中找到,不知道出处.源码: _aa={};_aa._ab=function(f,…
<template>     <div>       <!--canvas截取流-->       <canvas ref="canvas" width="320" height="260"></canvas>       <!--图片展示-->       <video ref="video" width="340" heigh…
MediaDevices.getUserMedia() 会提示用户给予使用媒体输入的许可,媒体输入会产生一个MediaStream,里面包含了请求的媒体类型的轨道.此流可以包含一个视频轨道(来自硬件或者虚拟视频源,比如相机.视频采集设备和屏幕共享服务等等).一个音频轨道(同样来自硬件或虚拟音频源,比如麦克风.A/D转换器等等),也可能是其它轨道类型. 返回一个 Promise 对象,成功后会resolve回调一个 MediaStream 对象. 若用户拒绝了使用权限,或者需要的媒体源不可用,pr…
h5调用摄像头(允许自定义界面)[MediaDevices.getUserMedia()] <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="vi…
先说坏消息,苹果机没法玩这个!!! 而且,必须拥有 https 的安全协议!!! 而安卓机想完成这个功能倒是很 easy 的,看一眼代码 主要传入三个参数,配置对象,成功,失败 var mediaOpts = { audio: false, video: true, } function successFunc(stream) { var video = document.querySelector('video'); if ("srcObject" in video) { video…
概览 mediaDevices 是 Navigator 对象的只读属性,一个单列对象,可以连接访问相机和麦克风,屏幕共享等媒体输入设备 方法 enumerateDevices 请求一个可用的媒体输入和输出设备列表,如麦克风.相机.耳机等.返回的 Promise完成状态中是一个带有 MediaDeviceInfo 的数组 let mediaDevices = navigator.mediaDevices if(!mediaDevices || !mediaDevices.enumerateDevi…
开篇闲扯 前一段时间的一个案子是开发一个有声课件,大致就是通过导入文档.图片等资源后,页面变为类似 PPT 的布局,然后选中一张图片,可以插入音频,有单页编辑和全局编辑两种模式.其中音频的导入方式有两种,一种是从资源库中导入,还有一种就是要提到的录音. 说实话,一开始都没接触过 HTML5 的 Audio API,而且要基于在我们接手前的代码中进行优化.当然其中也踩了不少坑,这次也会围绕这几个坑来说说感受(会省略一些基本对象的初始化和获取,因为这些内容不是这次的重点,有兴趣的同学可以自行查找 M…