2016-05-18 19 views
0

Zurück im Jahr 1997 würde eine Seite in IE gut aussehen, aber die gleiche Seite würde in Netscape gebrochen aussehen. Ich habe das Gefühl, dass ich 2016 mit WebRTC dasselbe mache. Ich habe ein Social Media für Taub geschaffen. Im Moment können sie Nachrichten chatten und posten. Ich möchte Videokonferenzen hinzufügen, bei denen jede Postleitzahl und jede Stadt/jeder Staat einen "Raum" hat. Hier ist die öffentliche Verbindung zu einem der Räume (Postleitzahl).WebRTC-Video-Chat funktioniert in FF, aber nicht in Chrome

https://ikasl.azurewebsites.net/m/vface.aspx?area=94519

Also haben wir etwas zusammen, die perfekt in FF funktioniert. Aber es funktioniert nicht in meinem Chrome. Was ich bekomme, ist eine Black Box. Browser-Protokolle (Konsole) sind klar. Keine Fehler. Sieht irgendjemand etwas falsch mit diesem Code, der es nur in FF funktioniert? Dank

  var openVideoChat = function() { 
      if (chatIsOpened) { return false; }; 
      var connection = new RTCMultiConnection(); 
      connection.socketURL = herokuURL; 
      connection.socketMessageEvent = 'video-conference-demo'; 
      connection.session = { audio: true, video: true }; 
      connection.sdpConstraints.mandatory = { OfferToReceiveAudio: true, OfferToReceiveVideo: true }; 
      connection.videosContainer = document.getElementById('videos-container'); 
      connection.onstream = function(event) { 
       var width = parseInt(connection.videosContainer.clientWidth/2) - 20; 
       var mediaElement = getMediaElement(event.mediaElement, { 
        title: event.userid, 
        buttons: [ 
         'full-screen', 
         'mute-audio', 
         'mute-video', 
         'stop', 
         'stop-others' 
        ], 
        width: width, 
        showOnMouseEnter: true 
       }); 
       connection.videosContainer.appendChild(mediaElement); 

       setTimeout(function() { mediaElement.media.play(); }, 5000); 
       mediaElement.id = event.streamid; 
      }; 
      connection.onstreamended = function(event) { 
       var mediaElement = document.getElementById(event.streamid); 
       if(mediaElement) { mediaElement.parentNode.removeChild(mediaElement); } 
      }; 
      connection.openOrJoin(roomid); 
      chatIsOpened = true; 

      var bitrates = { 
       audio: connection.bandwidth.audio, 
       screen: connection.bandwidth.screen, 
       video: connection.bandwidth.video, 
      }; 

      var bitrateIndicatorEl = document.getElementById('bitrateIndicator'); 
      bitrateIndicatorEl.innerHTML = ('Bitrates: [audio: <b>' + bitrates.audio 
       + ' kbps</b>] [your: <b>' + bitrates.screen 
       + ' kbps</b>] [others: <b>' + bitrates.video + ' kbps</b>]'); 
     }; 

     var modal = new tingle.modal({ 
      footer: true, 
      stickyFooter: false, 
      onOpen: function() { }, 
      onClose: function() { } 
     }); 
     modal.setContent('<div id="videos-container"</div><div id="bitrateIndicator"></div>'); 
     modal.addFooterBtn('Close popup', 'tingle-btn tingle-btn--primary', function() { 
      modal.close(); 
     }); 

Antwort

0

Diese Zeile sieht seltsam für mich:

setTimeout(function() { mediaElement.media.play(); }, 5000);

Sie sollten sich etwas autoplay: true auf Ihrem Medienelement, so spielt es automatisch.

+0

Danke. Ich werde das versuchen. – Zuzlx

+0

Ein paar Neuigkeiten dazu. Zunächst einmal sieht es so aus, als ob es in meinem Chrom nicht funktioniert. Ich habe es mit einem anderen Chrom versucht und es sieht so aus, als würde es funktionieren. Zweitens habe ich das 'setTimeout' auskommentiert, aber es gibt keinen Unterschied - funktioniert immer noch in meinem FF, aber nicht in meinem Chrome. Ich habe 'chrome: // webrtc-internals /' in meinem Chrom angesehen, aber es gibt keinen Fehler. Die js Konsole ist auch klar und es gibt keine Fehler. – Zuzlx

Verwandte Themen