Javascript 弃用createObjectURL并替换为新的HTMLMediaElement.srcObject不';不适用于网络摄像头流

Javascript 弃用createObjectURL并替换为新的HTMLMediaElement.srcObject不';不适用于网络摄像头流,javascript,html,webkit,html5-video,html5-audio,Javascript,Html,Webkit,Html5 Video,Html5 Audio,我得到警告,在Chrome的未来版本中,一个函数将被弃用 这是一个脚本: navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia || navigator.oGetUserMedia; if (navigator.getUserMedia) { navigator.getU

我得到警告,在Chrome的未来版本中,一个函数将被弃用

这是一个脚本:

navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia || navigator.oGetUserMedia;
if (navigator.getUserMedia) {
    navigator.getUserMedia({
        video: true
    }, (stream) => {
        this.src = window.URL.createObjectURL(stream);
        this.stream = stream;
    }, (error) => {
        console.log(error);
    });
}
录制网络摄像头以便保存,但控制台中显示以下警告:

[Deprection]URL.createObjectURL和媒体流已被弃用 并将于2018年7月左右在M68拆除。请使用 改为HTMLMEDIALEMENT.srcObject

但当我改变时:

this.src = window.URL.createObjectURL(stream);


它不再像以前那样工作了。

您对
HTMLMEDIALEMENT
是什么的误解

JavaScript类/原型表示HTML

您可以阅读有关如何使用此更改以及此答案从何处获取知识的更多信息:

如果您使用的是Chrome,您可以使用:

video.srcObject = stream;
而不是:

this.srcObject = stream;

替换
this.src=window.URL.createObjectURL(流)
by
this.srcObject=stream应该可以解决问题。

仅当
video
变量设置为所需的范围,并指向您希望在OP的代码中任何一点都不起作用的视频元素是
video
定义的
这并不能回答我的问题。createObjectURL不仅用于显示视频,还用于下载文件。src标记不接受src对象,现在没有下载文件的解决方案。@tatsu你在说什么回答对问题是正确的如果它对你不起作用,打开一个问题,给我们你的代码看看它有什么问题,不要只是说不回答我的问题,那么你有一个不同的问题。
if ('srcObject' in this) {
  this.srcObject = stream;
} else {
  this.src = window.URL.createObjectURL(stream);
}
video.srcObject = stream;
this.srcObject = stream;