摄像头视频流显示报错Failed to execute 'createObjectURL' on 'URL'

研究即时通信的过程中需要调用摄像头,发现报错,原来是谷歌弃用了这个方法,根据官方提示修改即可

1. 报错信息

Uncaught (in promise) TypeError: Failed to execute 'createObjectURL' on 'URL': No function was found that matched the signature provided.
    at ofwebrtc.js:143

2. 官方说明

URL.createObjectURL()使用说明
原因是 Chrome 升级后,新版本不再支持该用法。
摄像头视频流显示报错Failed to execute 'createObjectURL' on 'URL'_第1张图片
摄像头视频流显示报错Failed to execute 'createObjectURL' on 'URL'_第2张图片

3. 解决方案

所以原先的代码:

video.src = URL.createObjectURL(stream);

需要被修改为:

video.srcObject = stream;

一个兼容的写法如下:

try {
	this.srcObject = stream;
} catch (error) {
	this.src = window.URL.createObjectURL(stream);
}

你可能感兴趣的:(前端)