gpt4 book ai didi

javascript - 使用 navigator.mediaDevices.getUserMedia 时出现类型错误

转载 作者:行者123 更新时间:2023-12-03 00:15:40 29 4
gpt4 key购买 nike

我试图用 navigator.mediaDevices.getUserMedia 替换已弃用的 navigator.getUserMedia 但在尝试时出现此错误:

TypeError: Cannot set property 'localStream' of undefined

这是我的 HTML:

   <video ref="videoPlayer" hide.bind="screenSharing" id="videoPlayer" autoplay muted></video>

我正在使用 Aurelia 环境,我的 javascript 是这样的:

attached() {

if (!this.localStream) {
this.getLocalMedia();
}
}

getLocalMedia() {
let constraints: MediaStreamConstraints = {
video: true,
audio: true
};

navigator.mediaDevices.getUserMedia(constraints)
.then(function (stream) {
console.log('Got mic+video stream', stream);
this.localStream = stream;
this.videoPlayer.srcObject = this.localStream;
this.videoPlayer.srcObject = stream;
})
.catch (function (err) {
console.error(err);
});
// navigator.getUserMedia(constraints, (stream) => {
// console.log('Got mic+video stream', stream);
// this.localStream = stream;
// this.videoPlayer.srcObject = this.localStream;
// },
// (err) => {
// console.error(err);
// }
// );

}

有人能想象出什么问题吗?我正在使用 Electron 创建一个应用程序。

我在互联网上看到其他人也有类似的问题,所以我打印了流:

Got mic+video stream 
MediaStream {id: "EIGkOQeyfsaRpweVgRG8eQiZfiuJ2HV3QZqW", active: true, onaddtrack: null, onremovetrack: null, onactive: null…}
active: true
id: "EIGkOQeyfsaRpweVgRG8eQiZfiuJ2HV3QZqW"
onactive: null
onaddtrack: null
oninactive: null
onremovetrack: null
__proto__: MediaStream

我也尝试在文档准备好时添加事件监听器,但仍然遇到这个问题;如果我将注释部分与已弃用的 navigator.getUserMedia 一起使用,则一切正常

最佳答案

您在旧的 navigator.getUserMedia 中使用了箭头函数,但在 navigator.mediaDevices.getUserMedia 中使用了经典函数。如Andreas saidthis 并不是您想象的那样,这些样式之间的行为有所不同。

关于javascript - 使用 navigator.mediaDevices.getUserMedia 时出现类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54531817/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com