2017-09-13 3 views
0

Hi Ich entwickle derzeit eine WebRTC App. Es ist ein "Videoberater", Kunden machen einen Videoanruf mit Verkäufern, und jetzt möchte ich, dass die Verkäufer auch ihren Bildschirm teilen (ohne den Videoanruf zu verlieren). Ich habe es geschafft, dass alles zusammen funktioniert, aber wenn ein Kunde den Anruf beendet und ein neuer Kunde kommt, wenn der Verkäufer versucht, seinen Bildschirm erneut zu teilen (mit diesem neuen Client), tritt ein Fehler auf.WebRTC Bildschirm mehr als einmal teilen, ohne Seite neu zu laden

Der Fehler ist die folgende: enter image description here

Ich denke, dass das Problem ist, dass die Bildschirmfreigabe-API nicht unterstützt endet und erneuten Öffnen des Bildschirms teilen, ohne das Fenster erfrischend (dies ist, was ich will, das halten Verkäufer online und zuhören, sobald er die Anrufe beendet, ohne die gesamte Seite zu aktualisieren).

Dies ist der Code auf den Bildschirm zu teilen, sobald ein Kunde verlässt den Anruf abzubrechen:

if(yourConn.getLocalStreams()[1] != null){ 
     var screenStreaming = yourConn.getLocalStreams()[1]; 
     yourConn.removeStream(screenStreaming); 
     screenStreaming.getTracks().forEach(track => track.stop()); 
} 

Ich weiß, dass dieser Code stoppt erfolgreich die Bildschirmfreigabe, aber ich verstehe nicht, warum, wenn ich einen neuen Bildschirm-Sharing-Stream erstellen, Der Fehler, den ich gepostet habe, erscheint. Ich brauche wirklich Hilfe.

Übrigens, ich verwende Chrome.

Danke an alle für das Lesen und tut mir leid, wenn ich nicht klar fragte, das ist meine erste Frage.

Antwort

0

ScreenSharing zu starten und zu stoppen ist sicherlich mehr als einmal möglich. InvalidStateError klingt (vage) so, als ob Sie versuchen, die id aus chooseDesktopMedia, die in chromeMediaSourceId übergeben wurde, mehrfach zu verwenden. Dies ist nicht möglich afaik und Sie müssen erneut chooseDesktopMedia aufrufen (und den Benutzer den Bildschirm erneut auswählen)

Verwandte Themen