2013-05-02 11 views
11

attualmente, sto cercando di fare qualcosa di veramente semplice (beh, in realtà ho pensato che sia semplice ...): Voglio scattare una foto dalla web-cam in un'applicazione web.HTML Media Capture API vs. getUserMedia()

ci siamo imbattuti in due possibilità:

1. La Cattura l'API Media HTML che sembra davvero facile:

<input type="file" accept="image/*" capture="camera"> 

2. JavaScript i flussi multimediali, che anche guardare piuttosto semplice:

navigator.getUserMedia() 

E qui arriva la mia domanda:

L'API HTML Media Capture non funziona nei browser desktop e i flussi multimediali JavaScript non funzionano su iOS. Quindi quale dovrei prendere? Entrambi? Quale sarà sviluppato in futuro? Qual è il modo preferito? Quale preferisci? Ci sono degli svantaggi in una soluzione che non vedo in questo modo (ad eccezione della compatibilità?).

Grazie.

BTW: io non sono un esperto HTML/JavaScript sviluppatore, quindi si prega di essere gentile;)

+1

questo è roba d'avanguardia ... qui ci sono 2 buoni post che ti faranno iniziare http://html5doctor.com/getusermedia/ e http://davidwalsh.name/browser-camera (troppe informazioni da ri- postare qui - mi dispiace link frowners). – carrabino

+2

Direi entrambi ... il concetto più semplice sarebbe quello di utilizzare Modernizr o altre funzionalità di rilevamento, avere l'input, e se l'input non funzionerà in modo nativo, quindi attivare la versione javascript. Questo è il modo standard per affrontare tutti i miglioramenti progressivi, quindi niente di nuovo qui solo per questi elementi/nuove è nuovo. –

risposta

2

browser per dispositivi mobili

Usa HTML Media Capture per catturare un'immagine direttamente dalla fotocamera:

<input type="file" accept="image/*" capture >

Android (3.0+) salterà dritto alla telecamera. Ecco come apparirà dopo qualche stile CSS:

Pipe Video Recorder on Android

iOS (6-10) sarà ancora vi darà la possibilità di selezionare una foto esistente in quanto non supporta capture. Vedi Correct Syntax for HTML Media Capture per i dettagli.

browser desktop:

1) accedere alla webcam: utilizzo di API MediaStream getUserMedia:

navigator.getUserMedia o il più recente promessa basata navigator.mediaDevices.getUserMedia

2) Usare la tela per scattare un'istantanea

David Walsh's example copre entrambi i passaggi sul desktop.