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?
Odpowiedz
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.
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
@pree Czy sprawdziłeś dokumenty? http://developer.android.com/reference/android/hardware/Camera.Parameters.html#setExposureCompensation(int) – kcoppock
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
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);
- 1. Java Security Manager całkowicie wyłącza odbicie
- 2. Symulacja długiej ekspozycji z klatek wideo OpenCV
- 3. Mechanizm wiązania iniekcji automatycznej
- 4. Wykryj kolumnę automatycznej inkrementacji
- 5. całkowicie usunąć
- 6. UIImage ScaleToFit wyłącza antialias?
- 7. asp.net MVC: wyłącza TextBox
- 8. Wyłącza usuwanie znaczników
- 9. wyłącza po jego wykonaniu
- 10. ValidatorEnable nie wyłącza requiredfieldvalidator
- 11. Co oznacza "Przywracanie migracji automatycznej"?
- 12. Konfiguracja automatycznej kompilacji dla Stylus
- 13. Zapobieganie automatycznej zmianie domyślnego katalogu
- 14. Widok aktualizacji automatycznej w backbone.js
- 15. Dynamiczny algorytm automatycznej korekty tekstu
- 16. Właściwość automatycznej inkrementacji bez klucza
- 17. W obiekcie klasy, jak atrybuty automatycznej aktualizacji?
- 18. mysql_real_escape_string() całkowicie usuwa ciąg
- 19. całkowicie usunąć JQuery TinyMCE
- 20. całkowicie wyłączyć przewijanie strony
- 21. Całkowicie ręczny Mercurial merge
- 22. Okno wpf całkowicie czarne
- 23. Android wyłącza wyświetlanie podczas ładowania
- 24. QWebview/webkit wyłącza zaznaczanie tekstu
- 25. restart/iisreset wyłącza protokół NET.TCP?
- 26. wyłącza zaznaczanie tekstu, naciskając "shift"
- 27. NSTimer wyłącza dealloc w UIView
- 28. CSS3 wyłącza efekt zawieszania selektywnie
- 29. Google Chrome wyłącza animacje okien
- 30. Wyłącza przyrostową kompilację dla kata
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