2017-09-07 5 views
3

Firefox, depuis la version 52, soutiendra le partage d'écran via:détecter le soutien Firefox pour le partage d'écran

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

Check out this test page to see it in action.

Je voudrais savoir s'il existe un moyen de détecter si un navigateur supporte { mediaSource: 'screen' }?

Je voudrais seulement donner la possibilité de partager l'écran avec les utilisateurs qui ont la capacité de partager. Donc, j'aimerais être en mesure de détecter cela.

+0

Le partage d'écran a été implémenté depuis longtemps. FF52 vient de supprimer le besoin d'une entrée de liste blanche ou d'une extension qui modifie la liste blanche. –

+0

Oui, bon point. Êtes-vous en train de dire que Firefox avant 52 prétendrait en fait supporter 'mediaSource' et rendre la vérification de jib inutile? (Sauf si vous êtes sur l'ancienne liste blanche ...) – philnash

+0

Oui. Vérifiez simplement la version de Firefox> = 52 (ou comptez sur l'extension). Heureusement, la dernière ESR est de 52, même s'il y a des rapports de gens qui utilisent encore FF45 ... –

Répondre

3

un moyen de détecter si un navigateur prend en charge {mediaSource: 'screen'}?

La réponse pédant est la suivante vous dira si la contrainte mediaSource est prise en charge:

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

Malheureusement, mediaSource est non standard, et seulement mis en œuvre dans Firefox. Firefox est dès lors le seul navigateur à permettre le partage d'écran sans plugin.

Chrome a une API non standard différente utilisant chromeMediaSource disponible en tant que plug-in, en utilisant une ancienne syntaxe de contraintes, mais elle n'apparaît pas (à juste titre) dans le nouveau getSupportedConstraints.

C'est encore un peu le bordel. Les navigateurs à long terme peuvent finir par implémenter getDisplayMedia à la place.

+1

Ah, bien sûr. Je regardais 'getSupportedConstraints' et j'ai raccroché sur' browserWindow' pour une raison quelconque et complètement raté 'mediaSource'. Je me rends compte que tout cela n'est pas standard, et j'espère qu'il y aura une norme décente dans le futur ('getDisplayMedia' semble être une bonne idée). Je vous remercie! – philnash