MediaDevices.getUserMedia 的权限和资源生命周期怎样处理?
理解摄像头、麦克风权限、设备约束、MediaStreamTrack 停止和安全上下文要求。
参考答案
getUserMedia() 只能在满足安全上下文和权限条件时请求媒体设备。约束可以表达分辨率、朝向或设备偏好,但浏览器可能无法满足,调用应处理 NotAllowedError、NotFoundError、OverconstrainedError 等失败。
拿到 MediaStream 后,要把 track 连接到视频、音频或 WebRTC;不再使用时调用每条 track 的 stop() 释放摄像头和麦克风指示灯。组件卸载、切换设备和页面进入后台都要有清理策略。
权限提示不是业务授权的替代。界面应说明用途、允许用户拒绝,并避免把原始音视频无意上传;服务端仍需单独处理上传、鉴权和隐私保留。