我想在以下代码中替换URL.createObjectURL,因为它已被弃用。问题是我不知道如何替换它。
这是我的代码:
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);
});
答案 0 :(得分:0)
检查https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL:
注意:使用MediaStream对象(不要与MediaSource混淆)作为此方法的输入正在被弃用。正在讨论是否应该彻底删除它。因此,您应该尽量避免在MediaStreams中使用此方法,而应使用HTMLMediaElement.srcObject。
它明确告诉您使用HTMLMediaElement.srcObject。
答案 1 :(得分:0)
不推荐使用功能 createObjectURL()
替换此:
video.src = window.URL.createObjectURL(stream);
对此:
video.srcObject = stream;
答案 2 :(得分:0)
因为大部分 chrome 和 Firefox 都弃用了一些 URL 调用,而不是使用 window.URL.createObjectURL, 你应该使用 HTMLMediaElement.srcObject。 check out this