Sto scrivendo un'applicazione per fotocamere che richiede la stessa esposizione indipendentemente dalla luce ambientale. Sfortunatamente, setExposureCompensation() funziona solo come un offset. Posso disattivare questa regolazione automatica o questa è più una correzione hardware pre-utente?Disattivare completamente la compensazione dell'esposizione automatica?
risposta
MODIFICA: così, per Android 4.0 e versioni successive, c'è un setAutoExposureLock(boolean)
che dovrebbe funzionare per quello che ti serve. Non ti consente di impostare l'esposizione da solo, ma dopo aver determinato l'esposizione, puoi bloccarla nell'esposizione corrente. È necessario proteggerlo con un assegno per isAutoExposureLockSupported()
, tuttavia, per assicurarsi che il dispositivo supporti tale funzione.
Per ottenere la stessa esposizione effettiva ogni volta, è necessario essere in grado di impostare un valore ISO fisso, velocità dell'otturatore e apertura. Come hai detto, la compensazione dell'esposizione compensa solo dall'esposizione misurata, che la fotocamera determina automaticamente. A mia conoscenza, non esiste un modo integrato per impostare ISO, velocità dell'otturatore o valori di apertura in Android.
So che questo post è molto vecchio, tuttavia, ho cercato la soluzione per impostare il valore dell'esposizione. Sembra che sia possibile impostare il valore dell'esposizione. Basta guardare qualsiasi app della fotocamera nel negozio e ti consente di impostare il valore dell'esposizione. – pree
@pree Hai controllato i documenti? http://developer.android.com/reference/android/hardware/Camera.Parameters.html#setExposureCompensation(int) – kcoppock
Oh sì, certo. Menziona solo le API setExposureCompensation() ecc. Come menzionato sopra. Tuttavia, sono curioso di sapere in che modo altre app per fotocamere (uno standard e google play market) sono in grado di impostare i valori di esposizione. Ho anche postato la mia domanda qui: http://stackoverflow.com/questions/24620850/android-camera-settings-change-exposure-programatically – pree
È necessario sfogliare tutti i parametri della fotocamera per verificare se sono presenti ISO, velocità dell'otturatore e apertura.
Esempio:
Camera.Parameters params = mCamera.getParameters();
String sParams = params.flatten();
Log.d("TAG", "camera flatten: "+sParams);
Vecchio come questo è, probabilmente hai spostato oltre questo, ma ho aggiornato la mia risposta qui sotto per fare riferimento a una nuova versione successiva alla 4.0 API per bloccare l'esposizione. – kcoppock