iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >怎么在HTML5中实现拍照和摄像机功能
  • 651
分享到

怎么在HTML5中实现拍照和摄像机功能

2023-06-09 13:06:51 651人浏览 八月长安
摘要

本篇文章为大家展示了怎么在HTML5中实现拍照和摄像机功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。拍照html5的getUserMedia api为用户提供访问硬件设备媒体(摄像头、视频、音频

本篇文章为大家展示了怎么在HTML5中实现拍照和摄像机功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

拍照

html5的getUserMedia api为用户提供访问硬件设备媒体(摄像头、视频、音频、地理位置等)的接口,基于该接口,开发者可以在不依赖任何浏览器插件的条件下访问硬件媒体设备。

浏览器兼容性如下:

怎么在HTML5中实现拍照和摄像机功能

从上图可以看到,主流浏览器Firefox、Chrome、Safari、Opera等等已经全面支持。

1、获取视频流,并用video标签播放。

<video id="video" autoplay></video>        --------------------------------------------------------------        const videoConstraints = { width: 1366, height: 768 };    const videonode = document.querySelector('#video');    let stream = await navigator.mediaDevices.getUserMedia({ audio: true, video: videoConstraints });    videoNode.srcObject = stream;    videoNode.play();

2、多个摄像头设备,如何切换?

// enumerateDevices获取所有媒体设备    const mediaDevices = await navigator.mediaDevices.enumerateDevices();    // 通过设备实例king属性videoinput,过滤获取摄像头设备    const videoDevices = mediaDevices.filter(item => item.kind === 'videoinput') || [];    // 获取前置摄像头    const videoDeviceId = videoDevices[0].deviceId;    const videoConstraints = { deviceId: { exact: videoDeviceId }, width: 1366, height: 768 };    let stream = await navigator.mediaDevices.getUserMedia({ audio: true, video: videoConstraints });    // 获取后置摄像头    const videoDeviceId = videoDevices[1].deviceId;    const videoConstraints = { deviceId: { exact: videoDeviceId }, width: 1366, height: 768 };    let stream = await navigator.mediaDevices.getUserMedia({ audio: true, video: videoConstraints });        // 依次类推...

3、拍照保存图片

// 通过canvas捕捉video流,生成base64格式图片    const canvas = document.createElement('canvas');    const context = canvas.getContext('2d');    canvas.width = 1366;    canvas.height = 768;    context.drawImage(videoNode, 0, 0, canvas.width, canvas.height);    download(canvas.toDataURL('image/jpeg'));    // 下载图片    function download (src) {        if (!src) return;        const a = document.createElement('a');        a.setAttribute('download', new Date());        a.href = src;        a.click();    }

4、关闭摄像头设备

let stream = await navigator.mediaDevices.getUserMedia({ audio: true, video: videoConstraints });    // 3s后关闭摄像头    setTimeout(function () {        stream.getTracks().forEach(track => track.stop());        stream = null;    }, 3000);

到此完成简单的相机拍照功能

摄像

摄像基本流程,是录制一段视频流并保存为音视频文件。HTML5 MediaRecorder对象提供了多媒体录音和录视频功能。

浏览器兼容性如下:

怎么在HTML5中实现拍照和摄像机功能

从上图所示,浏览器对MediaRecorder兼容性远不如getUserMedia,目前只有Chrome、Firefox对MediaRecorder支持较好。

==注意:摄像预览播放器video标签要设置静音muted(消除回声导致的刺耳噪音)==

const videoConstraints = { width: 1366, height: 768 };    let stream = await navigator.mediaDevices.getUserMedia({ audio: true, video: videoConstraints });    let mediaRecorder = new MediaRecorder(stream);    let mediaRecorderChunks = []; // 记录数据流       mediaRecorder.ondataavailable = (e) => {        mediaRecorderChunks.push(e.data);    };        mediaRecorder.onstop = (e) => {        // 通过Blob对象,创建文件二进制数据实例。        let recorderFile = new Blob(mediaRecorderChunks, { 'type' : mediaRecorder.mimeType });        mediaRecorderChunks = [];        const file = new File([this.recorderFile], (new Date).toISOString().replace(/:|\./g, '-') + '.mp4', {            type: 'video/mp4'        });        download(URL.createObjectURL(file));        // 下载视频        function download (src) {            if (!src) return;            const a = document.createElement('a');            a.setAttribute('download', new Date());            a.href = src;            a.click();        }    };        mediaRecorder.stop(); // 停止录制,触发onstop事件

上述内容就是怎么在HTML5中实现拍照和摄像机功能,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网精选频道。

--结束END--

本文标题: 怎么在HTML5中实现拍照和摄像机功能

本文链接: https://www.lsjlt.com/news/256126.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么在HTML5中实现拍照和摄像机功能
    本篇文章为大家展示了怎么在HTML5中实现拍照和摄像机功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。拍照HTML5的getUserMedia API为用户提供访问硬件设备媒体(摄像头、视频、音频...
    99+
    2023-06-09
  • 怎么用HTML5实现调用手机摄像头拍照功能
    本篇内容介绍了“怎么用HTML5实现调用手机摄像头拍照功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2022-10-19
  • 如何使用HTML5实现超酷摄像头拍照功能
    这篇文章给大家分享的是有关如何使用HTML5实现超酷摄像头拍照功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。WebRTC可能是明年最受关注的HTML5标准了,Mozilla为...
    99+
    2022-10-19
  • Android怎么调用手机摄像头拍照和录音功能
    本文小编为大家详细介绍“Android怎么调用手机摄像头拍照和录音功能”,内容详细,步骤清晰,细节处理妥当,希望这篇“Android怎么调用手机摄像头拍照和录音功能”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。调...
    99+
    2023-06-29
  • 怎么用Java+OpenCV调用摄像头实现拍照功能
    这篇文章主要介绍了怎么用Java+OpenCV调用摄像头实现拍照功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么用Java+OpenCV调用摄像头实现拍照功能文章都会有所收获,下面我们一起来看看吧。环境准...
    99+
    2023-06-29
  • Android 实现调用系统照相机拍照和录像的功能
    本文实现android系统照相机的调用来拍照 项目的布局相当简单,只有一个Button: <RelativeLayout xmlns:android="http://s...
    99+
    2022-06-06
    调用 系统 相机 Android
  • Android中怎么实现拍照功能
    这期内容当中小编将会给大家带来有关Android中怎么实现拍照功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。解析:1)判断是否有摄像头checkCameraHardware(this) 2)获得相机c...
    99+
    2023-05-30
    android
  • 怎么在SAP UI5应用里添加使用摄像头拍照的功能
    本篇内容介绍了“怎么在SAP UI5应用里添加使用摄像头拍照的功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!技术实现的要点:(1) 在w...
    99+
    2023-06-04
  • 怎么在Android应用中实现一个单击拍照长按录像功能
    怎么在Android应用中实现一个单击拍照长按录像功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在modlue gradle中添加compile '...
    99+
    2023-05-31
    android roi
  • Android中怎么实现微信朋友圈拍照上传功能
    Android中怎么实现微信朋友圈拍照上传功能,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1. PhotoPicker的使用这是一个支持选择多张图片,点击图片放大,图片之间左...
    99+
    2023-05-30
  • HTML5中如何使用Plus实现手机APP拍照或相册选择图片上传功能
    这篇文章给大家分享的是有关HTML5中如何使用Plus实现手机APP拍照或相册选择图片上传功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。利用HTML Plus的Camera、GalleryIO、Storage...
    99+
    2023-06-09
  • 怎么在HTML5中实现签到 功能
    本篇文章给大家分享的是有关怎么在HTML5中实现签到 功能 ,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。//生成日期数据    fun...
    99+
    2023-06-09
  • 怎么在Html5中实现title吸顶功能
    怎么在Html5中实现title吸顶功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。吸顶功能吸顶是一种比较常见的交互效果,当页面滑出屏幕边界,标题会自动吸附在屏幕边缘,用于提...
    99+
    2023-06-09
  • 怎么在html5中实现一个时钟功能
    这期内容当中小编将会给大家带来有关怎么在html5中实现一个时钟功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。<!DOCTYPE HTML><html><hea...
    99+
    2023-06-09
  • 怎么在Html5中实现微信分享功能
    这期内容当中小编将会给大家带来有关怎么在Html5中实现微信分享功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1、安装 weixin-js-sdknpm install weixin-js-...
    99+
    2023-06-09
  • 怎么在HTML5中使用websocket实现直播功能
    这篇文章给大家介绍怎么在HTML5中使用websocket实现直播功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。录像页面HTML结构<video autoplay id="sou...
    99+
    2023-06-09
  • 怎么在HTML5中实现移动端复制功能
    本篇文章为大家展示了怎么在HTML5中实现移动端复制功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。使用clipboard.js实现移动端粘贴复制 clipboard.js是一款很强大的粘贴复制的...
    99+
    2023-06-09
  • 怎么在Html5中实现一个剪切板功能
    这期内容当中小编将会给大家带来有关怎么在Html5中实现一个剪切板功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1.不带input输入框的原生js方法这种情况适用于复制非输入框中的文本到剪切板&nbs...
    99+
    2023-06-09
  • 怎么在前端中实现一个打印图像功能
    本篇文章给大家分享的是有关怎么在前端中实现一个打印图像功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一.  尝试LODOP打印插件之前前端表单打印功能有使用过LO...
    99+
    2023-06-09
  • 怎么在html5项目中实现一个录音功能
    这篇文章给大家介绍怎么在html5项目中实现一个录音功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。步骤1由于新的api是通过navigator.mediaDevices.getUserMedia,且返回一个prom...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作