Zrobiłem aplikację na Androida, która używa standardowego API aparatu Android do robienia zdjęć, jednak mam problemy z ręcznym ustawianiem ostrości i innymi funkcjami. Niedawno spotkałem się z API Camera2 i chciałem tylko wiedzieć, czy warto spróbować, czy nie?Dlaczego powinienem lub nie powinienem używać API camera2 w Androidzie?
Odpowiedz
Na plus, interfejs API camera2
jest znacznie bogatszy niż oryginalny interfejs API Camera
. Podejrzewam, że będzie on bardziej stabilny niż interfejs API Camera
, ponieważ uważam, że Google traktuje go bardziej poważnie. I odwrotnie, z czasem producenci będą inwestować coraz mniej inżynierii i czasu kontroli jakości w starym API Camera
. W 2018 roku, gdy system Android 5.0+ jest w 90% rynkiem, aplikacje powinny korzystać wyłącznie z interfejsu API camera2
, IMHO, chyba że aplikacja jest przeznaczona specjalnie dla starszych urządzeń.
Jednakże:
camera2
API działa tylko na Androidzie 5.0 i wyższe, więc chyba żeminSdkVersion
wynosi 21 lub więcej, trzeba jeszczeCamera
API dla starszych urządzeń. Oznacza to, że korzystasz tylko z interfejsu APICamera
lub używasz obu (i tym samym mając dodatkową pracę inżynierską).IMHO, dokumentacja dla obu jest bardzo brakowało, ale
Camera
API jest już dłużej, więc istnieje więcej odpowiedzi Stos przelewem, blogach, i tak dalej, że pokrycie.Do naprawdę skorzystaj z możliwości interfejsu API
camera2
, musisz być entuzjastą kamer, IMHO. Osobiście nie jestem, a więc wiele z tego, co oferuje APIcamera2
wykracza poza moje zrozumienie, choć jestem pewien, że to naprawdę fajne.
Dzięki za szczegółową odpowiedź :) –
* Camera2 * jest tak skomplikowany, ale niespójny. Na moim urządzeniu Lollipop jest albo zachowujący się podgląd, albo dziwne zachowanie lamp błyskowych (w moim Sony XPeria i Samsunga lampa błyskowa znajomego pozostanie włączona nawet po zamknięciu aplikacji). * Ta sama * konfiguracja na 2 * różnych * urządzeniach * daje * inny * wynik, podczas gdy 2 * Różne * konfiguracje dają * ten sam * wynik/zachowanie. Czekaj, co?? Po prostu zastrzelił mnie w głowę. W każdym razie +1 za odpowiedź. –
- 1. Dlaczego nie powinienem używać System.out.println() w Androidzie
- 2. Dlaczego nie powinienem używać atoi()?
- 3. Dlaczego powinienem używać Drools?
- 4. Dlaczego powinienem używać io_service :: work?
- 5. Dlaczego nie powinienem używać async (zdarzenie) IO
- 6. Dlaczego nie powinienem używać równań z dziedziczeniem?
- 7. Dlaczego powinienem używać fragmentu w systemie Android?
- 8. Czy powinienem używać nav lub ul
- 9. Dlaczego powinienem używać WCF z MVC?
- 10. Dlaczego powinienem się uczyć i używać rozpórek?
- 11. Oracle - Dlaczego powinienem używać pakietów zamiast samodzielnych procedur lub funkcji
- 12. Dlaczego powinienem używać RSpec lub shoulda z Railsami?
- 13. Dlaczego nie powinienem używać 23. znaku w soli funkcji krypta()?
- 14. Czy powinienem używać tutaj awakeFromNib lub initWithCoder?
- 15. Czy powinienem używać tsd lub typowania?
- 16. Dlaczego powinienem używać niejawnego/jawnego operatora?
- 17. Czy powinienem używać dziedziczenia lub kompozycji?
- 18. powinienem używać window.load lub document.ready jQuery
- 19. Czy powinienem używać odbiornika lub obserwatora?
- 20. Java: Czy powinienem używać float lub Float?
- 21. Czy powinienem używać System.out.println() lub czegoś innego?
- 22. czy powinienem używać urandom lub openssl_random_pseudo_bytes?
- 23. Czy powinienem używać rand() lub rand_s()?
- 24. Dlaczego powinienem używać var zamiast typu?
- 25. Dlaczego powinienem używać opcji wyboru wyjścia?
- 26. Czy powinienem używać libC++ lub libstdC++?
- 27. Android: Dlaczego nie powinienem używać działań w zakładkach?
- 28. Dlaczego powinienem używać operatora.itemgetter (x) zamiast [x]?
- 29. Którego typu powinienem używać?
- 30. Jakiego JSObject powinienem używać?
Powinieneś zjeść grillowany ser na lunch? To zależy, czy chcesz grillowanego sera, czy nie? –
Uwielbiam grillowany ser! – Seano666