javascript如何操作摄像头_MediaDevices API如何使用

admin 百科 14
JavaScript操作摄像头主要靠MediaDevices.getUserMedia(),需HTTPS/localhost安全上下文;通过constraints指定视频、音频、分辨率、facingMode或deviceId;用enumerateDevices()枚举设备并切换;需妥善处理NotAllowedError、NotFoundError等错误。

javascript如何操作摄像头_MediaDevices API如何使用-第1张图片-佛山资讯网

JavaScript 操作摄像头主要靠 MediaDevices.getUserMedia(),它是 MediaDevices API 的核心方法,用于请求用户授权并获取音视频流(MediaStream)。只要浏览器支持(Chrome、Firefox、Edge、Safari 11+),就能用,无需插件。

获取摄像头权限并拿到视频流

调用 navigator.mediaDevices.getUserMedia(),传入约束对象(constraints)指定需要视频、音频或两者。最简示例:

const constraints = { video: true };
navigator.mediaDevices.getUserMedia(constraints)
  .then(stream => {
    const video = document.querySelector('video');
    video.srcObject = stream; // 直接赋值给 <video> 元素
  })
  .catch(err => console.error('访问摄像头失败:', err));

登录后复制

注意:必须在安全上下文(HTTPS 或 localhost)中运行,否则会直接拒绝请求。

控制摄像头参数(如分辨率、帧率、设备选择)

通过更精细的 constraints 可以指定偏好设置。例如固定 720p 分辨率、启用高帧率、或指定某台物理摄像头:

立即学习“Java免费学习笔记(深入)”;

  • 基础分辨率控制:{ video: { width: { ideal: 1280 }, height: { ideal: 720 } } }
  • 强制最小尺寸:{ width: { min: 640 }, height: { min: 480 } }
  • 选择前置/后置摄像头(移动端常用):{ facingMode: 'user' }(前置)或 'environment'(后置)
  • 指定设备 ID(需先用 enumerateDevices() 获取):{ deviceId: { exact: 'xxx...' } }

不是所有参数都能强制生效,浏览器会尽力满足,但最终以实际可用能力为准。

标签: javascript java idea 浏览器 edge safari ai stream

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~