2017-09-07 4 views
3

Firefox, da 52-Version, wird die Bildschirmfreigabe über Unterstützung:Detect Firefox Unterstützung für Screen Sharing

navigator.mediaDevices.getUserMedia({ video: { mediaSource: 'screen' }}) 
    .then(stream => { ... }); 

Check out this test page to see it in action.

Ich würde gerne wissen, ob es eine Möglichkeit gibt zu erkennen, ob ein Browser { mediaSource: 'screen' } unterstützt?

Ich möchte nur die Option geben, den Bildschirm mit Benutzern teilen, die die Möglichkeit haben, zu teilen. Also würde ich gerne in der Lage sein, dies zu erkennen.

+0

Screensharing wurde seit Ewigkeiten implementiert. FF52 hat lediglich die Notwendigkeit für einen Whitelist-Eintrag oder eine Erweiterung, die die Whitelist modifiziert, überflüssig gemacht. –

+0

Ja, guter Punkt. Wollen Sie damit sagen, dass Firefox vor 52 tatsächlich behaupten würde, 'mediaSource' zu ​​unterstützen und die Überprüfung von jib nicht sinnvoll zu machen? (Es sei denn, Sie sind auf der alten Whitelist ...) – philnash

+0

Ja. Einfach nach Firefox Version> = 52 suchen (oder auf die Erweiterung setzen). Glücklicherweise ist der letzte ESR 52, obwohl es Berichte gibt, dass Leute immer noch FF45 benutzen ... –

Antwort

3

eine Möglichkeit festzustellen, ob ein Browser {mediaSource: 'screen'} unterstützt?

Die pedantisch Antwort ist die folgende wird Ihnen sagen, wenn die mediaSource Einschränkung unterstützt:

console.log(!!navigator.mediaDevices.getSupportedConstraints().mediaSource);

Leider mediaSource ist nicht Standard, und nur in Firefox implementiert. Firefox ist zum Zeitpunkt des Schreibens der einzige Browser, der Screen-Sharing ohne Plugin ermöglicht.

Chrome hat eine andere Nicht-Standard-API, die chromeMediaSource als Plug-in verwendet, mit einer älteren Constraintsyntax, aber es erscheint (zu Recht) nicht in der neuen getSupportedConstraints.

Es ist immer noch ein bisschen Chaos. Langfristige Browser können stattdessen getDisplayMedia implementieren.

+1

Ah, natürlich. Ich habe "getSupportedConstraints" durchgesehen und bin aus irgendeinem Grund auf "browserWindow" aufgehängt und habe 'mediaSource' komplett vermisst. Mir ist klar, dass dies nicht Standard ist, und hoffentlich gibt es in der Zukunft einen anständigen Standard ('getDisplayMedia' scheint eine gute Idee zu sein). Vielen Dank! – philnash