Javascript 如何替换URL.createObjectURL
我想在以下代码中替换URL.createObjectURL,因为它已被弃用。问题是我不知道用什么和如何替换它 这是我的密码:Javascript 如何替换URL.createObjectURL,javascript,Javascript,我想在以下代码中替换URL.createObjectURL,因为它已被弃用。问题是我不知道用什么和如何替换它 这是我的密码: var canvas = document.getElementById('canvas'); var context = canvas.getContext('2d'); var video = document.getElementById('video'); var mediaConfig = { video: true };
var canvas = document.getElementById('canvas');
var context = canvas.getContext('2d');
var video = document.getElementById('video');
var mediaConfig = { video: true };
var errBack = function(e) {
console.log('An error has occurred!', e)
};
if(navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {
navigator.mediaDevices.getUserMedia(mediaConfig).then(function(stream) {
video.src = window.URL.createObjectURL(stream);
video.play();
});
}
else if(navigator.getUserMedia) {
navigator.getUserMedia(mediaConfig, function(stream) {
video.src = stream;
video.play();
}, errBack);
} else if(navigator.webkitGetUserMedia) {
navigator.webkitGetUserMedia(mediaConfig, function(stream){
video.src = window.webkitURL.createObjectURL(stream);
video.play();
}, errBack);
} else if(navigator.mozGetUserMedia) {
navigator.mozGetUserMedia(mediaConfig, function(stream){
video.src = window.URL.createObjectURL(stream);
video.play();
}, errBack);
}
document.getElementById('snap').addEventListener('click', function() {
context.drawImage(video, 0, 0, width, height);
});
检查:
注意:使用MediaStream对象(不要与MediaSource混淆)作为此方法的输入正在被弃用。目前正在讨论是否应该彻底删除它。因此,您应该尽量避免在MediaStreams中使用此方法,而应该使用HTMLMediaElement.srcObject
它明确告诉您要使用。函数createObjectURL()已弃用 替换此项:
video.src = window.URL.createObjectURL(stream);
为此:
video.srcObject = stream;
由于大多数chrome和Firefox都不赞成使用某些URL调用,而不是使用window.URL.createObjectURL,
您应该使用HTMLMediaElement.srcObject 似乎很有启发性(将
srcObject
属性设置为流)请添加完整答案,而不是仅提供链接答案。