谷歌使用navigator.mediaDevices.getUserMedia 调用摄像头拍照功能,不兼容IE

<template>

<div>

<!--canvas截取流-->

<canvas ref="canvas" width="320" height="260"></canvas>

<!--图片展示-->

<video ref="video" width="340" height="280" autoplay></video>

<!--确认-->

<el-button size="mini" type="primary" @click="photograph">拍照</el-button>

</div>

</template>

<script>

export default {

created() {

this.callCamera()

},

data() {

return {

// headImgSrc: require(‘../assets/image/shou.png‘)

}

},

methods: {

// 调用摄像头

callCamera() {

// H5调用电脑摄像头API

navigator.mediaDevices

.getUserMedia({

video: true

})

.then(success => {

// 摄像头开启成功

this.$refs[‘video‘].srcObject = success

// 实时拍照效果

this.$refs[‘video‘].play()

})

.catch(error => {

console.error(‘摄像头开启失败,请检查摄像头是否可用!‘)

})

},

// 拍照

photograph() {

let ctx = this.$refs[‘canvas‘].getContext(‘2d‘)

// 把当前视频帧内容渲染到canvas上

ctx.drawImage(this.$refs[‘video‘], 0, 0, 340, 280)

// 转base64格式、图片格式转换、图片质量压缩

let imgBase64 = this.$refs[‘canvas‘].toDataURL(‘image/jpeg‘, 0.7) // 由字节转换为KB 判断大小

let str = imgBase64.replace(‘data:image/jpeg;base64,‘, ‘‘)

let strLength = str.length

let fileLength = parseInt(strLength - (strLength / 8) * 2) // 图片尺寸  用于判断

let size = (fileLength / 1024).toFixed(2)

console.log(size) // 上传拍照信息  调用接口上传图片 .........

// 保存到本地

// let ADOM = document.createElement(‘a‘)

// ADOM.href = this.headImgSrc

// ADOM.download = new Date().getTime() + ‘.jpeg‘

// ADOM.click()

},

// 关闭摄像头

closeCamera() {

if (!this.$refs[‘video‘].srcObject) return

let stream = this.$refs[‘video‘].srcObject

let tracks = stream.getTracks()

tracks.forEach(track => {

track.stop()

})

this.$refs[‘video‘].srcObject = null

}

}

}

</script>

原文地址:https://www.cnblogs.com/szqtiger/p/11959313.html

时间: 2024-11-07 10:21:52

谷歌使用navigator.mediaDevices.getUserMedia 调用摄像头拍照功能,不兼容IE的相关文章

navigator.mediaDevices.getUserMedia

navigator.mediaDevices.getUserMedia: 作用:为用户提供直接连接摄像头.麦克风的硬件设备的接口 语法: navigator.mediaDevices.getUserMedia(constraints).then(function(mediaStream) { ..... } catch(function(error) { .... } 参数表示的意义 constraint:指定请求媒体的类型{video:布尔值:audio:布尔值} mediaStream:st

Ionic系列——调用摄像头拍照和选择图库照片功能的实现

1.需求描述 最近要做一个功能就是调用摄像头拍照,然后上传照片的功能,或者直接打开图库选择照片然后上传. 2.准备 ①.添加插件$cordovaCamera cordova plugin add cordova-plugin-camera ②.在controller中添加依赖 3.代码实现 $scope.takePhoto=function(){     var options = {                                                        

android: 调用摄像头拍照

很多应用程序都可能会使用到调用摄像头拍照的功能,比如说程序里需要上传一张图片 作为用户的头像,这时打开摄像头拍张照是最简单快捷的.下面就让我们通过一个例子来学 习一下,如何才能在应用程序里调用手机的摄像头进行拍照. 新建一个 ChoosePicTest 项目,然后修改 activity_main.xml 中的代码,如下所示: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" andro

HTML5+Canvas+jQuery调用手机拍照功能实现图片上传(二)

上一篇只讲到前台操作,这篇专门涉及到Java后台处理,前台通过Ajax提交将Base64编码过的图片数据信息传到Java后台,然后Java这边进行接收处理,通过对图片数据信息进行Base64解码,之后使用流将图片数据信息上传至服务器进行保存,并且将图片的路径地址存进数据库.ok,废话不多说了,直接贴代码吧. 1.前台js代码: $.ajax({ async:false,//是否异步 cache:false,//是否使用缓存 type: "POST", data:{fileData:fi

使用html5绘图技术事项调用摄像头拍照;

在mui框架中调用手机摄像头进行拍照可以直接使用原声的HTML5: 以下是HTML代码 <video id="video" width="640" height="480" autoplay></video> <!--这一行是调用摄像头之后呈现的画面--> <button id="snap">Snap Photo</button> <!--拍照按钮-->

H5调用摄像头拍照

<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>摄像头拍照</title> <meta name="viewport" content="widt

android调用摄像头拍照

调用手机摄像头拍照,获取拍照后的图片数据.以下代码是在activity中:     // 调用摄像头         Button b = (Button) findViewById(R.id.btn1);     b.setOnClickListener(new View.OnClickListener() {         @Override         public void onClick(View v) {             // Here we fire the inte

【MediaKit】WPF项目中 调用摄像头拍照的开发包

今天遇到一个 人事的项目,项目中需要调用摄像头给员工照相.如何解决这个问题呢? 介绍一个开发包给你,MediaKit.论坛里头的人都说好,但是黑兔觉得大家好才是真的好.你不妨试试~ 第一步:添加WPFMediaKit.dll 文件到项目中 第二步:把WPFMediaKit.dll文件引用进来. 步骤 右击引用->添加引用->浏览选项卡->选择WPFMediaKit.dll文件所在的位置. 第三步:在窗口顶端加入如下代码(注意不要该意记)就像using一个类样. xmlns:WPFMedi

C#调用摄像头拍照

在winforn程序中,经常会遇到一些调用硬件的功能,这里给大家讲解的事使用AForge调用摄像头 首先引用用dll文件 这些都是需要应用的dll文件,其中AForge.Controls.dll文件里面封装了一些void控件,在工具箱中应用文件就会出现如下控件 这里会使用到VideoSourcePlayer控件,下面是底层代码 using引用 using System.Drawing.Imaging;using System.Windows;using System.IO;using Syste