J*aScript通过MediaDevices.getUserMedia()获取音视频流,传入{video:true}、{audio:true}或两者组合的约束对象,返回Promise,成功后将MediaStream赋给video.srcObject即可预览,需设autoplay和muted;可独立控制轨道启停与切换摄像头,权限拒绝时catch捕获错误,且必须HTTPS(localhost除外)。

J*aScript 通过 MediaDevices.getUserMedia() 获取摄像头和麦克风的媒体流,这是现代浏览器支持的标准 API,无需插件或第三方库即可实现音视频采集。
调用 n*igator.mediaDevices.getUserMedia() 并传入约束对象,指定需要的媒体类型:
{ video: true }
{ audio: true }
{ video: true, audio: true }
该方法返回 Promise,成功后得到一个 MediaStream 对象,可直接赋给 <video></video> 元素的 srcObject 属性播放画面(注意:不再用 URL.createObjectURL(),已废弃)。
将获取到的流绑定到 <video></video> 标签上即可预览:
const video = document.getElementById('myVideo');
n*igator.mediaDevices.getUserMedia({ video: true })
.then(stream => {
video.srcObject = stream;
})
.catch(err => console.error('访问失败:', err));
确保 <video></video> 设置了 autoplay 和 muted(尤其在自动播放策略严格的浏览器中),否则可能静音或不启动。
Brev AI
Brev.ai:搭载Suno AI V3.5技术的免费AI音乐生成器
437
查看详情
流中的每个轨道(MediaStreamTrack)可独立操作:
stream.getVideoTracks()[0].enabled = false
stream.getAudioTracks()[0].enabled = false
getUserMedia({ video: { facingMode: 'user' } }) 或 { facingMode: { exact: 'environment' } }
注意:切换设备需重新调用 getUserMedia,不能仅靠修改约束对象;多次调用前建议先用 stream.getTracks().forEach(track => track.stop()) 释放旧流。
用户拒绝授权会触发 Promise 的 catch,错误对象的 name 字段常见值有 "NotAllowedError"(用户拒绝)、"NotFoundError"(无设备)、"NotReadableError"(设备被占用)。
兼容性方面,所有主流现代浏览器均支持 mediaDevices.getUserMedia,但旧版 Safari 需要 n*igator.webkitGetUserMedia(已淘汰),建议用标准写法 + 简单降级提示即可。HTTPS 是强制要求(localhost 除外),HTTP 页面无法调用该 API。
以上就是J*aScript如何操作摄像头与麦克风?的详细内容,更多请关注其它相关文章!
# 中文网
# seo编辑案例
# 营销公司推广的抖音小店
# 淘宝关键词排名突然消失
# 呼市建设官方网站
# 剪映上的营销推广怎么上传
# 衡水天猫网站推广
# 南阳 网站排名优化推广
# 惠州seo优化服务商
# 丹东seo助手哪个便宜
# 商城网站建设完全教程
# 后将
# 解决问题
# javascript
# 相关文章
# 有何区别
# 这是
# 如何实现
# 有什么区别
# 有哪些
# 音视频
# stream
# safari
# 浏览器
# java
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
优化推广96088 】
【
技术知识133117 】
【
IDC资讯59369 】
【
网络运营7196 】
【
IT资讯61894 】
相关推荐:
抖音号升级成企业资质怎么弄?有什么好处?
c++20的指定初始化(Designated Initializers)怎么用_c++ C风格结构体初始化
在J*a中如何实现类的继承与方法重用_OOP继承方法重用技巧分享
win11怎么设置默认终端为Windows Terminal Win11替代CMD和PowerShell【技巧】
如何使用 Optional 类型并满足 Pylint 的类型检查
win11自带录屏文件保存在哪里 Win11 Game Bar录制视频默认路径【分享】
J*a中逻辑运算符如何使用_逻辑与或非的基础用法讲解
实现可重用自定义Python Range类
FullCalendar自定义按钮样式定制指南
realme 10 Pro息屏方案_realme 10 Pro省电策略
优酷官网登录入口电脑版 优酷官网网址入口
如何使用CSS Grid实现“大方块左侧,小方块右侧垂直堆叠”的水平布局
我的世界官方网址入口 我的世界游戏主页直达入口
Win10怎么设置快速启动 Win10开启快速启动设置方法
Win10关闭UAC用户账户控制的方法 Win10降低安全提示等级【技巧】
抖音号显示企业机构号是什么意思?企业机构号申请条件是什么?
J*a实现任务清单管理_集合框架综合入门练手
易车网官网直达入口 易车网在线登录入口
更换小红书群背景怎么换?小红书群规则怎么设置?
Mac怎么关闭按键声音_Mac键盘打字音效设置
铁拳8在线玩 铁拳8在线秒玩入口
解决jQuery多计算器输入字段冲突的教程
性能与资源监视器快捷打开
J*aScript中高效处理用户输入:从Keyup事件到表单提交的优化实践
苹果手机缓存怎么清除_苹果手机缓存如何清除iphone各版本操作步骤
《桃源记2》资源采集攻略
在Peewee中处理PostgreSQL记录重复:一站式数据摄取教程
CSS过渡与滚动滚动事件结合应用_scroll与transition动画
《via浏览器》强制缩放网页设置方法
谷歌浏览器官网地址整理_谷歌浏览器新版直连2026稳定访问
圆通快递官网入口查询单号 手机版官方查询入口
c++如何实现一个简单的RPC框架_c++远程过程调用原理与实践
yandex网页版直接登录 yandex官方入口平台访问方法
J*aScript大数运算_BigInt使用指南
支付宝网页版在线入口 支付宝官网电脑登录入口
PSD转AI文件的简单方法
微信注销后银行卡解绑了吗_微信注销后银行卡解绑状态
Python高效统计字典嵌套列表值在目标列表中的出现次数
Go Goroutine调度与并发执行深度解析
三星A55应用闪退排查步骤_Samsung A55稳定性优化技巧
mysql镜像配置如何设置用户权限组_mysql镜像配置用户组与权限分级管理方法
lol小红书怎么|直播|?lol小红书|直播|是什么意思?
yy漫画登录页面官方入口_yy漫画在线阅读网址入口
邮政快递寄件查询入口 邮政快递收件查询入口
食品生产用水只要符合国家规定的生活饮用水卫生标准就可以吗
抖音小程序怎么开通?小程序开通条件是什么?
《广发易淘金》国债逆回购操作教程
139邮箱登录入口官网 139邮箱登录入口官网网址
cad加载的线型看不见怎么办_cad线型不可见问题解决方法
网站体验不好=浪费钱:如何提升-用户体验效果差
2025-12-19
运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。