Podemos solicitar um fluxo de mídia para uma tela ou janelas via navigator.mediaDevices.getDisplayMedia()
. No entanto, isso imediatamente solicita que o usuário decida que tipo de captura usar. Preciso verificar se o navegador / plataforma suporta até a captura de tela.
Obviamente, é possível procurar 'getDisplayMedia' in navigator.mediaDevices
, mas isso apenas indica se a API é suportada pelo navegador. Em particular, no FF e no Chrome no Android, a API é definida e eu posso chamar getDisplayMedia()
, mas sempre retorna imediatamente um NotAllowedError
erro (o que é esperado: de acordo com o caniuse , os navegadores móveis ainda não são compatíveis getDisplayMedia
).
Em seguida, tentei verificar navigator.mediaDevices.getSupportedConstraints()
. No entanto, meu FF móvel retorna exatamente o mesmo objeto que meu FF de desktop. Em particular, navigator.mediaDevices.getSupportedConstraints().mediaSource
é true
em ambos os casos. Finalmente, os dados retornados por navigator.mediaDevices.enumerateDevices()
também não me ajudam. Eu só recebo um ID de dispositivo e grupo que não consigo interpretar de forma alguma (certo?).
É possível detectar se a captura de tela via getDisplayMedia
é ou não suportada anteriormente?
( Observação : essas perguntas e respostas parecem bastante semelhantes, mas são sobre getUserMedia
e já são bastante antigas)
fonte
getDisplayMedia
no celular". Isso é bom para mim. Eu só quero verificar se é ou não suportado.Respostas:
Infelizmente, não há maneira direta de detectar recursos se o getDisplayMedia funcionará nesses navegadores.
Tudo o que você pode fazer hoje é farejar o navegador da string UA para detectar que você não está no celular, onde falta suporte. lack
Arquivei um problema com as especificações com base na sua pergunta, para ver se getDisplayMedia fica melhor
undefined
quando não é suportado.1. caniuse afirma que o Opera Mobile tem suporte, mas isso não acontece quando o testo .
fonte