webRtc之本地预览摄像头设备绿屏问题

摘要:最近发现,在使用navigator.mediaDevices.getUserMedia({ deviceId: 'xxx'}),指定设备的时候,video播放总是绿屏,发现关闭浏览器硬件加速不会出现,但显然这不是一个最好的方案;
备注: 部分win电脑会出现, 不一定能解决所有问题;因为有的用户电脑是显卡不兼容导致的; 硬件兼容性问题可参考以下两篇文章 浏览器绿屏全局关闭硬件加速 浏览器绿屏仅关闭关video硬件加速

播放后张这样
修复后
上代码

指定采集宽度高度后就不会出现这个绿屏问题

typescript 复制代码
// js
navigator.mediaDevices.getUserMedia({
	video: {
		deviceId: devId,
		// 指定采集尺寸
		width: { ideal: 1280 },
		height: { ideal: 720 },
	}
}).then((stream) => {
     const elm: HTMLVideoElement | any = document.getElementById('devDetectionVideoRef');
     if (elm) {
         elm.srcObject = stream;
     }
}).catch((error) => {
})
// html
<video id="devDetectionVideoRef" className={style.video_element}
	autoPlay
	playsInline
	webkit-playsinline='true'
></video>
// <img src="css" alt="" width="70%" />
.video_element{
	width: 640px;
	height: 480px;
	background-color: #233149;
}
相关推荐
拾光拾趣录5 分钟前
实现 `this` 对象的深拷贝:从“循环引用崩溃”到生产级解决方案
前端·javascript
无羡仙7 分钟前
90%的人都在用的下拉刷新,我把它拆了!
前端·node.js
一念杂记7 分钟前
【实战系列】30分钟开发微信小程序登录&注册&绑定功能
前端·后端·微信小程序
阳焰觅鱼7 分钟前
LRU缓存
前端
福娃B9 分钟前
【CSS】面试必会—浮动布局:让元素“漂浮”的艺术
前端·css·面试
中微子10 分钟前
TypeScript 与 React:现代前端开发的黄金搭档
前端
用户25191624271110 分钟前
Canvas之颜色渐变
前端·javascript·canvas
ZzMemory12 分钟前
详解JavaScript 解构赋值:让你的代码更优雅
前端·javascript·面试
PineappleCoder13 分钟前
CSS那些你不得不懂的“潜规则”(二)
前端·css·面试
前端西瓜哥14 分钟前
图形编辑器开发的一些坑
前端