react项目网页中调用摄像头相机
·
最近写的项目,有一个项目需求,就是在手机端网页中调用摄像头。虽然我觉得这个功能屁用没有,但还是得想办法实现。
1.利用getUserMedia调用摄像头
navigator.mediaDevices.getUserMedia
import React from 'react'
import {message} from 'antd'
export default function Identify() {
function handlePhoto() {
if (navigator.mediaDevices.getUserMedia || navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia) {
console.log('调用了')
getUserMedia({
video: {
width: 480,
height: 320
}
}, success, error);
} else {
alert('不支持访问用户媒体');
}
if (!navigator.mediaDevices) {
message.warning("不支持访问用户媒体")
return
}
function error(error) {
console.log(`访问用户媒体设备失败${error.name}, ${error.message}`);
}
}
function getUserMedia(constraints, success, error) {
if (navigator.mediaDevices.getUserMedia) {
//最新的标准API
navigator.mediaDevices.getUserMedia(constraints).then(success).catch(error);
} else if (navigator.webkitGetUserMedia) {
//webkit核心浏览器
navigator.webkitGetUserMedia(constraints, success, error)
} else if (navigator.mozGetUserMedia) {
//firfox浏览器
navigator.mozGetUserMedia(constraints, success, error);
} else if (navigator.getUserMedia) {
//旧版API
navigator.getUserMedia(constraints, success, error);
}
}
function success(stream) {
let video = document.getElementById('video');
//兼容webkit核心浏览器
let CompatibleURL = window.URL || window.webkitURL;
//将视频流设置为video元素的源
console.log(stream);
// video.src = CompatibleURL.createObjectURL(stream);
video.srcObject = stream;
video.play();
}
return (
<div className='identify'>
<video id='video' ></video>
<button onClick={() => handlePhoto()} >调用摄像头</button>
</div>
)
}
写虽然我看不懂,但CV出来确实在PC端上确实能调用摄像头,但在测试了几个手机浏览器,发现没啥用。
2.input方法调用
<input type="file" accept="image/*" capture="camera" />
最后找到了这个,短小却使用,点击就调用了手机的相机
更多推荐


所有评论(0)