2012-02-24 64 views
38

Sono abbastanza nuovo per HTML5. Provo il seguente codice HTML5 per accedere alla fotocamera sul mio cellulare. Mostra sempre "Fotocamera nativa non supportata". Sembra che il mio browser mobile (browser Safari e Android 2.1) non supporti la fotocamera.HTML5: accesso telecamera

Potrebbe dirmi quale browser devo utilizzare per accedere alla telecamera?

<!doctype html> 
<html> 
<head> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="width=device-width, maximum-scale=1.0"> 
    <style> 
     body {width: 100%;} 
     canvas {display: none;} 
    </style> 
    <script> 
     var video, canvas, msg; 
     var load = function() { 
      video = document.getElementById('video'); 
      canvas = document.getElementById('canvas'); 
      msg = document.getElementById('error'); 
      if(navigator.getUserMedia) { 
       video.onclick = function() { 
        var context = canvas.getContext("2d"); 
        context.drawImage(video, 0, 0, 240, 320); 
        var image = {"demo" : { 
         "type" : "device", 
         "image" : canvas.toDataURL("image/png") 
        }}; 
       }; 

       var success = function (stream) { 
        video.src = stream; 
       }; 

       var error = function (err) { 
        msg.innerHTML = "Error: " + err.code; 
       }; 

       navigator.getUserMedia('video', success, error); 

      } else { 
       msg.innerHTML = "Native web camera not supported :("; 
      } 

     }; 

     window.addEventListener('DOMContentLoaded', load, false); 
    </script> 
</head> 
<body> 
    <video id="video" width="240" height="320" autoplay> </video> 
    <p  id="error">Click on the video to send a snapshot to the receiving screen</p> 
    <canvas id="canvas" width="240" height="320"> </canvas> 
</body> 
</html> 
+7

WebCam API di HTML5 è ancora molto nuovo, e non è nemmeno molto ampiamente supportato su desktop * *, dispositivi molto meno mobili. Non puoi dipendere dal fatto che sia disponibile. – Kitsune

+0

vedere qui per una demo di accesso HTML5 Microphone & Camera in Chrome .. questo è roba all'avanguardia ... http://www.youtube.com/watch?feature = player_detailpage & v = VP0SV3YWOWA # t = 1425s – Lloyd

+0

Il supporto mobile HTML5 non è più "bleeding edge" - vedi http://stackoverflow.com/a/13489553/957950 per come ottenere immagini direttamente dalla fotocamera, o esempio di prova su http: //mobilehtml5.org/ts/?id=23. Benvenuto nel futuro! Ancora nessun hoverboard, mi dispiace. :( – brichins

risposta

40

Il metodo getUserMedia è ora supportato su Firefox 17 +, Chrome 23+ e 12+ Opera. (Vedere caniuse.com)

Screenshot of the CanIUse.com support grid as of 2/24/12

+0

Ho installato Chrome sul mio ipad ma non apro ancora il video – J888

+2

@Anthony, la domanda è stata posta sull'accesso alla fotocamera sul cellulare Firefox 17+, Chrome 23+, Opera 12+ non sono disponibili su dispositivi mobili! –

1

Opera Desktop, Opera Mobile e Chrome (dopo la modifica di alcune configurazioni) supporta HTML5 accesso alla fotocamera/microfono finora.

+0

Quali impostazioni devo impostare su Chrome mobile? –

14

Questo funziona su Firefox Mobile, Chrome mobili, iPhone e Android:

<input type="file" id="mypic" accept="image/*"> 
+0

Questa operazione richiama la videocamera su iPhone e telefoni Android? –

+0

Questo è non WebRTC o correlato a getuserMedia(). Era correlato alla proposta HTML Media Capture che probabilmente andrà via. Maggiori informazioni [qui] (http://dev.w3.org/2009/dap/camera/). – taco

+0

@ Travis M: Lancia la macchina fotografica di Androids, non so di iPhone, perché non ne ho accesso 1. –

0

È possibile utilizzare Chrome per Android abilitando il flag "Abilita WebRTC" sotto chrome: // flags

ho provato sul mio telefono Android per accedere alla fotocamera sulla pagina html5 e sta funzionando.

6

Abbiamo avuto un certo successo con questo approccio di base messo insieme da tutto il web:

<form method="post" action="takephoto.php" enctype="multipart/form-data"> 
<input type="file" accept="image/*" name="file"> 
<input type="submit"> 
</form> 

Poi nel file PHP che generano nomi di file univoci che utilizzano ora() o qualcosa di simile per la conservazione.

+0

Questa è essenzialmente la stessa risposta di [quella fornita da Jez D] (http://stackoverflow.com/questions/9431475/html5-camera-access/12673480#12673480), utilizzando [HTML Media Capture API] (https : //w3c.github.io/html-media-capture/). –

+1

Non so perché ciò richiede un downvote. Ho appena risposto alla domanda. Non ho fatto ricerche per assicurarmi che fossi l'unico che avesse mai usato quell'approccio. Ma grazie per avermi tenuto dritto e stretto. –

+0

Non preoccuparti, è solo una buona pratica per modificare o migliorare una risposta esistente, a meno che la tua sia significativamente diversa. –

3

Ho appena iniziato a lavorare con uno strumento chiamato Bridgeit.

Questa è una combinazione di javascript nel browser e un'app sul telefono. Sembra funzionare abbastanza bene finora.

http://bridgeit.mobi/

+0

'bridgeit.camera ('id', 'callback', {postURL: 'url'})' richiama la funzione della telecamera dell'app BridgeIt con una miniatura di dati immagine-url restituita in event.preview passata alla richiamata e alla foto caricata all'URL specificato. –

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

controllare questo link Camera Acces using HTML5

Supporto:

Android 3.0 del browser - una delle prime implementazioni. Guarda questo video per vederlo in azione. Chrome per Android (0,16) Firefox Mobile 10.0 iOS6 Safari e Chrome (supporto parziale)