TypeError при использовании navigator.mediaDevices.getUserMedia - PullRequest
0 голосов
/ 05 февраля 2019

Я пытаюсь заменить устаревший 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, все работает

1 Ответ

0 голосов
/ 05 февраля 2019

Вы использовали функцию стрелки со старым navigator.getUserMedia, но используете классическую функцию с navigator.mediaDevices.getUserMedia.* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * this - это не то, что вы думаете, а то, что вы думаете.

...