2015-01-12 33 views
7

Come si abilita la fotocamera frontale su una Webview? Ho attivare le funzionalità in AndroidManifest.xmlCome abilitare la fotocamera frontale in webview per Android

<uses-feature android:name="android.hardware.camera" android:required="true" /> 
<uses-feature android:name="android.hardware.camera.front" android:required="true" /> 

La fotocamera non sta per essere utilizzato per scattare foto o registrare, solo per accendere la fotocamera anteriore.

Quando si accede al sito Web utilizzando il browser del telefono, la fotocamera del telefono funziona una volta per consentire il messaggio di richiesta. Come può funzionare con una webview?

Nel file html è presente un tag Canvas e Video che visualizza la webcam. Non registra o scatta le foto ma mostra solo la vista della telecamera.

Ecco il codice html

<canvas id="inCanvas" width="500" height="500" style="display:none"></canvas> 
<video id="inputVideo" width="100" height="100" autoplay loop ></video> 

Funziona con webcam, ma non con WebView in Android.

risposta

0

Vorrei usare qualcosa di simile al seguente come script per accedere alla fotocamera del telefono.

<script> 
    var errorCallback = function(e) { 
    console.log('Rejected!', e); 
    }; 

    // Not showing vendor prefixes. 
    navigator.getUserMedia({video: true, audio: true}, function(localMediaStream) { 
    var video = document.querySelector('video'); 
    video.src = window.URL.createObjectURL(localMediaStream); 

    // Note: onloadedmetadata doesn't fire in Chrome when using it with getUserMedia. 
    // See crbug.com/110938. 
    video.onloadedmetadata = function(e) { 
     // Ready to go. Do some stuff. 
    }; 
    }, errorCallback); 
</script> 

Tutorial the following utilizzato per aiutarmi. Spero che si imposti sulla giusta pista :)

4

Non ho capito bene, ma io cosa ci potrebbe uno dei due seguenti, quello che vuoi.

1) della macchina fotografica di accesso e solo mostrare il video sullo schermo (non cattura immagine )

html:

<canvas id='canvas' width='100' height='100'></canvas> 

js:

var onFailSoHard = function(e) 
    { 
      console.log('failed',e); 
    } 

    window.URL = window.URL || window.webkitURL ; 
    navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia; 

    var video = document.querySelector('video'); 

    if(navigator.getUserMedia) 
    { 
     navigator.getUserMedia({video: true},function(stream) { 
     video.src = window.URL.createObjectURL(stream); 
     },onFailSoHard); 
    } 


     var canvas = document.getElementById('canvas'); 
    var ctx = canvas.getContext('2d'); 
setInterval(function(){ 
ctx.drawImage(video,0,0); 
    }, 100); 

     } 

2) Acquisizione Immagine dalla telecamera:

here è la doc per questo.

navigator.camera.getPicture(onSuccess, onFail, { quality: 50, 
    destinationType: Camera.DestinationType.DATA_URL 
}); 

function onSuccess(imageData) { 
    var image = document.getElementById('myImage'); 
    image.src = "data:image/jpeg;base64," + imageData; 
} 

function onFail(message) { 
    alert('Failed because: ' + message); 
} 
+0

Questo non funziona. Grazie per aver provato – Nic

+0

Ha funzionato per me .. –

+0

numero 1 o 2. Voglio solo aprire la fotocamera senza registrazione o foto – Nic

Problemi correlati