2012-06-13 17 views
6

Nella mia applicazione corrente, ho una classe in possesso di un istanza di un oggetto Camera e cercando di effettuare le seguenti operazioni:Android 4 - l'obiettivo Bianco Bilanciamento ferma dopo autofocus

1) Attendere per un tempo determinato, per esempio nulla (questo viene fatto attraverso un TimerTask) 2) Richiesta di mettere a fuoco tramite autofocus 3) Nella messa a fuoco automatica di richiamata, richiesta OneShotPreviewCallback 4) In anteprima callback, salvare l'immagine 5) Ripetere

Mentre il bilanciamento del bianco sta lavorando bene prima della messa a fuoco automatica, si ferma dopo che è stata eseguita la prima messa a fuoco. Beh, ovviamente ho cercato l'API, e c'è una dichiarazione interessante nella descrizione di autoFocus.

La routine di messa a fuoco automatica può interrompere temporaneamente l'esposizione automatica e il bilanciamento del bianco automatico durante la messa a fuoco.

Ma sembra che non si fermi solo transitoriamente, ma in modo permanente. Abbastanza divertente, con la successiva chiamata di autoFocus, la fotocamera tenta di regolare nuovamente lo sbiancamento, ma il valore corretto è in gran parte solo con la seconda o terza messa a fuoco automatica.

Ho anche provato a impostare il bilanciamento del bianco nel codice, ma non ha cambiato nulla.

setWhiteBalance(Camera.Parameters.WHITE_BALANCE_AUTO); 

Qualcun altro conosce questo problema o mi manca qualche punto? So che potrei chiamare in modo permanente autoFocus per forzare il bilanciamento del bianco, ma questo non mi sembra il modo ottimale, perché prima della prima chiamata auf AutoFocus, funziona perfettamente.

P.S .: sto testando su un Samsung Galaxy S2 con Android 4.0.3.

+0

** Ho trovato stesso comportamento sul Samsung Galaxy S2 **, Dopo le prime autofoucs si ferma l'updation WhiteBalance. – swiftBoy

risposta

1

Ho il problema simile su Samsung Galaxy Ace - dopo il primo autofocus, il bilanciamento del bianco della fotocamera si spegne e non si riaccende, non importa quanto faccio autofocus dopo.

Poiché non ci sono metodi API per dire alla fotocamera di riprendere il bilanciamento del bianco, e il ripristino dei parametri della fotocamera in autofocus callback non fa il trucco, la mia ipotesi è che si tratta di un bug nel driver della fotocamera nei telefoni Samsung - I ' Ho provato la mia applicazione con diversi telefoni e solo su questo Samsung Galaxy Ace (GT-S5830, aggiornato ad Android 2.3.3), il bilanciamento del bianco della fotocamera non riprende dopo l'autofocus.

Forse dovremmo pubblicare un bug ticket su developer.samsung.com?

-1

Sembra che mCamera.stopPreview(); mCamera.startPreview(); in AutoFocusCallback può abilitare nuovamente l'esposizione automatica, ma portando una pausa molto breve sull'anteprima come effetto collaterale.

3

Ho avuto un problema simile su Samsung Galaxy 2 Duos 2. In questo caso, le impostazioni di esposizione automatica hanno smesso di funzionare al posto del WB. Ho provato a ciclare (on/off) il parametro di esposizione automatica e ha funzionato per me.

mCamera.autoFocus(new Camera.AutoFocusCallback() { 

    @Override 
    public void onAutoFocus(boolean b, Camera camera) { 

     Camera.Parameters params = camera.getParameters(); 
     if (params.isAutoExposureLockSupported()) { 
      params.setAutoExposureLock(true); 
      camera.setParameters(params); 

      params = camera.getParameters(); 
      params.setAutoExposureLock(false); 
      camera.setParameters(params); 
     } 
    } 

}); 
Problemi correlati