2013-06-12 15 views
10


Come posso rilevare il supporto del browser per HTML Media Capture *?Rileva supporto browser per HTML Media Capture


Il modo tradizionale di testare se un attributo è supportato non sembra funzionare su alcuni dispositivi (testato su iPad e Google Nexus):

var elm = document.createElement(input); 
    if (capture in elm) { 
    return true; 
    } 


C'è un test per Modernizr ma non sembra essere affidabile (che utilizza lo stesso principio): https://github.com/Modernizr/Modernizr/pull/909

__

(*) Più in fo su HTML Media Capture:

http://www.w3.org/TR/html-media-capture/
http://www.html5rocks.com/en/tutorials/getusermedia/intro/#toc-round1

+0

Poiché il test sopra riportato non funziona, prima aggiungerei l'elemento nel corpo e impostare un tipo per accettare il supporto (ovvero gli attributi 'type =" file "', 'accept =" image/* "', 'accept =" video/* "', ecc), se fallisce allora probabilmente andrei solo andando con la stringa User Agent e testando se il browser è una versione che ha il supporto. Inoltre, non hai virgolette attorno al tuo 'input' o' capture', quindi si verificherà un errore perché saranno variabili indefinite. –

+0

La domanda è stata risolta qui: http://stackoverflow.com/questions/12199736/detect-html5-media-capture-api-support – mbejda

risposta

0

Questa forma di mezzi di cattura nei browser è obsoleto, deprecato, e obsoleta. Il nuovo standard, getUserMedia, può essere rilevato in questo modo:

function hasGetUserMedia() { 
    return !!(navigator.getUserMedia || navigator.webkitGetUserMedia || 
     navigator.mozGetUserMedia || navigator.msGetUserMedia); 
} 
+3

Puoi condividere dove dice che HTML Media Capture è obsoleto e obsoleto? – mscdex

+2

Vorrei aggiungere che è improbabile che sia obsoleto, né deprecato né obsoleto dal momento che non è mai uscito dalle bozze. l'API stream e l'HTML MEDIA Capture sono diversi, il primo fornisce uno stream, quando il successivo fornisce un file. – Kaiido

1

spero mi sbaglio, ma sembra non saremo in grado di fare questa rilevazione ...

Il last paper su questo MEDIA HTML Capture API (che è diverso da quello del API Streaming/GetUserMedia), come stato pubblicato l'anno scorso (2014), e mai andati fuori dalle correnti d'aria ...

questo comment dal 2012 su una richiesta per implementare questa funzionalità in Firefox in modo chiaro afferma che:

[T] non è necessario implementarlo. Dovrebbe venire gratuitamente con il sistema Android Intent. Dovremmo semplicemente richiamare l'intenzione per ACTION_IMAGE_CAPTURE/ACTION_VIDEO_CAPTURE.

Il che significa che questa caratteristica deriva dal sistema operativo direttamente, e che noi, come gli sviluppatori non avranno alcun modo di sapere se questo sarà disponibile o meno ...

Quindi l'unico modo per rilevare questa funzione sembra essere una corrispondenza UserAgent rispetto ai dispositivi di supporto noti ...