Я пытаюсь заменить устаревший navigator.getUserMedia
на navigator.mediaDevices.getUserMedia
, но при попытке получить эту ошибку:
TypeError: Невозможно установить свойство 'localStream' из неопределенного
Это мой HTML:
<video ref="videoPlayer" hide.bind="screenSharing" id="videoPlayer" autoplay muted></video>
Я использую Aurelia Environment, и мой 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
Я пытался также добавить EventListener, когда документготов, но у меня все еще есть эта проблема;если я использую закомментированную часть с устаревшим navigator.getUserMedia, все работает