Podemos solicitar una transmisión multimedia a una pantalla o ventana a través de navigator.mediaDevices.getDisplayMedia()
. Sin embargo, esto incita inmediatamente al usuario a decidir qué tipo de captura usar. Necesito verificar si el navegador / plataforma incluso admite la captura de pantalla.
Por supuesto, es posible verificarlo 'getDisplayMedia' in navigator.mediaDevices
, pero esto solo nos dice si la API es compatible con el navegador. En particular, en FF y Chrome en Android, la API está definida y puedo llamar getDisplayMedia()
, pero siempre devuelve un NotAllowedError
error de inmediato (lo cual es de esperar: según caniuse , los navegadores móviles aún no son compatibles getDisplayMedia
).
A continuación, intenté verificar navigator.mediaDevices.getSupportedConstraints()
. Sin embargo, mi FF móvil devuelve exactamente el mismo objeto que mi FF de escritorio. En particular, navigator.mediaDevices.getSupportedConstraints().mediaSource
es true
en ambos casos. Finalmente, los datos devueltos por navigator.mediaDevices.enumerateDevices()
tampoco me ayudan. Solo obtengo un dispositivo y una ID de grupo que no puedo interpretar de ninguna manera (¿verdad?).
¿Es posible detectar si la captura de pantalla a través de o no getDisplayMedia
es compatible de antemano?
( Nota : estas preguntas y respuestas parecen bastante similares, pero getUserMedia
ya son bastante antiguas)
fuente
getDisplayMedia
en dispositivos móviles". Eso está bien para mí. Solo quiero verificar si es compatible o no .Respuestas:
Desafortunadamente, no hay una forma directa de detectar características si getDisplayMedia funcionará en esos navegadores.
Todo lo que puede hacer hoy es rastrear el navegador de la cadena UA para detectar que no está en el móvil, donde falta soporte.
He presentado un problema en la especificación en función de su pregunta, para ver si getDisplayMedia es mejor dejarlo
undefined
sin soporte.1. caniuse afirma Opera Mobile tiene apoyo, pero esto no parece así que cuando me probarlo .
fuente