2011-01-06 13 views
6

Piszę aplikację aparatu, która wymaga takiej samej ekspozycji niezależnie od światła otoczenia. Niestety setExposureCompensation() działa tylko jak przesunięcie. Czy mogę wyłączyć to automatyczne dopasowanie, czy jest to bardziej korekta sprzętu przed użytkownikiem?Całkowicie wyłącza kompensację ekspozycji automatycznej?

+0

tak stary, jak to jest, to prawdopodobnie minął, ale mam zaktualizowane poniżej moją odpowiedź odwołać nowego 4.0+ API do blokowania ekspozycji. – kcoppock

Odpowiedz

5

EDYCJA: W przypadku systemu Android w wersji 4.0 i nowszej dostępna jest wersja setAutoExposureLock(boolean), która powinna działać zgodnie z potrzebami. Nie pozwala na samodzielne ustawienie ekspozycji, ale po określeniu ekspozycji można zablokować jej bieżącą ekspozycję. Trzeba go jednak ochronić, sprawdzając, czy jest to isAutoExposureLockSupported(), aby upewnić się, że urządzenie obsługuje tę funkcję.

Aby uzyskać taką samą rzeczywistą ekspozycję za każdym razem, musisz mieć możliwość ustawienia stałego ISO, czasu otwarcia migawki i przysłony. Tak jak powiedziałeś, kompensacja ekspozycji tylko kompensuje ekspozycję mierzoną, którą kamera określa automatycznie. Według mojej wiedzy, nie ma wbudowanego sposobu na ustawienie czułości ISO, czasu otwarcia migawki lub wartości przysłony w systemie Android.

+0

Wiem, że ten post jest bardzo stary, jednak szukałem rozwiązania do ustawienia wartości ekspozycji. Wygląda na to, że można ustawić wartość ekspozycji. Wystarczy spojrzeć na dowolną aplikację aparatu w sklepie i pozwala ustawić wartość ekspozycji. – pree

+0

@pree Czy sprawdziłeś dokumenty? http://developer.android.com/reference/android/hardware/Camera.Parameters.html#setExposureCompensation(int) – kcoppock

+0

O tak, oczywiście. Wspomina tylko o interfejsach API setExposureCompensation() itp., Jak wspomniano powyżej. Jednak jestem ciekawy, w jaki sposób inne aplikacje do kamer (standardowy i rynek Google Play) są w stanie ustawić wartości ekspozycji. Zamieszczam również moje pytanie: http://stackoverflow.com/questions/24620850/android-camera-settings-change-exposure-programatically – pree

0

Powinieneś przejrzeć wszystkie parametry aparatu, aby sprawdzić, czy są powiązane z ISO, czasem otwarcia migawki i przysłoną.

Przykład:

Camera.Parameters params = mCamera.getParameters(); 
String sParams = params.flatten(); 
Log.d("TAG", "camera flatten: "+sParams);