首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏huofo's blog

    Web调用网络摄像头及各类错误处理

    开发遇到的各种问题 浏览器控制台提示mediaDevices.getUserMedia is not a function 由于受浏览器的限制,navigator.mediaDevices.getUserMedia let mediaDevices = navigator.mediaDevices || null if( mediaDevices === null ) { console.warn navigator.mediaDevices || ! let mediaDevices = navigator.mediaDevices || null if( mediaDevices === null ) { console.warn let mediaDevices = navigator.mediaDevices || null if( mediaDevices === null ) { console.warn(`请确定是否处于

    2.2K30编辑于 2022-03-18
  • 来自专栏视频云*行业分享

    摆脱客户端?网页发起直播势在必行!

    navigator.mediaDevices.enumerateDevices() 如果枚举成功将会返回一个包含MediaDeviceInfo实例的数组,它包含了可用的多媒体输入输出设备的信息。 屏幕共享 MediaDevices.getDisplayMedia Chrome 72+、Firefox 66+版本已经实现了WebRTC规范中的MediaDevices.getDisplayMedia 获取到streamId后,通过mediaDevices.getUserMedia得到stream。 Firefox 33之后可以直接通过使用mediaDevices.getUserMedia,指定约束对象mediaSource为screen、window、application来实现屏幕共享。 MediaDevices/getDisplayMedia

    3.5K61发布于 2020-05-07
  • 来自专栏陶士涵的菜地

    视频在线客服系统开发时实现共享屏幕,需要先获取屏幕视频流,支持PC和android

    如果想要实现共享屏幕,首先需要获取本地屏幕媒体流 navigator.mediaDevices.getDisplayMedia() 方法是 WebRTC 的一部分,它可以在现代桌面浏览器中获取屏幕或应用程序的视频和音频流 下面这个方法是支持PC和andorid的函数 function getScreenStream(callback) { if (navigator.mediaDevices && navigator.mediaDevices.getDisplayMedia ) { // 桌面浏览器,使用 getDisplayMedia() 获取屏幕视频流 navigator.mediaDevices.getDisplayMedia({ video: true && navigator.mediaDevices.getUserMedia) { // 移动设备或不支持 getDisplayMedia() 的桌面浏览器,使用 getUserMedia() 获取屏幕视频流 navigator.mediaDevices.getUserMedia({ video: { mediaSource: 'screen' } }) .then((stream

    1.7K20编辑于 2023-02-28
  • 来自专栏前端全栈开发者

    如何使用JavaScript访问设备摄像头(前后)

    第一步是检查浏览器是否支持此 API: if ("mediaDevices" in navigator && "getUserMedia" in navigator.mediaDevices) { 捕获视频流 要捕获由摄像机生成的视频流,我们使用 mediaDevices 对象的 getUserMedia 方法。这个方法接收一个对象,其中包含我们要请求的媒体类型(视频或音频)和一些要求。 const videoStream = await navigator.mediaDevices.getUserMedia({ video: true }); 此调用将询问用户是否允许访问摄像机。 min: 720, ideal: 1080, max: 1440, }, }, }; const videoStream = await navigator.mediaDevices.getUserMedia video"> 标签 const video = document.querySelector("#video"); const videoStream = await navigator.mediaDevices.getUserMedia

    13.9K61发布于 2020-06-10
  • 来自专栏码客

    Webrtc及WEB端音视频设备获取及流处理

    获取设备 所有设备 async function getDevices() { let devices = await navigator .mediaDevices .enumerateDevices label是设备的名称 注意的是默认设备和通讯设备会在名称前拼接了Default或者Communications并用-分隔 获取名称的方式 let devices = await navigator.mediaDevices (d) => d.kind === "audioinput"); console.info(videoinput); } getDevices(); 获取流 基本语法 navigator .mediaDevices navigator.mediaDevices || ! navigator.mediaDevices.getDisplayMedia) { console.log('getDisplayMedia is not supported!')

    3.2K11编辑于 2022-09-23
  • 来自专栏IT杂症

    web H5摄像头-Media-Recorder-API-Demo

    (function () { // 老的浏览器可能根本没有实现 mediaDevices,所以我们可以先设置一个空的对象 if (navigator.mediaDevices === undefined) { navigator.mediaDevices = {}; } if (navigator.mediaDevices.getUserMedia === undefined) { navigator.mediaDevices.getUserMedia = function (constraints) { videoPlaying = false; let v = document.getElementById('v'); let promise = navigator.mediaDevices.getUserMedia

    70230发布于 2021-11-08
  • 来自专栏用户7043603的专栏

    js调用USB摄像头拍照上传照片

    实现:js调用USB摄像头拍照上传照片 注意:部署到线上之后需要使用https才能调用摄像头 参考文档:https://developer.mozilla.org/zh-CN/docs/Web/API/MediaDevices cxt.clearRect(0, 0, this.canvas.width, this.canvas.height); } // 老的浏览器可能根本没有实现 mediaDevices ,所以我们可以先设置一个空的对象 if (navigator.mediaDevices === undefined) { navigator.mediaDevices = { }; } // 一些浏览器部分支持 mediaDevices。 if (navigator.mediaDevices.getUserMedia === undefined) { navigator.mediaDevices.getUserMedia

    4.3K30编辑于 2022-02-25
  • 来自专栏Vue中文社区

    录屏工具开发

    document.querySelector('#start').onclick = function() { if (navigator.mediaDevices && navigator.mediaDevices.getDisplayMedia ) { navigator.mediaDevices.getDisplayMedia({ video: true, audio: false let allStream; document.querySelector('#start').onclick = function() { if (navigator.mediaDevices && navigator.mediaDevices.getDisplayMedia) { navigator.mediaDevices.getDisplayMedia({ document.querySelector('#start').onclick = function() { if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia

    2.4K30发布于 2021-02-26
  • 来自专栏前端加油站

    基于react的录音及音频曲线绘制的组件开发

    navigator.mediaDevices = {}; } // Some browsers partially implement mediaDevices if (navigator.mediaDevices.getUserMedia === undefined) { navigator.mediaDevices.getUserMedia recorder || (recorder && recorder.state === "inactive")) { navigator.mediaDevices.getUserMedia 和MediaRecorder这两个api,navigator.mediaDevices.getUserMedia是用于调用硬件设备的api,在对麦克风摄像头进行操作时都需要用到这个。 之前在做视频相关开发的时候,还用到了mediaDevices下的MediaDevices.ondevicechange和navigator.mediaDevices.enumerateDevices这两个方法分别用来检测输入硬件变化

    2.6K30发布于 2019-07-02
  • 来自专栏TopFE

    给测试小妹做了一个js版屏幕录制工具iREC,她用后竟说喜欢我

    在经过几番的搜索与请教一些做专业人士后,最终我在JavaScript 的BOM编程中找到了这个对象Navigator.mediaDevicesmediaDevices 是 Navigator 只读属性,返回一个 MediaDevices 对象,该对象可提供对相机和麦克风等媒体输入设备的连接访问,也包括屏幕共享。 navigator 下的MediaDevices有以下几个主要接口: ​navigator.mediaDevices.enumerateDevices() 该方法返回 一个promise,包含了系统中可用的媒体输入和输出设备的一系列信息 navigator.mediaDevices || ! navigator.mediaDevices || !

    1.8K20编辑于 2022-01-24
  • 来自专栏码客

    Electron音视频相关

    获取设备 let devices = await navigator .mediaDevices .enumerateDevices() 获取到数组的对象格式如下 { deviceId: "default label是设备的名称 注意的是默认设备和通讯设备会在名称前拼接了Default或者Communications并用-分隔 获取名称的方式 let devices = await navigator.mediaDevices let label = device.label; console.info(label); } } 摄像头 let devices = await navigator.mediaDevices then((devices) => devices.filter((d) => d.kind === "videoinput")); 麦克风 let devices = await navigator.mediaDevices track.stop(); }); } 获取摄像头的流 let device_index = this.device_index; let devices = await navigator.mediaDevices

    2.8K30发布于 2021-02-04
  • 来自专栏White feathe 的博客

    JS 调取摄像头

    getUserMedia.call(navigator, constraints, resolve, reject); }); } // 旧的浏览器可能无法实现mediadevices 可言,所以我们设置一个空的对象第一 if (navigator.mediaDevices === undefined) { navigator.mediaDevices = {}; } // 一些浏览器部分实现mediadevices。 if (navigator.mediaDevices.getUserMedia === undefined) { navigator.mediaDevices.getUserMedia width: 1280, height: 720 } }; navigator.mediaDevices.getUserMedia

    3.2K30编辑于 2021-12-08
  • 来自专栏小鑫同学编程历险记

    媒体数据获取与播放

    API 介绍: MediaDevices: developer.mozilla.org/zh-CN/docs/…      这个 API 提供了如何访问媒体数据输入的设备,如 PC 电脑的摄像头、麦克风 MediaDevices.getUserMedia():      通过传入不同的约束提条件来获取到不同的媒体数据流,前提的用户授权使用的情况下。 MediaDevices.getDisplayMedia():      在得到用户授权后可以选择屏幕、窗口、Chrome 标签页进行媒体流的获取。 constraints: MediaStreamConstraints = { audio: false, video: true }; const stream = await navigator.mediaDevices.getUserMedia constraints: MediaStreamConstraints = { audio: true, video: false }; const stream = await navigator.mediaDevices.getUserMedia

    1.4K20编辑于 2022-12-26
  • 来自专栏神光的编程秘籍

    快速入门 WebRTC:屏幕和摄像头的录制、回放、下载

    思路分析 浏览器提供了 navigator.mediaDevices.getDisplayMedia 和 navigator.mediaDevices.getUserMedia 的 api,分别可以用来获取屏幕的流 'getDisplayMedia' : 'getUserMedia'; const stream = await navigator.mediaDevices[getMediaMethod]({ 'getDisplayMedia' : 'getUserMedia'; const stream = await navigator.mediaDevices[getMediaMethod 涉及到的 api 有 3 个: navigator.mediaDevices.getUserMedia:获取麦克风、摄像头的流 navigator.mediaDevices.getDisplayMedia

    3.8K21编辑于 2021-12-26
  • 来自专栏码客

    Python创建接口项目(FastAPI)及人脸识别

    (function () { // 老的浏览器可能根本没有实现 mediaDevices,所以我们可以先设置一个空的对象 if (navigator.mediaDevices === undefined ) { navigator.mediaDevices = {}; } if (navigator.mediaDevices.getUserMedia === undefined ) { navigator.mediaDevices.getUserMedia = function (constraints) { // 首先,如果有getUserMedia let videoPlaying = false; let v = document.getElementById('v'); let promise = navigator.mediaDevices.getUserMedia

    2.4K40编辑于 2022-06-15
  • 来自专栏码艺坊

    使用浏览器的摄像头:原理、使用方式与实战

    一、原理解析浏览器访问摄像头的能力主要依赖于 WebRTC(Web Real-Time Communication) 标准,其中最关键的 API 是 MediaDevices.getUserMedia( 二、使用方式基本调用navigator.mediaDevices.getUserMedia({ video: true, audio: false }) .then(stream => { const canvas");const snapBtn = document.getElementById("snap");const ctx = canvas.getContext("2d");navigator.mediaDevices.getUserMedia 使用 facingMode 参数:"user" → 前置摄像头"environment" → 后置摄像头(扫码常用)多摄像头选择通过 navigator.mediaDevices.enumerateDevices 六、总结核心 API:navigator.mediaDevices.getUserMedia运行环境:HTTPS / localhost

    1.1K00编辑于 2025-09-08
  • 来自专栏LNMP开发那些事

    html5摄像头调用

    error 失败回调函数 */ function getUserMediaToPhoto(constraints,success,error) { if(navigator.mediaDevices.getUserMedia ){ navigator.mediaDevices.getUserMedia(constraints).then(success).catch(error); } */ function error(error) { console.log('无法访问媒体设备', error); } if(navigator.mediaDevices.getUserMedia 具体的api介绍、使用和参数可以查看MediaDevices.getUserMedia()。

    7.3K30发布于 2019-07-31
  • 来自专栏dandelion1990的专栏

    开发一个 Streamlit 录音组件

    navigator.mediaDevices || ! sampleRate: 16000, channelCount: 1, volume: 1.0 } }; try { const stream = await navigator.mediaDevices.getUserMedia Recorder API,Chrome 的默认格式是 webm/opus,Firefox 的默认格式是 ogg/opus,采样率都是 48000 Hz这里可以查看当前浏览器支持的 constraint:MediaDevices navigator.mediaDevices || ! .'); return; } try { const stream = await navigator.mediaDevices.getUserMedia({audio: true});

    71810编辑于 2024-03-27
  • 来自专栏终身学习者

    炸裂,用JS创建一个录屏功能

    document.querySelector(".record-btn"); btn.addEventListener("click", async function () { let stream = await navigator.mediaDevices.getDisplayMedia document.querySelector(".record-btn") btn.addEventListener("click", async function () { let stream = await navigator.mediaDevices.getDisplayMedia document.querySelector(".record-btn") btn.addEventListener("click", async function () { let stream = await navigator.mediaDevices.getDisplayMedia document.querySelector(".record-btn") btn.addEventListener("click", async function () { let stream = await navigator.mediaDevices.getDisplayMedia document.querySelector(".record-btn") btn.addEventListener("click", async function () { let stream = await navigator.mediaDevices.getDisplayMedia

    1.5K20编辑于 2022-06-15
  • 来自专栏前端资源

    H5利用JS调用电脑摄像头实现拍照效果

    今天学习了调用电脑摄像头,利用canvas画布将视频当前帧转换成图片的实例,其中用到了 mediaDevices.getUserMedia 方法。 2d"),         video = document.getElementById("video");     alert('该页面会调用您的摄像头')     // 旧版本浏览器可能根本不支持mediaDevices ,我们首先设置一个空对象     if (navigator.mediaDevices === undefined) {         navigator.mediaDevices = {};      }     // 一些浏览器实现了部分mediaDevices,我们不能只分配一个对象     // 使用getUserMedia,因为它会覆盖现有的属性。      if (navigator.mediaDevices.getUserMedia === undefined) {         navigator.mediaDevices.getUserMedia 

    10.5K41发布于 2019-11-12
领券