我收到警告说,Chrome future 版本中将不推荐使用该功能。

就是这个脚本:

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);
    });
}

记录了摄像头,以便我可以保存它,但控制台中显示以下警告:



但是当我改变时:
this.src = window.URL.createObjectURL(stream);


this.src = window.HTMLMediaElement.srcObject(stream);

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

最佳答案

您误解了HTMLMediaElement是什么。
JavaScript类/原型(prototype)表示HTML的<audio><video>标记,无论是否在HTML中。
对于更多类的解释
页面上的<audio>HTMLAudioElement类型的对象,它扩展了HTMLMediaElement并且又扩展了HTMLElement
如果使用querySelector()getElementById()获得media元素,或者使用createElement("audio")createElement("video")在JavaScript中创建media元素
您将获得HTMLMediaElement的实例。
在您的情况下,thisHTMLMediaElement类的对象。
使用JavaScript,根据经验,如果对象类型名称以HTML开头,则它是指HTML元素/标记。
您需要做的就是改变

this.src = window.URL.createObjectURL(stream);
if ('srcObject' in this) {
  this.srcObject = stream;
} else {
  this.src = window.URL.createObjectURL(stream);
}
这取自Mozilla Documentation
您可以阅读有关如何使用此更改的更多信息,以及从何处获得答案的知识:
https://www.fxsitecompat.com/en-CA/docs/2017/url-createobjecturl-stream-has-been-deprecated/

10-06 14:01