Видео не воспроизводится на другой стороне в WebRTC Simple-Peer Angular 7 - PullRequest
0 голосов
/ 16 декабря 2018

Я работаю над WebRTC и соединяю двухранговые узлы на разных страницах браузера, один из них, являющийся инициатором, поставляется с этим URL-адресом http://localhost:4200/#init, а другой, который является видеоприемником, поставляется с этим URL-адресом http://localhost:4200/.После успешного установления соединения 1-й узел делится своим видео с другим, но проблема, с которой я сталкиваюсь, заключается в том, что другой узел не воспроизводит или не получает видео.

export class SimpPeerComponent implements OnInit {

  targetpeer: any;
  peer: any;
  stream: MediaStream

  async ngOnInit() {
    try {
      // This peer is the initiator and transfering the streaming to the other connected peer 
      if (location.hash === '#init') {
        let stream = await navigator.mediaDevices.getUserMedia({ video: true })
        this.peer = new SimplePeer({
          initiator: location.hash === '#init',
          stream: stream
        })
      }
      else {
        this.peer = new SimplePeer()
      }

      // triggers when signal is sent from remote
      this.peer.on('signal', function (data) {
        console.log(JSON.stringify(data));
      })

      this.peer.on('data', (data) => {
        console.log('Received Data: ' + data)
      })

      this.peer.on('stream', (stream) => {
        // got remote video stream, now let's show it in a video tag
        this.videoElement.srcObject = stream
      })
    } catch (error) {
      console.log(error)
    }
  }

  connect() {
    this.peer.signal(this.targetpeer);
  }

  message() {
    this.peer.send('Hello world');
  }

  @ViewChild('myvideo') videoElementRef: ElementRef;
  get videoElement(): HTMLVideoElement {
    return this.videoElementRef.nativeElement
  }
}

<div class="row">
    <div class="col d-flex justify-content-center">
        <video #myvideo autoplay controls class="video mb-2"></video>
    </div>
</div>

<div class="row">
    <div class="col d-flex justify-content-center">
        <input type="text" class="form-control-sm mr-1" [(ngModel)]="targetpeer">
        <button class="btn btn-success" (click)="connect()">Connect</button>
        <button class="btn btn-primary" (click)="message()">Send</button>
    </div>
</div>

В чем может быть проблема?Пожалуйста, руководство !!!

1 Ответ

0 голосов
/ 17 декабря 2018

Простая глупая ошибка, которую я совершал, заключалась в том, что это поддерживается только в браузере chrome уже несколько дней, но я запускал это в Opera и тратил весь свой день, чтобы устранить эту ошибку: D

...