Aparat X
Ta tabela zawiera wszystkie artefakty w grupie androidx.camera
.
Artefakt | Wersja stabilna | Kandydat do wydania | Wersja Beta | Wydanie alfa |
---|---|---|---|---|
aparat-aparatowy2 | 1.3.4 | 1.4.0-rc01 | - | - |
rdzeń kamery | 1.3.4 | 1.4.0-rc01 | - | - |
efekty aparatu | - | 1.4.0-rc01 | - | - |
rozszerzenia do aparatu | 1.3.4 | 1.4.0-rc01 | - | - |
cykl życia aparatu | 1.3.4 | 1.4.0-rc01 | - | - |
Camera-mlkit-vision | - | 1.4.0-rc01 | - | - |
widok z kamery | 1.3.4 | 1.4.0-rc01 | - | - |
Wizjer aparatu | - | - | 1.3.0-beta02 | 1.4.0-alfa07 |
kamera-wideo | 1.3.4 | 1.4.0-rc01 | - | - |
Testowanie urządzenia
Aparat CameraX został przetestowany na wielu urządzeniach w naszym laboratorium. Aby zobaczyć listę urządzeń obecnie w module, patrz Testy laboratoryjne aplikacji CameraX urządzenia.
Deklarowanie zależności
Aby dodać zależność w aplikacji CameraX, musisz dodać repozytorium Google Maven do do swojego projektu. Odczytano repozytorium Google Maven. i informacjami o nich.
Dodaj zależności artefaktów, których potrzebujesz w pliku build.gradle
aplikacji lub modułu:
Odlotowy
dependencies { // CameraX core library using the camera2 implementation def camerax_version = "1.4.0-rc01" // The following line is optional, as the core library is included indirectly by camera-camera2 implementation "androidx.camera:camera-core:${camerax_version}" implementation "androidx.camera:camera-camera2:${camerax_version}" // If you want to additionally use the CameraX Lifecycle library implementation "androidx.camera:camera-lifecycle:${camerax_version}" // If you want to additionally use the CameraX VideoCapture library implementation "androidx.camera:camera-video:${camerax_version}" // If you want to additionally use the CameraX View class implementation "androidx.camera:camera-view:${camerax_version}" // If you want to additionally add CameraX ML Kit Vision Integration implementation "androidx.camera:camera-mlkit-vision:${camerax_version}" // If you want to additionally use the CameraX Extensions library implementation "androidx.camera:camera-extensions:${camerax_version}" }
Kotlin
dependencies { // CameraX core library using the camera2 implementation val camerax_version = "1.4.0-rc01" // The following line is optional, as the core library is included indirectly by camera-camera2 implementation("androidx.camera:camera-core:${camerax_version}") implementation("androidx.camera:camera-camera2:${camerax_version}") // If you want to additionally use the CameraX Lifecycle library implementation("androidx.camera:camera-lifecycle:${camerax_version}") // If you want to additionally use the CameraX VideoCapture library implementation("androidx.camera:camera-video:${camerax_version}") // If you want to additionally use the CameraX View class implementation("androidx.camera:camera-view:${camerax_version}") // If you want to additionally add CameraX ML Kit Vision Integration implementation("androidx.camera:camera-mlkit-vision:${camerax_version}") // If you want to additionally use the CameraX Extensions library implementation("androidx.camera:camera-extensions:${camerax_version}") }
Opinia
Twoja opinia pomoże nam ulepszyć Jetpack. Daj nam znać, jeśli odkryjesz nowe problemy jak ulepszyć tę bibliotekę. Przyjrzyj się istniejące problemy w tej bibliotece, zanim utworzysz nową. Możesz zagłosować nad istniejącym problemem przez klikając przycisk gwiazdki.
Zobacz dokumentację narzędzia Issue Tracker. .
Wizjer aparatu w wersji 1.0
Wersja 1.0.0-alpha02
12 czerwca 2024 r.
Usługa androidx.camera:camera-viewfinder-compose:1.0.0-alpha02
została zwolniona. Wersja 1.0.0-alfa02 zawiera te zatwierdzenia.
Wersja 1.0.0-alpha01
14 maja 2024 r.
Usługa androidx.camera:camera-viewfinder-compose:1.0.0-alpha01
została zwolniona. Wersja 1.0.0-alfa01 zawiera te zatwierdzenia.
Nowe funkcje
- Nowa biblioteka. Ta biblioteka wprowadza natywną funkcję tworzenia w wizjerze, której można używać z Aparatami X i Camera2. Wizjer kompozycyjny obsługuje różne formaty obrazu i obsługuje zdarzenia dotyku.
Wizjer aparatu w wersji 1.4
Wersja 1.4.0-alpha07
12 czerwca 2024 r.
androidx.camera:camera-viewfinder:1.4.0-alpha07
i androidx.camera:camera-viewfinder-core:1.4.0-alpha07
zostały udostępnione. Wersja 1.4.0-alfa07 zawiera te zatwierdzenia.
Wersja 1.4.0-alpha06
14 maja 2024 r.
androidx.camera:camera-viewfinder:1.4.0-alpha06
i androidx.camera:camera-viewfinder-core:1.4.0-alpha06
zostały udostępnione. Wersja 1.4.0-alfa06 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Zmień nazwę wartości wyliczeniowych
ImplementationMode
wViewfinder
, aby lepiej odzwierciedlały podstawowe implementacje, i dodaj stałe stałe do funkcjiTransformationInfo.sourceRotation
. (IC6149). - Dodano
ZoomGestureDetector.ZoomEvent
, aby uwzględnić stany gestu powiększenia. (I84cdf)
Aparat w wersji 1.4
Wersja 1.4.0-rc01
7 sierpnia 2024 r.
Usługa androidx.camera:camera-*:1.4.0-rc01
została zwolniona. Wersja 1.4.0-rc01 zawiera te zatwierdzenia.
Nowe funkcje
- Dodano eksperymentalną funkcję
CameraInfo.getCameraInfo
, która pozwala dostarczać określone informacje o kamerze bez konieczności powiązania z kamerą przypadków użycia. (I550d1)
Zmiany interfejsu API
- Dodano interfejsy API
PreviewView.getScreenFlash
iPreviewView.setScreenFlashOverlayColor
na potrzeby przypadków, gdyScreenFlashView
nie został dodany wyraźnie. (I43945)
Poprawki błędów
- Rozwiązanie problemów z ekspozycją i odcieniem kolorów, które występowały podczas robienia zdjęć z użyciem lampy błyskowej przy słabym oświetleniu i z zastosowaniem funkcji VideoCapture. (IC9814)
- Rozwiązanie problemu polegającego na tym, że przerywanie żądania
takePicture
z włączonymi rozszerzeniami może nie przynieść wyniku, a następne żądanietakePicture
może już nie działać. (IAE78f) - Rozwiązaliśmy problem z wyciekiem pamięci, który występował, gdy włączone były rozszerzenia. (IAb276).
- Rozwiązano awarię rozszerzeń CameraX na urządzeniach takich jak Pixel 7/8 i Samsung Galaxy S24. Problem ten wynikał z problemu z konwersją
Camera2OutputConfigImpl
w trybie wersji i pojawił się po uaktualnieniu AGP do wersji 8.5.1 i włączeniu minifikacji. (I99598, b/354824993)
Wersja 1.4.0-beta02
12 czerwca 2024 r.
Usługa androidx.camera:camera-*:1.4.0-beta02
została zwolniona. Wersja 1.4.0-beta02 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Podobnie jak w przypadku
VideoCapture
, dodaj takżesetMirrorMode
na potrzeby przypadku użycia podglądu. Będzie on obsługiwać tryb powielania na WŁ. i WYŁ. w przypadku strumienia w wersji testowej przezOutputConfiguration.setMirrorMode
z interfejsu API 33 i nowszych. W przypadku starszych interfejsów API będzie to tryb no-op. (I821f4)
Poprawki błędów
- Rozwiązaliśmy problem, który powodował, że aplikacje nie mogły z powodzeniem robienia zdjęć na urządzeniu Samsung Tab A8, gdy
ImageCapture
wybierał rozdzielczość 1920 x 1080 w kombinacjiPreview
+VideoCapture
+ImageCapture
UseCase
. (I5a463, b/336925549) - Naprawione trwałe nagrywanie może nie kontynuować nagrywania po przełączeniu kamery. (Icb0a1)
Wersja 1.4.0-beta01
14 maja 2024 r.
Usługa androidx.camera:camera-*:1.4.0-beta01
została zwolniona. Wersja 1.4.0-beta01 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Dodano
ZoomGestureDetector.ZoomEvent
, aby uwzględnić stany gestu powiększenia. (I84cdf)
Poprawki błędów
- Naprawiliśmy błąd, który nadal podczas nagrywania i ustawiania ostrości przez dotknięcie nie używał wartości trybów FPS/stabilizacji powtarzających się żądań. Może to powodować ponowne odtwarzanie sesji nagrywania i zakłócanie opóźnień lub zawieszanie się podglądu na niektórych urządzeniach. (I7dc0b)
- Naprawiono błąd, który powodował, że na niektórych urządzeniach nie można było wybrać wysokiej rozdzielczości, gdy włączona jest aplikacja
CameraEffect
. (np. 4000 x 3000 w przypadku Samsunga A32 5G). (IE3ed3, b/337336152) - Naprawiono błąd, który występował podczas robienia zdjęć w trybie podglądu. Powiązane funkcje
ImageCapture
iVideoCapture(UHD)
są powiązane z interfejsem API 29 Pixela 4XL. (I5b288) - Obsługa urządzeń wirtualnych: kontekst przekazywany do
ProcessCameraProvider
zachowuje identyfikator urządzenia, aby zapewnić działanie urządzenia w środowisku urządzeń wirtualnych. (I5Ba48)
Wersja 1.4.0-alpha05
17 kwietnia 2024 r.
Usługa androidx.camera:camera-*:1.4.0-alpha05
została zwolniona. Wersja 1.4.0-alfa05 zawiera te zatwierdzenia.
Nowe funkcje
- Przekonwertowano
ProcessCameraProvider
na implementację Kotlin. (I46d4f) - Dodano funkcje zawieszania
ImageCapture.takePicture
, które umożliwiają jego wywoływanie w sposób iidiotyczny w kotlinie. (I920BE)
Zmiany interfejsu API
- Dodaj interfejsy API formatu wyjściowego do
ImageCapture
i metodęgetSupportedOutputFormats
doImageCaptureCapabilities
, aby wysyłać zapytania o możliwości urządzenia. Domyślny format wyjściowy toOUTPUT_FORMAT_JPEG
. Oznacza to, że obrazy SDR są zapisywane w formacie JPEG. Jeśli urządzenie obsługuje ultra HDR, a format wyjściowy jest ustawiony naOUTPUT_FORMAT_JPEG_ULTRA_HDR
, AparatX przechwytuje skompresowane zdjęcia ultra HDR w formacie JPEG/R. Ten format jest zgodny wstecz z formatem SDR JPEG i obsługuje renderowanie treści w trybie HDR. Oznacza to, że w przypadku starszych aplikacji i urządzeń obrazy wyglądają bezproblemowo jako zwykłe pliki JPEG. w aplikacjach i na urządzeniach zoptymalizowanych pod kątem obsługi tego formatu obrazy będą się wyświetlać w trybie HDR. (I5de50) - Dodaj funkcję
PhysicalCameraInfo
w usłudzeCameraInfo
, aby przesłać zapytanie dotyczące informacji o fizycznym aparacie i dodać narzędzie do ustawiania/pobierania identyfikatora fizycznego aparatu wCameraSelector
(Ic5b90) - Zamień
CameraController#COORDINATE_SYSTEM_VIEW_REFERENCED
naImageAnalysis#COORDINATE_SYSTEM_VIEW_REFERENCED
. Wartość stałej pozostaje bez zmian. Służy do konsolidowania wszystkich stałych w jednym miejscu. (I890bb) - Nowy interfejs API
RetryPolicy
umożliwia deweloperom dostosowanie sposobu ponawiania prób inicjowania aplikacji CameraX. (I36dd2) - Włącz tworzenie obiektu
ImageCaptureLatencyEstimate
, aby ułatwić testowanie (Iaba99) - Dodaj
ImageAnalysis#COORDINATE_SYSTEM_SENSOR
. Gdy są używane, funkcjaMlKitAnalyzer
zwraca współrzędne w układzie współrzędnych czujnika kamery. (I3ec61). - Interfejs API metadanych udostępnionych rozszerzeń. Nowe interfejsy
CameraExtensionsInfo
iCameraExtensionsControl
umożliwiają aplikacjom monitorowanie i dostosowywanie ustawień siły rozszerzeń. Aplikacje mogą uzyskiwać instancjęCameraExtensionsInfo
lubCameraExtensionsControl
za pomocą nowo dodanych metodExtensionsManager#getCameraExtensionsInfo()
lubExtensionsManager#getCameraExtensionsControl()
. (I28e1a) - Dodano
ProcessCameraProvider.awaitInstance
w zawieszonej wersjiProcessCameraProvider.getInstance
(Ib22b9) - Dodaj interfejs API
PreviewView#getSensorToViewTransform()
. Matryca reprezentuje przekształcenie ze współrzędnych z czujnika aparatu na współrzędnePreviewView
. Można użyć do przekształcenia współrzędnych z jednej wartościUseCase
na inną. Na przykład przekształcenie współrzędnych wykrytych obiektów w komponencieImageAnalysis
na nakładkęPreviewView
. (I947ab) - Zmień interfejs API
camera-viewfinder-core
na bardziej ogólny, aby można było go używać w usługachcamera-viewfinder
icamera-viewfinder-compose
. (I1e295). - Dodaj funkcję
getSurface
do zakresuViewfinderSurfaceRequest
. (I781a0) - Użyj
camera-viewfinder-core
wcamera-viewfinder
oraz wycofajViewfinderSurfaceRequest
iCameraViewfinder
. (I6198C) - Dodano interfejs
ZoomGestureDetector
, który interpretuje gesty skalowania skonfigurowane specjalnie na potrzeby ściągnięcia palców. (Ifafbf)
Poprawki błędów
- Naprawiono
ImageAnalysis
' problem z wyborem rozdzielczości związany z ustawieniem domyślnej rozdzielczości docelowej przez analizatora: rozdzielczość docelowa została niepoprawnie zachowywana jako 640 x 480, nawet jeśli aplikacje zmieniły domyślne ustawienie rozdzielczości tego analizatora. Jeśli aplikacje napotkają ten problem (1.3.0 ~ 1.3.2) i nie mogą przejść na nowszą wersję, która zawiera to rozwiązanie, można obejść ten problem za pomocą ustawieniaResolutionSelector
z preferowaną rozdzielczością i dopasowanieAspectRatioStrategy
doImageAnalysis
UseCase
. (I81f72, b/330091012) - Rozwiązaliśmy problem, który powodował, że żądanie
takePicture
umieszczone w kolejce mogło się nie uruchomić, jeśli bieżące żądanie się nie powiodło. (IE0801). - Zastosuj nieprawidłowe sprawdzanie danych JPEG na urządzeniach Vivo X60 i X60 Pro. Może to rozwiązać problem ze zbyt dużym obrazem na tych urządzeniach. (I82247, b/288828159)
- Rozwiązaliśmy problem z nieprawidłowymi metadanymi obrazu JPEG na urządzeniach Samsung A24. Dzięki tej poprawce Aparat X może zapisać obraz JPEG lub po wywołaniu funkcji
ImageProxy.toBitmap()
na urządzeniach Samsung A24 mogą zostać zwrócone odpowiednie obiekty bitmapy. (I8d6eb, b/309005680) - Jeśli przechwycony obraz jest większy niż 10 MB, zastosuj nieprawidłowe sprawdzanie danych JPEG na wszystkich urządzeniach Samsung. Może to rozwiązać bardzo duży problem z obrazem na urządzeniach Samsung. (Ic2a65, b/288828159)
- Usunięto obsługę
ImageAnalysis
w rozszerzeniach CameraX w przypadku tylu dostawców OEM Implementacje rozszerzeń nie działają dobrze z usługąImageAnalysis
i mogą powodować niespójności. (I2d926)
Wersja 1.4.0-alpha04
24 stycznia 2024 r.
Usługa androidx.camera:camera-*:1.4.0-alpha04
została zwolniona. Wersja 1.4.0-alfa04 zawiera te zatwierdzenia.
Nowe funkcje
- Nowy artefakt: efekty aparatu: biblioteka do stosowania efektów w czasie rzeczywistym na wyjściu AparatuX, w tym
Preview
,VideoCapture
lubImageCapture
. Ten artefakt zawiera implementacje OpenGL APICameraEffect
, które wydajnie manipulują danymi wyjściowymi kamery. OverlayEffect
: do rysowania nakładek za pomocą interfejsu Canvas API na Androidzie. Dzięki temu aplikacja może stosować znak wodny lub wyróżniać wykryte obiekty na obrazie z kamery.- Interfejsy API
DynamicRange
do zastosowania w wersji testowej: zakres dynamiczny można teraz ustawić w przypadku użycia wersji testowej niezależnie od przypadku użycia filmu. Pozwala to włączyć zakresy dynamiczne HDR, takie jak HLG10, na potrzeby podglądu. WCameraInfo
są też dostępne nowe interfejsy API do zapytań o zakresy dynamiczne obsługiwane przez poszczególne kamery.
Zmiany interfejsu API
- Zmieniono nazwę
ScreenFlashUiCompleter
naScreenFlashListener
i przeniesionoScreenFlashUiCompleter#getExpirationTimeMillis
doexpirationTimeMillis
parametruScreenFlash#apply
. (I13944) - Dodaliśmy nowe interfejsy API, aby umożliwić ustawianie zakresu dynamicznego w przypadku użycia w wersji testowej i wysyłanie zapytań dotyczących zakresów dynamicznych obsługiwanych przez każdą kamerę. Dzięki temu zakresy dynamiczne HDR, takie jak HLG10, mogą być używane tylko w przypadku wersji przedpremierowej. Nie jest już wymagane jednoczesne powiązanie obiektu
VideoCapture
. (If25e3). - Nazwa
getMirroring()
została zmieniona naisMirroring()
(I47063). - Dodano obsługę szacunków czasu oczekiwania na rejestrowanie w czasie rzeczywistym w aplikacji CameraX. Rozszerzenia aparatu umożliwiają aplikacjom korzystanie z interfejsu API, który szacuje czas potrzebny na przechwytywanie. Oszacowanie uwzględnia bieżące warunki w środowisku i stan kamery, a także czas przetwarzania żądań przechwytywania wieloklatkowych oraz w razie potrzeby dodatkowy czas na kodowanie przetworzonych buforów. (I05c3A)
- Zmieniono nazwę
ScreenFlashUiControl
naScreenFlash
,ScreenFlashUiControl#applyScreenFlashUi
naScreenFlash#apply
,ScreenFlashUiControl#clearScreenFlashUi
naScreenFlash#clear
i dodano metodęgetScreenFlashUiApplyTimeoutSeconds
, zamiast udostępniaćSCREEN_FLASH_UI_APPLY_TIMEOUT_SECONDS
bezpośrednio. (Iccdd0)
Poprawki błędów
- Rozwiązaliśmy wyciek pamięci, który powodował, że działania lub fragmenty nie były zwalniane przy włączonym rozszerzeniach (I14215)
- Rozwiązaliśmy problem, który powodował, że funkcja
getZoomRatio
nieprawidłowo zwracała zmniejszoną wartość po zastosowaniu rosnącego współczynnika powiększenia. (I4aa0d, b/317543616) - Zdarzenie
ImageCapture#ScreenFlash#clear
jest wywoływane natychmiast, gdy zdarzenieImageCapture
nie jest powiązane lub kamera jest zamknięta. Naprawiono też błędy, które powodowały, że zdarzenie nigdy nie było wywoływane, ponieważ zapisy w takich sytuacjach nie były wykonywane prawidłowo. (If99f9). - Naprawiliśmy awarię, która występowała po zatrzymaniu cyklu życia przed zrealizowaniem żądania
takePicture
(Idf017, b/306202751). - Rozwiązaliśmy problem, który powodował, że na niektórych urządzeniach podgląd z aparatu był czarny (I1ffd0)
- Usunięto nieprawidłowy czas trwania nagrywania filmów na urządzeniach z układem SoC Snapdragon 778G. (If6aa7, b/316057919)
Wersja 1.4.0-alpha03
13 grudnia 2023 r.
Usługa androidx.camera:camera-*:1.4.0-alpha03
została zwolniona. Wersja 1.4.0-alfa03 zawiera te zatwierdzenia.
Nowe funkcje
- Dodano
CameraInfo.mustPlayShutterSound
, który zawiera informacje o tym, czy dźwięk migawki musi być odtwarzany zgodnie z ograniczeniami regionalnymi. (Ifda84). - Dodano
OnImageCapturedCallback.onCaptureStarted
iOnImageSavedCallback.onCaptureStarted
do powiadamiania o tym, że kamera zaczęła naświetlać kadr. Zalecamy odtworzenie w tym momencie dźwięku migawki lub animacji migawki. (IC49b3). - Dodano obsługę lampy błyskowej ekranu w AparacieX, aby można było robić zdjęcia przednim aparatem. CameraX zajmie się obsługą interfejsu API po stronie platformy i w razie potrzeby zsynchronizuje czas ze zmianami w interfejsie aplikacji (np. aktywuje funkcję wstępnego przechwytywania AE po zmianie koloru lub jasności ekranu aplikacji). Aplikacje muszą tylko dodać implementacje po stronie interfejsu użytkownika w interfejsie
ScreenFlashUiControl
udostępnianym w aplikacji CameraX. (I8ae84), - Dodaliśmy obsługę implementacji po stronie interfejsu użytkownika w przypadku Flasha ekranu w Aparacie X. Aplikacje będą mogły uzyskać podstawową implementację
ImageCapture.ScreenFlashUiControl
odPreviewView
lub nowo dodanejScreenFlashView
, która umożliwi wyświetlanie monokolorowej nakładki i maksymalizowanie jasności ekranu podczas robienia zdjęć z użyciem lampy błyskowej. (I1810e)
Zmiany interfejsu API
- Obsługuje nowe funkcje rozszerzeń(postęp procesu po wyświetleniu i rejestrowaniu): dodano interfejsy API
ImageCapture#getImageCaptureCapabilities()
dla aplikacji, aby umożliwić w przypadku zapytań o możliwości wywołania zwrotnego postępu procesu po wyświetleniu i rejestracji. Aplikacje mogą włączyć po wyświetleniu za pomocą:ImageCapture.Builder#setPostviewEnabled()
. Rozmiar po wyświetleniu można wybrać za pomocą parametruImageCapture.Builder#setPostviewResolutionSelector()
. Gdy wywołujesztakePicture()
,onPostviewBitmapAvailable
ionCaptureProcessProgressed
można zaimplementować wOnImageSavedCallback
lubOnImageCapturedCallback
, aby otrzymywać powiadomienia o po wyświetleniu i postępach przetwarzania (jeśli są obsługiwane). (I5cd88) - Interfejsy API do obliczania transformacji współrzędnych z czujnika do bieżącego bufora z flagą wskazującą, czy powierzchnia zawiera informacje o orientacji kamery. (I59096)
- Udostępnij interfejs API, aby wysłać zapytanie
PreviewCapabitlity
w wersji testowejUseCase
. (IE5B6c) - Dodano interfejsy API, które obsługują więcej jakości w
VideoCapture
.Recorder.Builder#setVideoCapabilitiesSource(int)
może być użyte zVIDEO_CAPABILITIES_SOURCE_CODEC_CAPABILITIES
do utworzeniaRecorder
instancji, która obsługuje więcej jakości niżVIDEO_CAPABILITIES_SOURCE_CAMCORDER_PROFILE
. Typowym przypadkiem użycia jest sytuacja, w której aplikacja próbuje nagrywać filmy UHD, gdy tylko jest to możliwe, ale urządzenieCamcorderProfile
urządzenia nie udostępnia ustawień UHD, mimo że kodek umożliwia nagrywanie filmów UHD. (Iedbe2, b/263961771) - Dodano metodę pobierania/usuwania formatu wyjściowego
ImageAnalysis
do elementuCameraController
. (I9a96c, b/308240643)
Poprawki błędów
- Z aparatu
1.3.1
: ulepszono wydajność urządzeniaProcessCameraProvider#bindToLifecycle()
. Główna zmiana polega na zoptymalizowaniu procesu identyfikowania najbardziej odpowiednich kombinacji rozmiarów w przypadku elementuUseCases
. Optymalne wyniki różnią się w zależności od konkretnych kombinacji elementówUseCase
i liczby obsługiwanych rozmiarów wyjściowych dla urządzeń docelowych. (I454f2) - Zezwalaj na używanie interfejsu
VideoCapture
, gdy rozszerzenia są włączone. (I91f32) - Rozwiązaliśmy problem z dużym przechwyconym obrazem JPEG na urządzeniach Samsung A71 i M51. Przechwycone obrazy JPEG zawierają nadmiarowe dane dopełnienia 0 w segmencie danych skompresowanych JFIF. Zbyt duże rozmiary plików na przechwyconych zdjęciach. Zbędne dane dopełnienia 0 zostaną usunięte, aby zrobione zdjęcia miały prawidłowy rozmiar. (I01afc, b/288828159)
- Wyłącz obsługę funkcji
ImageAnalysis
na Pixelu, aby uniknąć błędu, który powoduje przypadkowe zwracanie niepustych obsługiwanych rozmiarów zImageAnalysis
. (I7ec31). - Rozwiązaliśmy problem z wydajnością, który powodował wzrost obciążenia procesora i zużyciem energii, gdy włączone były rozszerzenia. (Ibdccb)
- Dodano Snapdragon 480 do aplikacji
CameraUseInconsistentTimebaseQuirk
. To rozwiązuje problem występujący w Androidzie 12 na urządzeniach korzystających z tego chipsetu, w którym dźwięk w nagraniach jest zmniejszony o czas, przez który urządzenie było w stanie zawieszenia. (I58010)
Wersja 1.4.0-alpha02
18 października 2023 r.
Usługa androidx.camera:camera-*:1.4.0-alpha02
została zwolniona. Wersja 1.4.0-alfa02 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Zmień nazwę interfejsu API na
setCameraOpenRetryMaxTimeoutInMillisWhileResuming
i zmień nazwę argumentu. (I72370) - Dodaję interfejsy API, które sprawdzają możliwości urządzenia i włączają stabilizację wideo/podglądu. (I87544)
- Udostępnij interfejs API, aby dostosować maksymalny czas oczekiwania na włączenie kamery. (I0c642)
- Udostępniliśmy
ProcessCameraProvider.shutdownAsync
jako publiczny interfejs API do testów, aby umożliwić korzystanie z dostawcy kamer do procesów w pakietach testowych, które mogą wymagać inicjowania aparatu X na różne sposoby pomiędzy kolejnymi testami. (I9Eca7). - Dodaj interfejsy API do konfigurowania zakresu dynamiki nagrywania wideo, liczby klatek i trybu lustrzanego. (Ifb8f7).
- Wycofaj zasób
OutputSize
i zastąp go elementemResolutionSelector
.ResolutionSelector
to bardziej wszechstronny sposób wyboru rozdzielczości, zgodny z interfejsem Camera Core API. (I93abd, b/286801438)
Poprawki błędów
- Rozwiązaliśmy problem z czarnym podglądem na telefonie Samsung Galaxy S23 Ultra 5G, gdy w tylnym aparacie włączono rozszerzenia Bokeh lub retusz twarzy przy użyciu funkcji
ImageAnalysis
. (I2e8b1). - Naprawiliśmy problemy z podglądem i problemy z rozciągniętym opóźnieniem (
VideoCapture
) w Moto E5 Play. (73dce2).
Wersja 1.4.0-alpha01
20 września 2023 r.
Usługa androidx.camera:camera-*:1.4.0-alpha01
została zwolniona. Wersja 1.4.0-alfa01 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Dodaj nowy interfejs API, aby uzyskać dostęp do informacji o amplitudzie dźwięku podczas nagrywania. (Id4925).
Poprawki błędów
- Aby zwiększyć stabilność rozszerzeń, zadbaj o to, aby zdarzenia inicjowania i dezinicjowania były wywoływane w prawidłowej kolejności. (Ib3b8e)
- Rozwiązaliśmy problem z błędem konfiguracji sesji przechwytywania spowodowanym przez przekroczenie kombinacji obsługiwanej powierzchni z powodu wewnętrznego dodania dodatkowej powtarzającej się powierzchni. (Id718c).
- Rozwiązaliśmy problem z dużym przechwyconym obrazem JPEG na urządzeniu Vivo S16. Przechwycone obrazy JPEG zawierają nadmiarowe dane dopełnienia 0 w segmencie danych skompresowanych JFIF. Przechwycone obrazy mają duży rozmiar. Zbędne dane dopełnienia 0 zostaną usunięte, aby zrobione zdjęcia miały prawidłowy rozmiar. (I79505, b/299069235)
- Rozwiązaliśmy problem, który powodował, że po włączeniu niektórych trybów rozszerzeń na niektórych urządzeniach nie można było powiązać rozszerzenia
ImageAnalysis
ze znacznikamiImageCapture
i podglądem. Rozwiązanie problemu zwróci prawidłową wartość, gdy aplikacje będą wysyłać zapytania o dostępność:ImageAnalysis
za pomocąExtensionsManager#isImageAnalysisSupported()
. (I7d538) - Zaktualizuj dokument JavaDoc, aby dostosować działanie. Zamiast wykonywać natychmiast,
#setZoomRatio
,#setLinearZoom
i#enableTorch
czekają, aż kamera będzie gotowa. Dodaliśmy też informacje o tym, jak uzyskać maksymalny pole widzenia za pomocą interfejsu API#takePicture
. (I23588)
Wersja 1.3
Wersja 1.3.4
12 czerwca 2024 r.
Usługa androidx.camera:camera-*:1.3.4
została zwolniona. Wersja 1.3.4 zawiera te zatwierdzenia.
Poprawki błędów
- Rozwiązaliśmy problem, który powodował, że funkcja
getZoomRatio
nieprawidłowo zwracała zmniejszoną wartość po zastosowaniu rosnącego współczynnika powiększenia. (I4aa0d, b/317543616) - Rozwiązano problem z brakiem wartości FPS / stabilizacji w przypadku powtarzających się żądań. Na niektórych urządzeniach może to powodować odtwarzanie sesji nagrywania i blokowanie się podglądu. (I7dc0b)
- Rozwiązaliśmy problem z niższą wartością liczby klatek podczas wywoływania funkcji
setTargetFrameRate
za pomocą funkcjiFRAME_RATE_RANGE_UNSPECIFIED
. (I78c61)
Wersja 1.3.3
17 kwietnia 2024 r.
Usługa androidx.camera:camera-*:1.3.3
została zwolniona. Wersja 1.3.3 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawiono
ImageAnalysis
' problem z wyborem rozdzielczości związany z ustawieniem domyślnej rozdzielczości docelowej przez analizatora: rozdzielczość docelowa została niepoprawnie zachowywana jako 640 x 480, nawet jeśli aplikacje zmieniły domyślne ustawienie rozdzielczości tego analizatora. Jeśli aplikacje napotkają ten problem (1.3.0 ~ 1.3.2) i nie mogą przejść na nowszą wersję, która zawiera to rozwiązanie, może ominąć ten problem, ustawiając bezpośrednio parametrResolutionSelector
z preferowaną rozdzielczością i pasującyAspectRatioStrategy
do:ImageAnalysis
przypadku użycia. (I81f72, b/330091012)
Wersja 1.3.2
6 marca 2024 roku
Usługa androidx.camera:camera-*:1.3.2
została zwolniona. Wersja 1.3.2 zawiera te zatwierdzenia.
Poprawki błędów
- Usunięto problem z metadanymi JPEG na urządzeniach Samsung A24. AparatX dokładnie zapisuje obrazy, a funkcja
ImageProxy.toBitmap()
zwraca prawidłowe obiekty mapy bitowej. (I8d6eb, b/309005680) - Z powodu problemów usunęliśmy opcję rozdzielczości 9280 x 6944 na urządzeniach Redmi Note 9 Pro. (IA23da).
Wersja 1.3.1
13 grudnia 2023 r.
Usługa androidx.camera:camera-*:1.3.1
została zwolniona. Wersja 1.3.1 zawiera te zatwierdzenia.
Poprawki błędów
Zwiększono wydajność komponentu ProcessCameraProvider#bindToLifecycle()
. Główna zmiana polega na zoptymalizowaniu procesu identyfikowania najbardziej odpowiednich kombinacji rozmiarów w przypadku elementu UseCases
. Optymalne wyniki różnią się w zależności od konkretnych kombinacji elementów UseCase
i liczby obsługiwanych rozmiarów wyjściowych dla urządzeń docelowych. (I454f2)
Oto kilka wyników dotyczących różnych scenariuszy:
Cztery
UseCases
:Preview
+ImageCapture
+ImageAnalysis
+VideoCapture
- Google Pixel 7: ok. 430–60 ms
- Samsung Galaxy S23 Ultra: ok. 540–45 ms
- Samsung A53 5G: ok. 115–70 ms
3
UseCases
:Preview
+ImageCapture
+ImageAnalysis
- Google Pixel 7: ok. 9 ms–7 ms
- Samsung Galaxy S23 Ultra: ok. 6 ms do 5 ms
- Samsung A53 5G: ok. 32 ms do 12 ms
Dodano Snapdragon 480 do aplikacji
CameraUseInconsistentTimebaseQuirk
. To rozwiązuje problem występujący w Androidzie 12 na urządzeniach korzystających z tego chipsetu, w którym dźwięk w nagraniach jest zmniejszony o czas, przez który urządzenie było w stanie zawieszenia. (I58010)
Wersja 1.3.0
18 października 2023 r.
Usługa androidx.camera:camera-*:1.3.0
została zwolniona. Wersja 1.3.0 zawiera te zatwierdzenia.
Ważne zmiany wprowadzone od wersji 1.2.0
- Funkcje wideo, w tym 10-bitowy HDR, przycinanie, odbicie lustrzane/bez odbicia lustrzanego, wyciszanie/wyłączanie wyciszenia, ustawianie liczby klatek i inne.
- Podwójna kamera równoczesna
- Biblioteka efektów
- Selektor rozdzielczości
- Ultraszerokokątny Wybór aparatu teleskopowego
- Przełączanie aparatu podczas nagrywania filmu (funkcja eksperymentalna)
Wersja 1.3.0-rc02
20 września 2023 r.
Usługa androidx.camera:camera-*:1.3.0-rc02
została zwolniona. Wersja 1.3.0-rc02 zawiera te zatwierdzenia.
Poprawki błędów
- Aby zwiększyć stabilność rozszerzeń, zadbaj o to, aby zdarzenia inicjowania i dezinicjowania były wywoływane w prawidłowej kolejności. Rozwiązano problemy z podglądem w kolorze czarnym podczas przełączania trybów rozszerzeń lub aparatu. (Iddaac).
- Rozwiązaliśmy problem, który powodował, że po włączeniu niektórych trybów rozszerzeń na niektórych urządzeniach nie można było powiązać rozszerzenia
ImageAnalysis
ze znacznikamiImageCapture
i podglądem. Rozwiązanie problemu zwróci prawidłową wartość, gdy aplikacje będą wysyłać zapytania o dostępność:ImageAnalysis
za pomocąExtensionsManager#isImageAnalysisSupported()
. (I7d538) - Rozwiązaliśmy problem, który powodował, że po włączeniu trybu lustrzanego na urządzeniu Xiaomi Poco X3 NFC nagrania i dźwięk w filmach nie były zsynchronizowane. (I20B4C)
Wersja 1.3.0-rc01
23 sierpnia 2023 r.
Usługa androidx.camera:camera-*:1.3.0-rc01
została zwolniona. Wersja 1.3.0-rc01 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Dodano
PendingRecording.asPersistentRecording
, aby umożliwić ciągłe nagrywanie nagrania w czasie, gdy jest podłączona DyktafonVideoCapture
, do którego jest podłączony rejestrator. (I517C6)
Poprawki błędów
- Rozwiązaliśmy problem, który powodował awarię udostępniania strumienia zarówno w narzędziu
VideoCapture
, jak i w podglądzie. Naprawiono też czarny ekran na urządzeniach LEGACY po włączeniu udostępniania transmisji. - Usunięto problem z dużym przechwyconym obrazem JPEG na urządzeniach Samsung S7 (SM-G930T, SM-G930V). Przechwycone obrazy JPEG zawierają nadmiarowe dane dopełnienia 0 w segmencie danych skompresowanych JFIF. Przechwycone obrazy mają duży rozmiar. Zbędne dane dopełnienia 0 zostaną usunięte, aby zrobione zdjęcia miały prawidłowy rozmiar. (I407b0, b/288828159)
- Usunięto problem z dużym przechwyconym obrazem JPEG na urządzeniach Samsung S22 (SM-S901B, SM-S901B/DS) i S22+ (SM-S906B). Przechwycone obrazy JPEG zawierają nadmiarowe dane dopełnienia 0 w segmencie danych skompresowanych JFIF. Na urządzeniu S22 SM-S901B/DS przechwycony obraz ma duży rozmiar, około 13 MB. Zbędne dane dopełnienia 0 zostaną usunięte, aby zrobione zdjęcia miały prawidłowy rozmiar. (I73be9, b/288828159)
- Rozwiązaliśmy problem z dużym przechwyconym obrazem JPEG na urządzeniach Samsung A5, A52, A70 i A72. Przechwycone obrazy JPEG zawierają nadmiarowe dane dopełnienia 0 w segmencie danych skompresowanych JFIF. Przechwycone zdjęcia mają bardzo duży rozmiar (np. około 32 MB, a nawet 96 MB). Zbędne dane dopełnienia 0 zostaną usunięte, aby zrobione zdjęcia miały prawidłowy rozmiar. (I97c4d, b/288828159)
- Naprawiono awarię natywnej występującą podczas robienia zdjęć z włączonymi rozszerzeniami (I698f5).
Wersja 1.3.0-beta02
26 lipca 2023 r.
Usługa androidx.camera:camera-*:1.3.0-beta02
została zwolniona. Wersja 1.3.0-beta02 zawiera te zatwierdzenia.
Poprawki błędów
- W przypadku Pixela 4 i 5 wersji lampy błyskowej możesz używać jako lampy błyskowej, aby poprawić jakość nagrywania przy słabym oświetleniu (I56ff5, b/280221967)
- Rozwiązaliśmy problem z dużym przechwyconym obrazem JPEG na urządzeniach Samsung A5 (2017). Przechwycone obrazy JPEG zawierają nadmiarowe dane dopełnienia 0 w segmencie danych skompresowanych JFIF. Przechwycony obraz będzie miał rozmiar około 32 MB. Zbędne dane dopełnienia 0 zostaną usunięte, aby zrobione zdjęcia miały prawidłowy rozmiar. (I29837, b/288828159)
- Naprawiono ponawianie próby, które nie uruchamiały się prawidłowo w przypadku niepowodzenia nagrywania na urządzeniach wymienionych w artykule
CaptureFailedRetryQuirk
. (I7B589)
Wersja 1.3.0-beta01
21 czerwca 2023 r.
Usługa androidx.camera:camera-*:1.3.0-beta01
została zwolniona. Wersja 1.3.0-beta01 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Zmieniliśmy nazwę funkcji
ResolutionSelector.Builder#setHighResolutionEnabledFlag(int)
nasetAllowedResolutionMode
, a stałeResolutionSelector#HIGH_RESOLUTION_FLAG_OFF
/ON
naPREFER_CAPTURE_RATE_OVER_HIGHER_RESOLUTION
/PREFER_HIGHER_RESOLUTION_OVER_CAPTURE_RATE
. (If84e8). - Usunięto wycofane interfejsy API
ImageAnalysis.setTargetRotationDegrees(int)
,ImageCapture.setTargetRotationDegrees(int)
iVideoCapture.setTargetRotationDegrees(int)
. (Id8e77). - Klasa
DynamicRange
reprezentuje dynamiczny zakres obrazów. Można jej użyć, aby wybrać formaty High Dynamic Range jako dane wyjściowe odVideoCapture
doVideoCapture.Builder#setDynamicRange()
. (IB0377) - W tabeli
ExtensionsManager
dodaliśmy interfejs APIisImageAnalysisSupported
, który pozwala aplikacjom określić, czy przypadek użyciaImageAnalysis
można powiązać z podglądem iImageCapture
, gdy włączone są rozszerzenia. (I1Bc63) - Nowa klasa
VideoCapabilities
uzyskana zRecorder
może być używana do wysyłania zapytań dotyczących obsługiwanych zakresów dynamicznych i jakości nagrywania wideo na urządzeniu. MetodygetSupportedQualities()
iisQualitySupported()
interfejsuQualitySelector
są wycofywane. Zamiast niego użyj metodgetSupportedQualities()
iisQualitySupported()
interfejsuVideoCapabilities
. (I04014). - Nazwa
CameraController#setVideoCaptureTargetQuality()
została zmieniona nasetVideoCaptureQualitySelector
i przyjmuje argumentQualitySelector
, co zapewnia większą elastyczność konfigurowania jakości wideo. PoleCameraController#getVideoCaptureTargetQuality()
zostało odpowiednio zmienione nagetVideoCaptureQualitySelector
. (I520ed) - Usunęliśmy eksperymentalną adnotację dotyczącą funkcji wideo. Funkcje wideo są teraz stabilne. (I1a113).
Poprawki błędów
- Używaj latarki jako lampy błyskowej w modelach Samsung SM-A320, aby zwiększyć szybkość i jakość zdjęć robionych przy słabym oświetleniu. (I6a022, b/286190938)
- Dodano obsługę formatu
ImageFormat.JPEG
w przypadku elementuImageProxy.toBitmap()
. Jeśli nie można zdekodować tablicy bajtów JPEG, zostanie zgłoszony tagUnsupportedOperationException
. (I81958, b/282057603)
Wersja 1.3.0-alpha07
24 maja 2023 r.
Usługa androidx.camera:camera-*:1.3.0-alpha07
została zwolniona. Wersja 1.3.0-alfa07 zawiera te zatwierdzenia.
Nowe funkcje
- Nowy interfejs API
VideoCapture.Builder# setTargetFrameRate(Range)
umożliwia nagrywanie filmów z inną liczbą klatek niż domyślna dla urządzenia. Zapytania o dostępne liczby klatek w nagraniach można wysyłać za pomocą nowego interfejsu APICameraInfo#getSupportedFrameRates()
.
Zmiany interfejsu API
- Zmieniono nazwę stałych
ResolutionSelector#HIGH_RESOLUTION_FLAG_OFF
/ON
naALLOWED_RESOLUTIONS_NORMAL
/SLOW
i nazwę funkcjisetHighResolutionEnabledFlag
konstruktora nasetAllowedResolutionMode
. (IAE817). - Funkcja
CameraInfo#getSupportedFrameRateRanges()
zwraca terazSet
zamiastList
, co lepiej odzwierciedla, że zakresy są nieuporządkowane. (I02f43) - Dodaj detektor błędów do
CameraEffect
, aby obsługiwać nieodwracalne błędy (Ice471) - Dodaj konstruktor publiczny w
ResolutionInfo
, aby zwiększyć wykrywalność (If6d1c) - Udostępniliśmy interfejs API
UseCase.snapToSurfaceRotation(int)
, aby zastąpić używaniesetTargetRotationDegrees
i wycofać interfejsy APIImageAnalysis.setTargetRotationDegrees(int)
,ImageCapture.setTargetRotationDegrees(int)
iVideoCapture.setTargetRotationDegrees(int)
. (IA9010). - Dodano nowe interfejsy API
Preview#getTargetFrameRate
iPreview.Builder#setTargetFrameRate
, aby umożliwić ustawianie i pobieranie docelowej liczby klatek na potrzeby podglądu (If4f22). - Gdy obiekt
Recording
zostanie zatrzymany z powodu czyszczenia pamięci, funkcjaVideoRecordEvent.Finalize
uzupełni teraz kod błęduERROR_RECORDING_GARBAGE_COLLECTED
. (IBA974)
Poprawki błędów
- Naprawiono
NullPointerException
, gdy rozmiary danych wyjściowych z pamięci podręcznej w zasadzieStreamConfigurationMapCompat
mają wartość null. (Idf124, b/282025204) - Rozwiązaliśmy problem polegający na tym, że
Preview.setSurfaceProvider(null)
nie wstrzymuje podglądu w rozszerzeniach (Ia903e). - Naprawiono błąd, który powodował zgłaszanie żądania
ConcurrentModificationException
podczas otwierania kamery, gdy powiązana jest wartośćVideoCapture
. (Ic8ac4).
Wersja 1.3.0-alpha06
19 kwietnia 2023 r.
Usługa androidx.camera:camera-*:1.3.0-alpha06
została zwolniona. Wersja 1.3.0-alfa06 zawiera te zatwierdzenia.
Nowe funkcje
- Równoczesny aparat to nowa funkcja wprowadzona w Androidzie 11, która obsługuje jednoczesne strumieniowanie danych z kamer. Na przykład pozwala na jednoczesne działanie przedniego i tylnego aparatu. CameraX obsługuje obecnie tylko podwójne kamery równoczesne, co umożliwia jednoczesne działanie dwóch kamer, do których przypisano maksymalnie dwie {@link UseCase} dla każdej z nich. Maksymalna rozdzielczość to 720p lub 1440p. Więcej informacji znajdziesz w sekcji CameraManager#getConcurrentCameraIds().
- Przedstawiamy nowy interfejs API
ResolutionSelector
, który obejmuje te funkcje:- Aplikacje mogą określać format obrazu i strategie rozdzielczości, aby wybrać rozdzielczość, która najlepiej odpowiada ich potrzebom.
- Wszystkie parametry rozmiaru i współczynnika proporcji obrazu są wyrażone we współrzędnych czujnika aparatu.
- W aplikacjach można wdrożyć filtr rozdzielczości niestandardowej, aby rozmieścić obsługiwane rozmiary w wybranej kolejności.
- Aplikacje mogą też umożliwiać robienie zdjęć w wysokiej rozdzielczości, co pozwala uzyskać obrazy w wyższej rozdzielczości. Pamiętaj jednak, że użycie wysokiej rozdzielczości może wydłużyć czas nagrywania.
- Dodano interfejsy API powielania
VideoCapture
. Domyślnie filmy nagrane przez użytkownikaVideoCapture
nie są powielane. Domyślnie podgląd z aparatu jest jednak wyświetlany w przednim aparacie. Interfejsy API do tworzenia odbicia lustrzanegoVideoCapture
umożliwiają dopasowanie do podglądu z aparatu podczas używania przedniego aparatu. Są trzy kategorie:MirrorMode
,OFF
,ON
iON_FRONT_ONLY
. Aby dopasować obraz do podglądu z aparatu, zalecamy użycieON_FRONT_ONLY
– odbicie lustrzane nie jest włączone w przypadku tylnego aparatu, ale jest włączone w przednim.
Zmiany interfejsu API
- Udostępniono nowy interfejs API
ResolutionSelector
. Aby uzyskać oczekiwane wyniki, aplikacje mogą określać formaty obrazu i rozdzielczości przy użyciu reguł kreacji zastępczych lub filtra rozdzielczości niestandardowych. Aplikacje mogą ustawić flagę, która umożliwia przechwytywanie w wysokiej rozdzielczości. Dzięki temu AparatX będzie mógł wybrać wyższą rozdzielczość podczas robienia zdjęć i nagrywania filmów. Pamiętaj jednak, że użycie wysokiej rozdzielczości może wydłużyć czas nagrywania. (IBED95). - Zapytania dotyczące zakresów klatek na sekundę obsługiwanych przez algorytm AE można teraz wysyłać za pomocą funkcji
CameraInfo#getSupportedFrameRateRanges()
. (Iaa67f). - Skonsoliduj nazwy wszystkich metod związanych z liczbą klatek, aby użyć parametru „FrameRate”. Popraw błąd w pliku javadoc w
VideoCapture#getTargetFrameRate()
(I83304) - Wycofaliśmy starsze interfejsy API
setTargetAspectRatio
isetTargetResolution
. Użyj nowego interfejsu APIResolutionSelector
. (I542c3) - Dodano publiczne interfejsy API do jednoczesnej pracy na 2 aparatach, w tym:
List<List<CameraInfo>> getAvailableConcurrentCameraInfos()
ConcurrentCamera bindToLifecycle(@NonNull ConcurrentCameraConfig concurrentCameraConfig)
boolean isConcurrentCameraModeOn()
iConcurrentCameraConfig
,SingleCameraConfig
iConcurrentCamera
(Iab1c1)
- Ustaw wartość
ImageProcessor.Response#getOutputImage
jako NonNull (Ib9c60) - Dodano interfejsy API powielania
VideoCapture
, w tymVideoCapture.Builder.setMirrorMode(int)
iVideoCapture.getMirrorMode()
. Interfejsy API są przydatne w aplikacjach, które wymagają, aby nagrywanie wideo było zgodne z typowym sposobem działania podglądu aparatem, np. podgląd z tylnego aparatu nie jest odbiciem lustrzanym, ale podgląd z przedniego aparatu jest odbiciem lustrzanym. (I713b6, b/194634656) - Dodaj interfejs
setTargetFrameRate()
API w interfejsach APIVideoCapture.Builder
igetTargetFramerate()
wVideoCapture
(I109d4) - Ustaw rozszerzenie
SurfaceOutput
na zamykanie i ukryj publiczny konstruktor SurfaceOutput.Event
. (I60EA8) - Dodano funkcję
Recording.mute
, która umożliwia dynamiczne wyciszanie i wyłączanie wyciszenia nagrania w trakcie przetwarzania.RecordingStats
będzie zawierać parametrAudioStats.AUDIO_STATE_MUTED
, jeśli podczas przetwarzania zostanie wyciszone. (IE17fc) - Parametr
#setEffects()
ma wartość inną niż zero. Dodaj interfejs API#clearEffects()
do usuwania efektów. Aby usunąć efekty, aplikacja powinna wywołać metodę#clearEffects()
. (I4b4d9) - Dodaj drugi konstruktor dla
ViewfinderSurfaceRequest.Builder
, aby użyć kreatora do konstruktora tekstu (I621a7)
Poprawki błędów
- Rozwiązaliśmy problem, który powodował awarię aplikacji wywołujących interfejs Extensions API przy zamykaniu aparatu (Ib27e5).
- Rozwiązaliśmy problem, który powodował, że na niektórych urządzeniach aplikacja
VideoCapture
nie działała z przednim aparatem. Na przykład na Samsungu Galaxy S23 i Xiaomi 2107113SG. (Ibec7e, b/270656244) - Rozwiązaliśmy problem, który powodował, że na Androidzie 10 lub nowszym robienie zdjęć przy użyciu opcji Plik w publicznym folderze pamięci zewnętrznej zawsze kończyło się niepowodzeniem. Pamiętaj, że na Androidzie 10 robienie zdjęć przy użyciu opcji Plik w publicznym folderze pamięci zewnętrznej wymaga też ustawienia
requestLegacyExternalStorage
w tagu aplikacji. (I11b2c). - Naprawiono awarię
RejectedExecutionException
w regionieDefaultSurfaceProcessor
. Awaria może wystąpić, gdy zasadaVideoCapture
jest powiązana, a aktywność jest wstrzymana. (Idb46a, b/273713906)
Wersja 1.3.0-alpha05
22 marca 2023 r.
Usługa androidx.camera:camera-*:1.3.0-alpha05
została zwolniona. Wersja 1.3.0-alfa05 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Dodano interfejsy API rotacji
VideoCapture
, w tymVideoCapture.Builder.setTargetRotation(int)
,VideoCapture.setTargetRotation(int)
,VideoCapture.setTargetRotationDegrees(int)
iVideoCapture.getTargetRotation()
. Interfejsy API są przydatne w aplikacjach, które blokują orientację urządzenia. Dodano też użytkownikaImageCapture.setTargetRotationDegrees(int)
iImageAnalysis.setTargetRotationDegrees(int)
. (Id3ffe, b/205242781) - Zezwalaj na docelowe efekty:
VIDEO_CAPTURE
iPREVIEW|VIDEO_CAPTURE
. Efekty kierowane naVIDEO_CAPTURE
będą stosowane w przypadku użycia typuVideoCapture
; Efekty kierowane na językPREVIEW|VIDEO_CAPTURE
zostaną zastosowane do udostępnionej transmisji przed skopiowaniem do wersji testowej i strumieniaVideoCapture
. (Iee6f3).
Poprawki błędów
- W narzędziu Aparat
1.2.2
: rozwiązano problem polegający na tym, że na niektórych urządzeniach, takich jak Pixel (I90aa2), rozszerzenia Aparatu X nie działają prawidłowo po włączeniu ProGuard. - Naprawiliśmy błąd
PreviewView
polegający na tym, że aplikacja sama obsługiwała orientację ekranu. podgląd może zostać zniekształcony podczas obracania. Dzieje się tak tylko na niektórych urządzeniach. Można ją odtworzyć na Pixelu a4, Pixelu 5 i Pixelu 6a. (I14340, b/223488673)
Wersja 1.3.0-alfa04
22 lutego 2023 roku
Usługa androidx.camera:camera-*:1.3.0-alpha04
została zwolniona. Wersja 1.3.0-alfa04 zawiera te zatwierdzenia.
Nowe funkcje
Nowa funkcja obsługująca wcześniej nieobsługiwane kombinacje platform przez udostępnianie jednego strumienia do wielu przypadków użycia.
- Wcześniej podczas wiązania „Podgląd, Przechwytywanie wideo, Analiza obrazu” na poziomie sprzętowym kamery PEŁNY i niższy poziom lub powiązanie „Podgląd, Przechwytywanie wideo, Przechwytywanie obrazu” na poziomie sprzętowym LEGACY, AparatX zgłasza
IllegalArgumentException
. - Nowe działanie polega na tym, że powiązania będą działać bez zgłaszania wyjątków. Aparat CameraX kopiuje udostępniony strumień do podglądu i rejestracji wideo przez tryb OpenGL.
- W związku z kosztem kopii w buforze aplikacja może zwiększać czas oczekiwania i zużycie energii.
Zmiany interfejsu API
- Dodaj interfejs API, aby przekonwertować
ImageProxy
naBitmap
. Obsługiwany format elementuImageProxy
toImageFormat.YUV_420_888
iPixelFormat.RGBA_8888
. Jeśli format jest nieprawidłowy, zgłaszany jest parametrIllegalArgumentException
. (IC7110) - Dodanie
CoroutineCameraViewfinder
umożliwia konfigurowanie wizjera za pomocą funkcji zawieszania w Kotlin. (I657bc) - Dodaj nowy konstruktor publiczny do projektu
ViewfinderSurfaceRequest
. Zapewnia elastyczność, gdy użytkownik nie może podać elementuCameraCharacteristics
. (IE6549).
Poprawki błędów
- Usunięto awarię rozszerzeń, która występowała na niektórych urządzeniach Samsung po zbyt szybkim wstrzymywaniu/wznawianiu aplikacji (Iaca26).
Wersja 1.3.0-alfa03
25 stycznia 2023 r.
Usługa androidx.camera:camera-*:1.3.0-alpha03
została zwolniona. Wersja 1.3.0-alfa03 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Dodaliśmy
CameraInfo.getIntrinsicZoomRatio
, aby podać informacje o kącie patrzenia względem kamery domyślnej. (IB300C) - Dodano
CameraInfo.getLensFacing
, aby podawać informacje dotyczące obiektywu. DodanoCameraSelector#LENS_FACING_EXTERNAL
jako eksperymentalną funkcję wyboru aparatów zewnętrznych. (Icaf3e). - Dodaj
#setEffect()
doCameraController
, aby umożliwić dodawanie efektów do obrazu wyjściowego kamery. (I1d21f). - Dodaj metodę
invalidate()
do:SurfaceRequest
. Dostawca usługi Surface może powiadomić, że podana wcześniej powierzchnia straciła ważność. (Idc649). - Dodaj interfejs API
ImageProcessor
. Ten interfejs służy do wstrzykiwania efektów po przetwarzaniu do potokuImageCapture
. (I575c6) - Dodano interfejs API
Recorder.Builder.setAspectRatio()
, który można połączyć z zasadąQualitySelector
, aby zapewnić obsługę większej liczby rozdzielczości wideo. (I8a082). - Dodano funkcję
Recorder.Builder#setTargetVideoEncodingBitRate
, aby ustawić docelowe kodowanie wideoBitRate
iRecorder#getTargetVideoEncodingBitRate
w celu uzyskania docelowej szybkości transmisji bitów. (I5984D)
Poprawki błędów
- Naprawiono błąd
ImageCapture
, gdy brak lampy błyskowej i jest włączony tryb lampy błyskowej. (I9e8b4, b/263391112) - Rozwiązaliśmy problem z uszkodzeniem obrazu JPEG podczas zapisywania danych lokalizacji Exif na niektórych urządzeniach Samsung z Androidem 12. (Ib7086, b/263747161, b/263289024)
- podczas ustawiania pochodnej lub powiększenia przed kompetencjami zainicjowania kamery, np. wywołującego funkcję
CameraController#enableTorch
, oczekujące działanie jest zapisywane w pamięci podręcznej i przesłane po zażądaniu inicjalizacji. (I11e92, b/264157663)
Wersja 1.3.0-alfa02
7 grudnia 2022 r.
Usługa androidx.camera:camera-*:1.3.0-alpha02
została zwolniona. Wersja 1.3.0-alfa02 zawiera te zatwierdzenia.
Zmiany interfejsu API
- dodaj nowy interfejs API do stosowania efektu końcowego do danych wyjściowych podglądu. (Ic17d5).
- Nazwa
OutputOptions.getDurationLimit
została zmieniona naOutputOptions.getDurationLimitMillis
, aOutputOptions.setDurationLimit
naOutputOptions.setDurationLimitMillis
. (I91f0c) - Dodaj klasę
AudioConfig
, aby obsługiwać ustawienie związane z dźwiękiem podczas nagrywania filmu. Adnotacja@RequiresPermission
została przeniesiona z funkcjistartRecording
do funkcjiAudioConfig
, aby uniknąć zbędnych próśb o przyznanie uprawnień w sytuacjach, gdy dźwięk nie jest potrzebny. (I28755) - Usuń klasy metadanych,
OnVideoSavedCallback
,OutputFileOptions
iOutputFileResults
, które nie są już używane po zastosowaniu nowego interfejsu API przechwytywania filmów. (I38cd8). - Zastosuj nowy interfejs API przechwytywania filmów. Metody
getVideoCaptureTargetSize
isetVideoCaptureTargetSize
zostały odpowiednio zastąpione metodamigetVideoCaptureTargetQuality
orazsetVideoCaptureTargetQuality
, ponieważ metodasetTargetResolution
nie jest już obsługiwana. (I2a1d5).
Poprawki błędów
- Usunięto wycofany interfejs API
core.VideoCapture
. (I531e0) - Rozwiązaliśmy problem, który powodował, że wywołanie zwrotne
onError
nie było wywoływane w przypadku robienia zdjęć bez uprawnień do przechowywania danych (I936db, b/244807669) - Popraw jakość i niezawodność rozszerzeń aparatu. Rozszerzenia aparatu są wyłączone na urządzeniach Motorola korzystających z rozszerzeń aparatu w wersji 1.1.0 lub starszych z powodu problemów z obsługą efektu Bokeh, robieniem zdjęć i nie wznawianiem wyświetlania podglądu. (Id3ce3).
- Rozwiązaliśmy problem z awarią natywnej, gdy przycinanie filmów za pomocą interfejsu
ViewPort
było włączone na starszych urządzeniach. (I16b8a, b/251357665)
Wersja 1.3.0-alpha01
9 listopada 2022 r.
Usługa androidx.camera:camera-*:1.3.0-alpha01
została zwolniona. Wersja 1.3.0-alfa01 zawiera te zatwierdzenia.
Nowe funkcje
- Element
Camera-viewfinder
został oficjalnie opublikowany.Camera-viewfinder
udostępnia widżet podstawowego wizjera, który może wyświetlać obraz z kamery w przypadku Aparatu2. Przykład znajdziesz w przykładowym kodzie.
Zmiany interfejsu API
- Dodano
OutputOptions.setDurationLimit
, aby umożliwić ustawienie limitu czasu trwania filmu. Nagranie zostanie automatycznie sfinalizowane po przekroczeniu określonego limitu czasu. (I902a0). - Dodanie stanu błędu nagrania wideo:
AudioStats.AUDIO_STATE_SOURCE_ERROR
. Wysyłane, gdy konfiguracja źródła dźwięku się nie uda lub wystąpi błąd. (I37410)
Poprawki błędów
- Dodaj osobowość, aby umożliwić niektórym problematycznym urządzeniom ponowne przechwytywanie danych w przypadku niepowodzenia przechwytywania. (Id4795).
- Rozwiąż
PreviewView
problem dotyczący czarnego ekranu implementacjiSurfaceView
na stronieViewPager2
. W ramach poprawkiPreviewView
będzie ponownie używać zasobuSurfaceView
, jeśli wymagana rozdzielczość nie zostanie zmieniona. (Ib3f27). - Obsługuj przycinanie filmów (funkcja WYSIWYG), gdy używany jest interfejs
ViewPort
lubCameraController
API. (Ifbba8, b/201085351) - Po naprawieniu filmu nagranego przednim aparatem nie można nagrać filmu Huawei P40 Lite. (I87c57, b/250807400)
Wersja 1.2
Wersja 1.2.3
24 maja 2023 r.
Usługa androidx.camera:camera-*:1.2.3
została zwolniona. Wersja 1.2.3 zawiera te zatwierdzenia.
Poprawki błędów
- Rozwiązaliśmy problem, który powodował, że na niektórych urządzeniach aplikacja
VideoCapture
nie działała z przednim aparatem. Na przykład na Samsungu Galaxy S23 i Xiaomi 2107113SG. (Ibec7e, b/270656244)
Wersja 1.2.2
22 marca 2023 r.
Usługa androidx.camera:camera-*:1.2.2
została zwolniona. Wersja 1.2.2 zawiera te zatwierdzenia.
Poprawki błędów
- Rozwiązaliśmy problem, który powodował, że na niektórych urządzeniach, takich jak Pixel (I90aa2), rozszerzenia AparatuX nie działały prawidłowo po włączeniu ProGuard
Wersja 1.2.1
25 stycznia 2023 r.
Usługa androidx.camera:camera-*:1.2.1
została zwolniona. Wersja 1.2.1 zawiera te zatwierdzenia.
Poprawki błędów
- Rozwiąż problem z uszkodzeniem obrazu JPEG podczas zapisywania danych lokalizacji Exif na niektórych urządzeniach Samsung z Androidem 12. (b/263289024)
Wersja 1.2.0
7 grudnia 2022 r.
Usługa androidx.camera:camera-*:1.2.0
została zwolniona. Wersja 1.2.0 zawiera te zatwierdzenia.
Ważne zmiany od wersji 1.1.0
- Nowa biblioteka Camera-mlkit-vision. Z łatwością zintegruj aplikację CameraX z wieloma funkcjami MLKit, takimi jak skanowanie kodów kreskowych, wykrywanie twarzy czy tekst. Dodano
MLKitAnalyzer
jako nowe interfejsy API. - Nowy eksperymentalny interfejs API typu Zero-Lag API. Optymalizuje potok przechwytywania, aby skrócić czas oczekiwania przy zachowaniu dobrej jakości obrazu. Jeśli tryb przechwytywania jest ustawiony na
CAPTURE_MODE_ZERO_SHUTTER_LAG
, opóźnienie między naciśnięciem przycisku migawki a zrobieniem zdjęcia powinno być zminimalizowane w porównaniu z innymi trybami fotografowania. Na urządzeniach, które nie obsługująZERO_SHUTTER_LAG
, przełącza się naCAPTURE_MODE_MINIMIZE_LATENCY
. - Wycofaj
android.camera.core.VideoCapture
. - Dodano interfejs
setStreamUseCase()
jako publiczny interfejs APICamera2Interop
. - Dodano wymaganie dotyczące poziomu interfejsu API w przypadku aplikacji
setOutputImageRotationEnabled
. - Nazwa
ImageAnalysis.Analyzer#getTargetResolutionOverride()
została zmieniona naImageAnalysis.Analyzer#getDefaultTargetResolution()
. - Dodano interfejs API do ustawiania metadanych lokalizacji dla zapisanych filmów.
- Rozwiązaliśmy problem z niską liczbą klatek w przypadku użycia funkcji
VideoCapture
i podglądu o współczynniku proporcji 16:9 - Rozwiązaliśmy problem z czarnym podglądem, który pojawiał się po włączeniu rozszerzenia BOKEH na niektórych urządzeniach Samsung, gdy użytkownik przełączał aparaty.
- Usunięto rozciągnięty problem dotyczący telefonów Samsung J7 Prime (SM-G610M) i J7 (SM-J710MN)
Preview/VideoCapture
na urządzeniach z interfejsem API na poziomie 27. - Wyłączyliśmy obejście polegające na odwróceniu obszaru AF w poziomie w przypadku przednich aparatów na telefonie Samsung z Androidem T, ponieważ problem został rozwiązany
Wersja 1.2.0-rc01
24 października 2022 r.
Usługa androidx.camera:camera-*:1.2.0-rc01
została zwolniona. Wersja 1.2.0-rc01 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Dodaj interfejs
setStreamUseCase
API dlaOutputConfiguration
. Użytkownik może określić przypadek użycia strumienia w sesji strumieniowania, zastępując wewnętrzną logikę aparatuX, wybierając przypadek użycia strumienia w celu optymalizacji zgodnie z potrzebami. (IB1a95).
Poprawki błędów
- Usunięto rozciągnięty problem dotyczący telefonów Samsung J7 Prime (SM-G610M) i J7 (SM-J710MN)
Preview/VideoCapture
na urządzeniach z interfejsem API na poziomie 27. Rozdzielczość 1920 x 1080 powoduje rozciągnięcie obrazuPreview/VideoCapture
. Dodaliśmy obejście pozwalające nie wybierać rozdzielczości 1920 x 1080 w podglądzie lub wVideoCapture
, co pozwala uniknąć problemu z rozciągnięciem obrazu. (I0e04e) - Rozwiązaliśmy problem z niską liczbą klatek na sekundę podczas korzystania z
VideoCapture
i Podgląd w formacie 16:9 na niektórych urządzeniach Huawei. (If8c88, b/223643510) - Rozwiązaliśmy problem z otwarciem aparatu, gdy nie ustawiono pola
SurfaceProvider
podglądu. W ramach poprawki podgląd bez ustawionego elementuSurfaceProvider
nie będzie teraz konfigurowany w sesji nagrywania aparatem. (I99681).
Wersja 1.2.0-beta02
21 września 2022 r.
Usługa androidx.camera:camera-*:1.2.0-beta02
została zwolniona. Wersja 1.2.0-beta02 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Dodaj wymagany poziom interfejsu API dla usługi
setOutputImageRotationEnabled
(I26e3e, b/240993561)
Poprawki błędów
- Wyłączyliśmy obejście polegające na odwróceniu obszaru AF w poziomie w przypadku przednich aparatów na telefonie Samsung z Androidem T, ponieważ problem został rozwiązany. (I05f69)
- Rozwiązaliśmy problem z czarnym podglądem, który pojawiał się, gdy na niektórych urządzeniach Samsung włączone było rozszerzenie
BOKEH
, a użytkownik przełączał aparaty. (If6168).
Wersja 1.2.0-beta01
24 sierpnia 2022 r.
Usługa androidx.camera:camera-*:1.2.0-beta01
została zwolniona. Wersja 1.2.0-beta01 zawiera te zatwierdzenia.
Nowe funkcje
- Nowa biblioteka
camera-mlkit-vision
. Bez trudu zintegruj aplikację CameraX z wieloma funkcjami MLKit, takimi jak skanowanie kodów kreskowych, wykrywanie twarzy czy tekst. Przykładowy kod znajdziesz tutaj. - Nowy, eksperymentalny interfejs API typu Zero-lapseter Lag API. Optymalizuje potok przechwytywania, aby skrócić czas oczekiwania przy zachowaniu dobrej jakości obrazu. W przypadku ustawienia CAPTURE_MODE_ZERO_SHUTTER_LAG czas oczekiwania między kliknięciem przycisku migawki a zrobieniem zdjęcia powinien być zminimalizowany w porównaniu z innymi trybami robienia zdjęcia. Na urządzeniach, które nie obsługują ZERO_SHUTTER_LAG, zmieni się ustawienie CAPTURE_MODE_MINIMIZE_LATENCY.
- Przypisano
ImageAnalysis.Analyzer
iMLKitAnalyzer
jako oficjalne interfejsy API. - Ujawniony interfejs API do ustawiania metadanych lokalizacji dla zapisanego filmu.
- Zmień nazwę
ImageAnalysis.Analyzer#getTargetResolutionOverride()
naImageAnalysis.Analyzer#getDefaultTargetResolution()
.
Poprawki błędów
- Usunięto problem z robieniem zdjęć w formacie Alps k61v1_basic_ref. Przechwycone obrazy JPEG z HAL mają nieprawidłowe metadane Exif. Metadane Exif nie zawierają tagu 0xffd9 lub 0xffda, który sprawiłby, że usługa
ExifInterface
prawidłowo przeanalizowała atrybuty. Aby obejść ten problem, przechwycono zdjęcia w formacie YUV, a następnie skompresuj je do formatu JPEG. (I45abb)
Wersja 1.2.0-alfa04
27 lipca 2022 roku
Usługa androidx.camera:camera-*:1.2.0-alpha04
została zwolniona. Wersja 1.2.0-alfa04 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Zmień nazwę
ImageAnalysis.Analyzer#getTargetResolutionOverride()
naImageAnalysis.Analyzer#getDefaultTargetResolution()
. Działanie zostanie też zmienione tak, że wartość zwrócona przez tę metodę może zostać zastąpiona wartościąImageAnalysis#setTargetResolution()
. (If1d36). - Ujawniony interfejs API do ustawiania metadanych lokalizacji dla zapisanego filmu. Obiekt
android.location.Location
można ustawić za pomocą nowego interfejsu APIandroidx.camera.video.OutputOptions.Builder.setLocation(Location)
. (I313a0, b/204197544)
Poprawki błędów
- Rozwiąż problem, aby zrobić zdjęcie bez powiązania podglądu (Ie70b6, b/235119898)
- Rozwiązaliśmy problem, który powodował awarię
Recorder
, która występowała podczas próby nagrywania, gdy źródło dźwięku jest niedostępne. (I9f652)
Wersja 1.2.0-alfa03
29 czerwca 2022 r.
Usługa androidx.camera:camera-*:1.2.0-alpha03
została zwolniona. Wersja 1.2.0-alfa03 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Usunięto adnotację eksperymentalną do tagów
ImageAnalysis.Analyzer
iMLKitAnalyzer
. (I0ff22)
Poprawki błędów
- Dodano domyślny czas oczekiwania automatycznego ostrości wynoszący 5000 ms. Powoduje on dodanie wartości
isFocusSuccessful
fałsz, jeśli zdarzenieFocusMeteringAction
nie jest anulowane, a część AF nie zmienia czasu trwania. (Ibc2e3). - Rozwiąż problem z robieniem zdjęcia bez powiązania podglądu (I1d3a2, b/235119898)
- Włączono zaawansowaną implementację ekspandera i zaktualizowaliśmy interfejs obsługi rozszerzeń do wersji 1.2 (I92256) AparatuX.
Wersja 1.2.0-alfa02
1 czerwca 2022 r.
Usługa androidx.camera:camera-*:1.2.0-alpha02
została zwolniona. Wersja 1.2.0-alfa02 zawiera te zatwierdzenia.
Nowe funkcje
- Udostępnij interfejs CameraX Zero-Snapter Lag API w ramach eksperymentu.
Zmiany interfejsu API
- Dodaj nowy tryb przechwytywania
CAPTURE_MODE_ZERO_SHUTTER_LAG
w usłudzeImageCapture
i dodajisZslSupported
wCameraInfo
, aby przesłać zapytanie o możliwości urządzenia. TrybCAPTURE_MODE_ZERO_SHUTTER_LAG
ma na celu minimalny czas oczekiwania na natychmiastowe przechwytywanie. Implementacja ta opiera się na buforze pierścieniowym, który zapisuje pośrednie wyniki przechwytywania w celu późniejszego przetworzenia, gdy użytkownik naciśnie przycisk w celu zrobienia zdjęcia. Jeśli funkcja {@link VideoCapture} jest powiązana lub tryb lampy błyskowej nie jest WYŁĄCZONY albo rozszerzenie OEM jest włączone, ten tryb zostanie wyłączony automatycznie. (I9ae74). - Dodaj metodę
ImageAnalysis.getBackgroundExecutor()
(Icc945)
Poprawki błędów
- Naprawiono metodę TakePicture w przypadku zgłoszonego urządzenia
ImageCapture
. (Ib5eb5, b/228272227) - Naprawiono błąd, przez który obiekt
AssertionError
nie był obsługiwany podczas pobierania cechyCONTROL_ZOOM_RATIO_RANGE
.(/Ia248a, b/231701345)
Wersja 1.2.0-alpha01
18 maja 2022 r.
Usługa androidx.camera:camera-*:1.2.0-alpha01
została zwolniona. Wersja 1.2.0-alfa01 zawiera te zatwierdzenia.
Nowe funkcje
- Wprowadzenie nowej biblioteki Camera-mlkit-vision
Poprawki błędów
- Rozwiązany problem:
QualitySelector
nie nagrywa filmu UHD, gdy włączona jest strategia zastępcza. Ten problem występuje, gdy zasadaVideoCapture
jest powiązana z zasadąImageCapture
i wyświetla podgląd na urządzeniu z aparatem o pełnym lub wyższym poziomie sprzętowym. Strategia zastępczaQualitySelector
powoduje, że elementVideoCapture
nieprawidłowo uzyskuje rozdzielczość FHD. Rozdzielczość UHD jest rzeczywiście obsługiwana w tym połączeniu przypadku użycia i należy ją zastosować. (I0e788, b/230651237) - Naprawiono
NullPointerException
(ImageCapture.takePicture()
). (I92366, b/230454568, b/229766155) - Popraw działanie wstrzymywania asynchronicznego w
androidx.camera.video.Recorder
(Ia8ce8)
Kamera-Aparat2, Rdzeń aparatu, Cykl życia kamery i Camera-Video w wersji 1.1.0
Wersja 1.1.0
29 czerwca 2022 r.
Usługa androidx.camera:camera-*:1.1.0
została zwolniona. Wersja 1.1.0 zawiera te zatwierdzenia.
Ważne zmiany wprowadzone od wersji 1.0.0
- Landed View, Extension i Video Capture jako pierwsza wersja RC. Od wersji 1.1.0–beta01 wszystkie biblioteki aparatu CameraX będą miały taki sam numer wersji. Ułatwi to deweloperom śledzenie wersji i zmniejszy złożoność macierzy zgodności dużych wersji.
- Wprowadzenie nowych publicznych interfejsów API i funkcji, w tym:
- Dodaj oficjalną bibliotekę wideo aparatu, aby ułatwić sobie nagrywanie wideo.
- Zdolność konwersji YUV na RGB (
ImageAnalysis.Builder.setOutputImageRotationEnabled
isetOutputImageFormat
) - Obsługują tryb wielu okien, umożliwiając aplikacjom CameraX wznawianie działania kamery, gdy kamera zostanie przerwana przez inną aplikację i wróciła ostrość.
- Po rozwiązaniu problemów z podglądem aparat CameraX działa dobrze na urządzeniach składanych.
- Dodano interfejs API
CameraState
, który będzie widoczny przez CameraInfo. - Dodano interfejs API
ProcessCameraProvider.getAvailableCameraInfos()
, aby bezpośrednio pobierać informacje o dostępnych aparatach - Wyjściowy format JPEG dla
ImageCapture#OnImageCapturedCallback
, gdy włączone są rozszerzenia. - W
CameraInfo
dodano interfejs APIisFocusMeteringSupported
, który umożliwia aplikacjom sprawdzanie, czy danyFocusMeteringAction
jest obsługiwany przez bieżącą kamerę. - Udostępniono interfejs API
getResolutionInfo
, aby uzyskać informacje o rozdzielczości na potrzeby wersji testowej,ImageCapture
iImageAnalysis
. - Dodaliśmy nowy interfejs API
ImageCapture.Builder#setJpegQuality
, aby umożliwić zmianę wyjściowej jakości kompresji JPEG podczas robienia zdjęć. - Dodano
CameraSelector#filter
do publicznego interfejsu API, aby filtrować listę wartościCameraInfos
na podstawieCameraSelector
. - Dodano
Camera2CameraControl.clearCaptureRequestOptions
do czyszczenia dotychczasowych opcji żądania zapisu. - Dodaliśmy eksperymentalny interfejs API do używania interfejsu
CameraController
z zewnętrznymi bibliotekami przetwarzania obrazu. np. MLKit, - Dodano eksperymentalny interfejs API
CameraInfo#getCameraSelector()
, który zwraca unikalny identyfikatorCameraSelector
przypisany do jego kamery - Promowanie kilku eksperymentalnych interfejsów API na potrzeby oficjalnych publicznych interfejsów API
- Zastąpiono adnotację
@Experimental
o nazwie@RequiresOptIn
dla eksperymentalnych interfejsów API. Do wywoływania eksperymentalnych interfejsów API użyj androidx.annotation.OptIn zamiast wycofanego androidx.annotation.experimental.UseExperimental. - Oznaczono te eksperymentalne interfejsy API jako oficjalne interfejsy API:
CameraXConfig.Builder#setAvailableCamerasLimiter()
,CameraXConfig.Builder#setMinimumLoggingLevel()
,CameraXconfig.Builder#setSchedulerHandler()
,CameraXConfig#getAvailableCamerasLimiter()
,CameraXConfig#getMinimumLoggingLevel()
,CameraXConfig#getCameraExecutor()
,CameraXConfig#getSchedulerHandler()
, @ExperimentalCameraFilter
interfejsy API- eksperymentalnych interfejsów API kompensacji ekspozycji.
- Promujemy eksperymentalny interfejs API
UseCaseGroup
do obsługi rdzenia aparatu, cyklu życia kamery i nagrywania filmów z kamery. DodanoViewPort#getLayoutDirection
,ViewPort.Builder#setLayoutDirection
iViewPort.Builder#setScaleType
do dostosowywania widocznego obszaru. ExperimentalUseCaseGroupLifecycle
promowano w ramach oficjalnych, publicznych interfejsów API.- Zmiany w istniejących interfejsach API
Renamed MediaStoreOutputOptions.getCollection
, byMediaStoreOutputOptions.getCollectionUri
.- Nazwa „
ActiveRecording
” została zmieniona na „Nagrywanie” aby zmniejszyć szczegółowość. - Zmieniono interfejs API
QualitySelector
Creator API na interfejs API oparty na liście
Poprawki błędów
- Rozwiązaliśmy problem (
YuvToJpegProcessor
):EOFException
, gdy włączony był tryb rozszerzenia i ustawiono trybImageCapture#CAPTURE_MODE_MAX_QUALITY
. - Nie udało się skonfigurować poprawionego kodeka z powodu zamykania nagrywania wideo
- Poprawiono współczynnik proporcji rozciągniętego podglądu/filmu podczas nagrywania w jakości FHD
- Rozwiązanie problemu z brakiem synchronizacji dźwięku/obrazu po wstrzymywaniu i wznawianiu działania na niektórych urządzeniach
- Rozwiązaliśmy problem, który powodował, że lampa błyskowa była aktywowana podczas dotknięcia ostrości (
startFocusAndMetering
), gdy lampa błyskowa jest w trybie automatycznym lub zawsze włączona w słabym oświetleniu.
Wersja 1.1.0-rc02
1 czerwca 2022 r.
Usługa androidx.camera:camera-*:1.1.0-rc02
została zwolniona. Wersja 1.1.0-rc02 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawiono
NullPointerException
(ImageCapture.takePicture()
). (I92366, b/230454568, b/229766155) - Naprawiono błąd, przez który obiekt
AssertionError
nie był obsługiwany podczas pobierania cechyCONTROL_ZOOM_RATIO_RANGE
. (Ia248a, b/231701345)
Wersja 1.1.0-rc01
11 maja 2022 roku
Usługa androidx.camera:camera-*:1.1.0-rc01
została zwolniona. Wersja 1.1.0-rc01 zawiera te zatwierdzenia.
Nowe funkcje
- Opublikuj pierwszą wersję RC dla obrazu z kamery, widoku z kamery i rozszerzenia kamery
Poprawki błędów
- Naprawiono problem, który powodował, że kodek wideo nie był wydawany, gdy powiązanie
VideoCapture<Recorder>
było niepowiązane, przez co kolejne użycieVideoCapture<Recorder>
nie było możliwe podczas nagrywania z użyciemMediaCodec.CodecException
, zwłaszcza na urządzeniach z interfejsem API 21-22. (IE7f68) - Poprawka zdjęć, które przedstawiają
CameraExtensionsActivity
, nie będą usuwane w aplikacjiImageCaptureTest
Wersja 1.1.0-beta03
6 kwietnia 2022 roku
Usługa androidx.camera:camera-*:1.1.0-beta03
została zwolniona. Wersja 1.1.0-beta03 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Konstruktor
CaptureRequestOptions
został ograniczony. (I261b6) - Dodaliśmy eksperymentalny interfejs API do używania interfejsu
CameraController
z zewnętrznymi bibliotekami przetwarzania obrazu. np. MLKit (I4ea71)
Poprawki błędów
- Rozwiązaliśmy problem, który powodował wyświetlanie się podglądu w
PreviewView
, gdy po obróceniu urządzeń w trybie wielu okien podgląd nie był uruchamiany ponownie. (I1ea36, b/223488673) - Rozwiąż problem z trybem wielu okien, który po zmianie ostrości z powrotem na aplikację nie powoduje wznowienia aparatu, gdy (1) inna aplikacja o wysokim priorytecie otwiera inny aparat (2) urządzenie to Samsung z Androidem 12. (I7e9f2).
- Obejście problemu w przypadku urządzeń, które ulegają awarii podczas sprawdzania dostępności pamięci flash. Te urządzenia nie będą miały latarki. (If26a3, b/216667482)
- Rozwiązanie problemu
AbstractMethodError
, który występował, gdy aplikacje korzystają z rozszerzeń i włączają ProGuard. (I7cbaf, b/222726805) - Wymuszaj wyłączenie trybu rozszerzenia bokeh na urządzeniu Motorola Razr 5G, co spowoduje problem z czarnym ekranem podglądu. (I35d49)
- Rozwiązaliśmy problem z brakiem synchronizacji dźwięku/obrazu po wstrzymaniu i wznowieniu działania niektórych urządzeń Samsung w wersji wcześniejszej niż API 29. (I64622, b/202798609, b/202798572)
- Usunięto problem z brakiem synchronizacji dźwięku/obrazu po wstrzymywaniu i wznawianiu odtwarzania w telefonie Sony G3125. (I2a1a5, b/202799148)
- Naprawiliśmy awarię, która powodowała wystąpienie błędu
InvalidConfigException
w Dyktafonie. Ta poprawka zapobiega tylko awariom aplikacji, ale nie rozwiązuje problemu z przyczyną, dla którego wystąpiłInvalidConfigException
. Jeśli nadal nie można skonfigurować urządzeniaRecorder
, po rozpoczęciu nagrywania aplikacje otrzymają wywołanie zwrotne o błędzie. (I89c29, b/213617227)
Treści tłumaczone przez użytkowników zewnętrznych
- Zaktualizowano :compose:ui:ui-test api (updateApi) w związku z migracją test-coroutines-lib (I3366d)
Wersja 1.1.0-beta02
23 lutego 2022 r.
Usługa androidx.camera:camera-*:1.1.0-beta02
została zwolniona. Wersja 1.1.0-beta02 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Dodaj możliwość określania fizycznego identyfikatora kamery przez Kamera2Interop. (I5aed8).
Poprawki błędów
- Usunięto problem z rozciągniętym podglądem w Oppo Find N (I7d004)
- Naprawiono zniekształcony podgląd w Galaxy J7 Prime. (I4C500)
- Aby znaleźć koder wideo, użyj zgodnej szybkości transmisji bitów. (D969052)
Wersja 1.1.0-beta01
26 stycznia 2022 r.
Usługa androidx.camera:camera-*:1.1.0-beta01
została zwolniona. Wersja 1.1.0-beta01 zawiera te zatwierdzenia.
Nowe funkcje
- Od wersji 1.1.0–beta01 wszystkie biblioteki aparatu CameraX będą miały taki sam numer wersji. Ułatwi to deweloperom śledzenie wersji i zmniejszy złożoność dużej macierzy zgodności wersji.
Zmiany interfejsu API
- Dodano
Camera2CameraControl.clearCaptureRequestOptions
dla usuwając opcje istniejącego żądania przechwytywania. (Ifa07d).
Poprawki błędów
- Poprawiliśmy awarię, która występowała podczas nagrywania filmów na niektórych urządzeniach z systemem starszym niż Android O(API 26). (I88fdf, b/212328261)
- Rozwiązaliśmy problem z nieprawidłowym regionem AF, który występował podczas korzystania z trybu
cameraControl#startFocusAndMetering()
w przypadku przedniego aparatu obiektywu w urządzeniach Samsung (Ifbf59, b/210548792). - Używanie latarki jako lampy błyskowej w Pixelu 3a oraz Pixelu 3a XL, aby zwiększyć szybkość i jakość zdjęć robionych w ciemności (Ib12b6, b/211474332)
- Włączono aplikacje umożliwiające wznawianie działania kamery po jej włączeniu została przerwana przez inną aplikację o wyższym priorytecie w tryb wielu okien, a zaznaczenie wróci do aplikacji. Z powodu błędu platformy może minąć od 1 sekundy do 10 sekund lub dłużej) pomiędzy zmianą ostrości a ponownym uruchomieniem aparatu. (I4D092)
Wersja 1.1.0-alfa12
15 grudnia 2021 roku
Usługa androidx.camera:camera-*:1.1.0-alpha12
została zwolniona. Wersja 1.1.0-alfa12 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Z klas/interfejsów wewnętrznych usunięto niepotrzebne adnotacje
@RequiresApi(21)
. (I8e286, b/204917951) - Stałe jakości i stałe strategii kreacji zastępczej
QualitySelector
zostały zmienione, by były reprezentowane przez obiekty klas. Na przykład poleQualitySelector.QUALITY_HD
zostało zmienione naQuality.HD
, a poleQualitySelector.FALLBACK_STRATEGY_LOWER
zostaje zmienione na instancję zwracaną przezFallbackStrategy.lowerQualityOrHigherThan(Quality)
. Interfejs API użyty do utworzeniaQualitySelector
został zmieniony na interfejs API oparty na liście. Nowy interfejs APIQualitySelector.fromOrderedList(List<Quality>)
będzie odwoływać się do kolejności elementów na liście jakości danych wejściowych, a nie do kolejności utworzonej przez zasadęQualitySelector.Procedure
.QualitySelector.Procedure
zajęcia zostało usunięte. (I43343) - Usunięto znacznik
PendingRecording.withEventListener()
. Detektor zdarzeń należy teraz przekazać doPendingRecording.start()
. To wymaganie dotyczące detektora zdarzeń ma zachęcać do obsługi błędów asynchronicznych zgłaszanych w zdarzeniuVideoRecordEvent.Finalize
. (I1e71d). - Aby ograniczyć szczegółowość, zmieniliśmy nazwę
ActiveRecording
naRecording
. (I77CEb)
Poprawki błędów
- Rozwiązaliśmy problem, który powodował, że zdjęcia robione w trybie
FLASH_AUTO
były niedoświetlone w ciemnych warunkach na Pixelu 3a i Pixelu 3a XL (I13f19, b/205373142) - Podczas określania podglądu zawsze używaj najnowszego rozmiaru interfejsu
Resolution
. (I4a694). - Odfiltrowane kamery, w których nie ma funkcji
REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE
. Aparaty zREQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE
mają minimalny zestaw funkcji obsługiwanych przez każde urządzenie z kamerą. Aparat bez funkcjiREQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE
może być kamerą obsługującą specjalne funkcje, ale nie obsługuje standardowych kolorów.CameraX
nie może obsługiwać przypadków użyciaPreview
,ImageCapture
,ImageAnalysis
aniVideoCapture
dla tych kamer. Dlatego należy odfiltrować te kamery, by zapobiec nieprawidłowemu użyciu. (Ib8cda), CameraSelector#filter
nie zgłasza jużIllegalArgumentException
, gdy zbiór wyników jest pusty. (I27804)- Inteligentna heurystyka jest teraz używana do wybierania ustawień kodera na podstawie profili określonych przez OEM. (Jef00)
- Po rozpoczęciu nagrywania filmu UHD na Pixelu 1 podgląd stały będzie zawierać przeplotowe linie kolorystyczne. (I833c6, b/205340278)
Wersja 1.1.0-alfa11
17 listopada 2021 r.
Usługa androidx.camera:camera-*:1.1.0-alpha11
została zwolniona. Wersja 1.1.0-alfa11 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Do publicznego interfejsu API dodano CameraSelector#filter, aby filtrować listę obiektów CameraInfos na podstawie selektora CameraSelector. (I105d0)
Dodano interfejs API setOutputImageRotationEnabled dla konfiguracji ImageAnalysis. Użytkownik może włączyć rotację bufora obrazu YUV/RGB. Stopień obrotu to obrót względny obliczany na podstawie obrotu czujnika i obrotu celu w celu umieszczenia obrazu z góry.
Dodano interfejs API setOutputImageRotationEnabled dla konfiguracji ImageAnalysis. Użytkownik może włączyć rotację bufora obrazu YUV/RGB. Stopień obrotu to obrót względny obliczany na podstawie obrotu czujnika i obrotu celu w celu umieszczenia obrazu z góry.
Dodaj interfejs API
getSensorToBufferTransformMatrix
w ImageInfo. Zwracana macierz to mapowanie ze współrzędnych czujnika na współrzędne bufora, które wynosi od wartościCameraCharacteristics.SENSOR_INFO_ACTIVE_ARRAY_SIZE
do(0, 0, image.getWidth, image.getHeight)
. Tej macierzy można użyć do mapowania współrzędnych z jednego elementu {UseCase} na inne. Dotyczy to na przykład mapowania współrzędnych twarzy wykrytej za pomocą analizy ImageAnalysis na podgląd. (I9ff1e).Dodano nowy interfejs API ImageCapture.Builder#setJpegQuality umożliwiający zmianę wyjściowej jakości kompresji JPEG podczas robienia zdjęcia. (I8dcf4).
Nazwa MediaStoreOutputOptions.getCollection została zmieniona na MediaStoreOutputOptions.getCollectionUri. (I16639).
Poprawki błędów
- Rozwiązaliśmy problem z aktywowaniem lampy błyskowej w trakcie funkcja dotknij, aby ostrość (startFocusAndMetering), gdy lampa błyskowa jest w trybie automatycznym lub przy słabym oświetleniu. (Id4c11).
- Wyłączono HDR+ na Pixelu 2 XL / Pixelu 3 XL Tryb MINIMIZE_LATENCY, aby zmniejszyć opóźnienie. (Ib6270, b/203505523)
Treści tłumaczone przez użytkowników zewnętrznych
Wersja 1.1.0-alfa10
13 października 2021 r.
Usługa androidx.camera:camera-*:1.1.0-alpha10
została zwolniona. Wersja 1.1.0-alfa10 zawiera te zatwierdzenia.
Nowe funkcje
- Oficjalnie opublikowano wersję
androidx.camera:camera-video:1.1.0-alpha10
jako pierwszą wersję alfa. W kolejnych wersjach wprowadzimy kilka znanych problemów.
Zmiany interfejsu API
- Do wszystkich klas CameraX dodano adnotację
@RequiresApi(21)
i usunięto minSdkVersion z pliku AndroidManifest.xml. Dzięki temu rdzenia kamery, którą można łatwo zintegrować z aplikacjami Parametr minSdkVersion jest mniejszy niż 21, ale chcesz warunkowo używać ścieżek kodu które korzystają z interfejsu API w wersji 21 lub nowszej. Dla każdej aplikacji, w której minSdkVersion w wersji 21 lub nowszej, ta zmiana nie wymaga żadnych działań. (Ie7f2e, b/200599470)
Poprawki błędów
- Zgłoś wyjątek Zdarzenie inicjujące, aby aplikacja mogła bezproblemowo obsłużyć błąd AssertionError, który wystąpił podczas tworzenia cech kamery. (Ibec79).
Wersja 1.1.0-alpha09
29 września 2021 r.
androidx.camera:camera-camera2:1.1.0-alpha09
, androidx.camera:camera-core:1.1.0-alpha09
i androidx.camera:camera-lifecycle:1.1.0-alpha09
zostały udostępnione. Wersja 1.1.0-alfa09 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Adnotacja ExperimentalUseCaseGroup została usunięta, ponieważ interfejsy API nie są już eksperymentalne. (I01ef5).
Poprawki błędów
- Rozwiązywanie problemów z zamazaniem zrobionych zdjęć
w trybie
MAXIMIZE_QUALITY
. (I173a9, b/193823892) - Rozwiązaliśmy problem z telefonem Samsung Galaxy J5, który zawieszał się po zrobieniu zdjęć z włączoną lampą błyskową/automatycznym w ciemnym otoczeniu (I3aab9)
- Jeśli w funkcji ImageCapture konieczne jest przycięcie, należy skompresować przycięty obraz wyjściowy do określonego poziomu jakości JPEG, zgodnie z ustawionym trybem przechwytywania. Jeśli tryb przechwytywania to
CAPTURE_MODE_MINIMIZE_LATENCY
, jakość kompresji JPEG będzie wynosić 95. Jeśli tryb przechwytywania toCAPTURE_MODE_MAXIMIZE_QUALITY
, jakość kompresji JPEG będzie mieć wartość 100. (Ieb37c, b/142856426)
Wersja 1.1.0-alpha08
18 sierpnia 2021 r.
androidx.camera:camera-camera2:1.1.0-alpha08
, androidx.camera:camera-core:1.1.0-alpha08
i androidx.camera:camera-lifecycle:1.1.0-alpha08
zostały udostępnione. Wersja 1.1.0-alfa08 zawiera te zatwierdzenia.
Nowe funkcje
- Dodano interfejs setOutputImageFormat API na potrzeby konfiguracji analizy obrazów. Użytkownik można wybrać ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888 lub Analiza_obrazu.OUTPUT_IMAGE_FORMAT_RGBA_8888. Domyślnie Zostanie wybrana analiza ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888. (I7902D)
Zmiany interfejsu API
- Adnotacja ExperimentalUseCaseGroupLifecycle została usunięta, ponieważ interfejsy API nie są już eksperymentalne. (I17b85)
Poprawki błędów
- Ekran z poprawnym podglądem na telefonie Huawei P20 Lite jest zbyt jasny. Ten problem występuje tylko wtedy, gdy określone specjalne rozdzielczości podglądu są używane razem z dużą wartością powiększenia. (Idefce, b/192129158)
- Rozwiązaliśmy problem, który powodował, że na niektórych urządzeniach nie działa lampa błyskowa w trybie FLASH_MODE_ON, a następnie robić zdjęcia. (Ieb49b)
- Rozwiązaliśmy problem polegający na tym, że podczas robienia zdjęć podgląd na jakiś czas się zatrzymuje, jeśli powiązane funkcje Przechwytywanie obrazu, Przechwytywanie obrazu i Podgląd są powiązane. (I56197, b/193864120)
- Pozwala aplikacji ImageAnalysis na wybranie rozdzielczości większej niż 1080p. Urządzenie powyżej poziomu LIMITED może obsługiwać rozdzielczość rozmiaru RECORD na potrzeby analizy ImageAnalysis, gdy jest ono powiązane z funkcjami Podgląd i Przechwytywanie obrazów. Różnica polega na tym, że wybrana rozdzielczość przechwytywanego obrazu musi być ustawiona jako rozdzielczość w formacie RECORD. Aby wybrać rozdzielczość rozmiaru RECORD na potrzeby analizy ImageAnalysis, w rejestrze obrazów i analizie należy ustawić rozdzielczość docelowego rozmiaru rekordu. Wskazuje to, że aplikacja wyraźnie rozumie zaistniałą sytuację i preferuje analizę obrazu w większej rozdzielczości niż przechwytywanie obrazów z MAKSYMALNĄ rozdzielczością. Definicje Rekordów i maksymalnych rozmiarów znajdziesz na stronie https://developer.android.com/reference/android/hardware/camera2/CameraDevice#regular-capture. Rozmiar RECORD odnosi się do maksymalnej obsługiwanej rozdzielczości nagrywania na urządzeniu określonej przez CamcorderProfile. MAKSYMALNY rozmiar oznacza maksymalną rozdzielczość wyjściową kamery urządzenia dla danego formatu lub miejsca docelowego z parametru StreamConfigurationMap.getOutputSizes(int). (I1ee97, b/192911449)
- Dodaj informacje Exif do zrobionego zdjęcia. (I01ff0, b/193342619)
- Jeśli miejsce zapisu to Plik, w funkcji ImageCapture zwracaj identyfikator URI zapisanego obrazu. (Ib5b49, b/149241379)
- Rozwiązaliśmy problem, który powodował, że zdjęcia z lampą błyskową były ciemne na wielu urządzeniach. (I4e510)
Wersja 1.1.0-alpha07
21 lipca 2021 r.
androidx.camera:camera-camera2:1.1.0-alpha07
, androidx.camera:camera-core:1.1.0-alpha07
i androidx.camera:camera-lifecycle:1.1.0-alpha07
zostały udostępnione. Wersja 1.1.0-alfa07 zawiera te zatwierdzenia.
Poprawki błędów
- Usunięto problem z aparatem Samsung Galaxy Note 5 zablokowanie po zrobieniu zdjęć z włączoną lampą błyskową/automatyczne w ciemności środowisko (If6871)
- Rozwiązaliśmy
YuvToJpegProcessor
wyjątek EOFWyjątek, który występował, gdy włączony jest tryb rozszerzenia i ustawiony trybImageCapture#CAPTURE_MODE_MAX_QUALITY
. (I538bd, b/192017012)
Wersja 1.1.0-alpha06
30 czerwca 2021 r.
androidx.camera:camera-camera2:1.1.0-alpha06
, androidx.camera:camera-core:1.1.0-alpha06
i androidx.camera:camera-lifecycle:1.1.0-alpha06
zostały udostępnione. Wersja 1.1.0-alfa06 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Promuj eksperymentalne interfejsy API wynagrodzenia za ekspozycję dla rdzenie kamery (I08ee8)
- Dodano interfejs API isFocusMeteringSupported w aplikacji CameraInfo, umożliwia aplikacjom sprawdzanie, czy dane FocusMeteringAction obsługiwane przez ten aparat. (Ib45ae, b/188606490)
- Użyto interfejsu getResolutionInfo API w celu udostępnienia informacji o rozdzielczości na potrzeby funkcji Preview, ImageCapture i ImageAnalysis. (I2b613, b/188600718)
- Oznaczyliśmy następujące eksperymentalne interfejsy API jako oficjalne interfejsy API: CameraXConfig.Builder#setAvailableCamerasLimiter(), CameraXConfig.Builder#setMinimumLoggingLevel(), CameraXconfig.Builder#setSchedulerHandler(), CameraXConfig#getAvailableCamerasLimiter(), CameraXConfig#getMinimumLoggingLevel(), CameraXConfig#getCameraExecutor(), CameraXConfig#getSchedulerHandler(). (I2ade2).
- Przedstawiono interfejs CameraProvider w celu zapewnienia dostępu do zestawu kamer. (I1a7b1).
- Promuj eksperymentalny interfejs UseCaseGroup API na potrzeby obrazu podstawowego, cyklu życia kamery i nagrywania filmów z kamery. Dodano
ViewPort#getLayoutDirection
,ViewPort.Builder#setLayoutDirection
iViewPort.Builder#setScaleType
do dostosowywania widocznego obszaru. (I7cee8).
Wersja 1.1.0-alpha05
2 czerwca 2021 r.
androidx.camera:camera-camera2:1.1.0-alpha05
, androidx.camera:camera-core:1.1.0-alpha05
i androidx.camera:camera-lifecycle:1.1.0-alpha05
zostały udostępnione. Wersja 1.1.0-alfa05 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Usunięto
Camera2CameraFilter
zajęcia. Zasugeruj wybór aparatu według CameraFilter i pobieraj cechy kamery Camera2, w razie potrzeby informacje za pomocą Camera2CameraInfo. (IB887C) - Interfejsy API (
ExperimentalCameraFilter
) nie są już w fazie eksperymentalnej i przekształcić je w formalne interfejsy API. Można ich używać bez adnotacji. (I4Bc94) - Dodano interfejs API stanu kamery, który jest dostępny przez
CameraInfo#getCameraState()
. (IA86b4). - Dodano eksperymentalny interfejs API
CameraInfo#getCameraSelector()
, który zwraca obiekt CameraSelector unikalny dla aparatu (I77f9f).
Poprawki błędów
- Naprawiono błąd zwracany przez ListenableFuture w Na niektórych urządzeniach z Androidem funkcje setZoomRatio i setLinearZoom nie mogą wykonać działania 11 urządzeń (I716d7)
- Przyspiesz przełączanie aparatu, aby zmniejszyć częstotliwość występowania błędów (I34c99)
- Zastąpiono parametr ExperimentalUseCaseGroupLifecycle na ExperimentalUseCaseGroup. (I3b2ef, b/159033688)
Wersja 1.1.0-alfa04
21 kwietnia 2021 r.
androidx.camera:camera-camera2:1.1.0-alpha04
, androidx.camera:camera-core:1.1.0-alpha04
i androidx.camera:camera-lifecycle:1.1.0-alpha04
zostały udostępnione. Wersja 1.1.0-alfa04 zawiera te zatwierdzenia.
Poprawki błędów
- Rozwiązaliśmy wyciek pamięci spowodowany równoczesnym dostępem do tej samej kolekcji przez wiele wątków. Wyciek pamięci może spowodować, że aktywność lub fragment będą przechowywane w instancji w wersji testowej. (I7b4b8)
- Zastąpiono adnotację
@Experimental
o nazwie@RequiresOptIn
dla eksperymentalnych interfejsów API. Do wywoływania eksperymentalnych interfejsów API używaj interfejsuandroidx.annotation.OptIn
zamiast wycofanegoandroidx.annotation.experimental.UseExperimental
. (Iff226). - Na telefonie Samsung Galaxy S7 poprawiono robienie wyblakłych obrazów z włączoną/automatyczną lampą błyskową. (I30001).
- Dodano interfejs API CameraState, który będzie udostępniany przez CameraInfo. (I75392)
Wersja 1.1.0-alfa03
24 marca 2021 r.
androidx.camera:camera-camera2:1.1.0-alpha03
, androidx.camera:camera-core:1.1.0-alpha03
i androidx.camera:camera-lifecycle:1.1.0-alpha03
zostały udostępnione. Wersja 1.1.0-alfa03 zawiera te zatwierdzenia.
Poprawki błędów
- Wyjściowy format JPEG dla
ImageCapture#OnImageCapturedCallback
, gdy włączone są tryby rozszerzeń. (I0d7b1) - Usunięto błąd inicjowania na urządzeniach UMIDIGI BISON (I57d9e, b/180818665).
- Poprawiono rozciągnięty podgląd Samsung A3 w PodglądView. (IAcb30, b/180121821)
Wersja 1.1.0-alfa02
24 lutego 2021 r.
androidx.camera:camera-camera2:1.1.0-alpha02
, androidx.camera:camera-core:1.1.0-alpha02
i androidx.camera:camera-lifecycle:1.1.0-alpha02
zostały udostępnione. Wersja 1.1.0-alfa02 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Dodano interfejs API
ProcessCameraProvider.getAvailableCameraInfos()
, aby bezpośrednio pobierać informacje o dostępnych aparatach, czyli wszystkich aparatach urządzenia lub tych wybranych przez zasadęCameraSelector
podaną w zasadzieCameraXConfig.Builder.setAvailableCamerasLimiter(CameraSelector)
. (IEAC08).
Poprawki błędów
- Obecnie CameraX próbuje wymusić otwarcie kamery przy pierwszej próbie, co może spowodować, że aplikacja CameraX wykradzi ją innym klientom aparatów, gdy jej aplikacja ma wyższy priorytet. (IAb069, b/175820568)
- Usunięto błąd testu Robolectric, Parametr setAvailableCamerasLimiter jest używany w CameraXConfig. (Ice307).
- Ta zmiana wyłapuje wyjątek, gdy kolejka obrazów zostanie wyczerpana w ImageAnalysis. Dzięki temu zamiast awarii, możesz zauważyć, że inne przypadki użycia zawieszają się lub działają wolno. np. zablokowany/powolny podgląd. (IC12da, b/175851631)
- Poprawiono detektor RozszerzeniaErrorListener, który zgłaszał błędy, gdy powiązany był tylko podgląd lub przechwytywanie obrazów. (I5ae39).
- Rozwiązano problem obniżenia wydajności przechwytywania obrazów przez usunięcie weryfikacji lokalizacji zapisanego obrazu przed jego zrobieniem. Jeśli po wprowadzeniu tej zmiany miejsce docelowe zapisu będzie nieprawidłowe, odpowiedź o błędzie pojawi się później, ponieważ po zrobieniu zdjęcia zostanie podjęta próba zapisania zdjęcia. (I1fd4e, b/177061560)
- Poprawiono regresję wydajności przechwytywania obrazów za pomocą opcji „Plik”. wpisz OutputFileOptions. (I5164a, b/177061560)
- Zaktualizowaliśmy dokumentację, aby odmówić używania
ProcessCameraProvider.configureInstance(...)
od kod biblioteczny. (IB8a9f)
Wersja 1.1.0-alpha01
27 stycznia 2021 r.
androidx.camera:camera-camera2:1.1.0-alpha01
, androidx.camera:camera-core:1.1.0-alpha01
i androidx.camera:camera-lifecycle:1.1.0-alpha01
zostały udostępnione. Wersja 1.1.0-alfa01 zawiera te zatwierdzenia.
Poprawki błędów
- Obejście problemu z przerywanymi uszkodzonymi danymi obrazów w plikach JPEG za pomocą tylnego aparatu SM-G930T. (I52001, b/159831206)
- Rozwiązaliśmy
IllegalArgumentException
problem, który występował, gdy wszystkie obsługiwane rozmiary podglądu są mniejsze niż 640 x 480, a rozmiar wyświetlacza jest większy niż 640 x 480. (I2a63c, b/150506192) - Zasoby w bibliotekach bez bezpośrednio zadeklarowanych zasobów publicznych (np. przez public.xml) są teraz domyślnie prywatne. (Ia1dcc, b/170882230)
Kamera-Kamera2, rdzeń kamery i Cykl życia aplikacji Aparat w wersji 1.0.2
Wersja 1.0.2
29 września 2021 r.
androidx.camera:camera-camera2:1.0.2
, androidx.camera:camera-core:1.0.2
i androidx.camera:camera-lifecycle:1.0.2
zostały udostępnione. Wersja 1.0.2 zawiera te zatwierdzenia.
Poprawki błędów
- Rozwiązywanie problemów z zamazaniem zrobionych zdjęć
w trybie
MAXIMIZE_QUALITY
. (I173a9, b/193823892) - Rozwiązaliśmy problem, który powodował, że zdjęcie z lampą błyskową było ciemne na wielu urządzeniach. (I4e510)
Kamera-Kamera2, rdzeń kamery i Cykl życia aplikacji Aparat w wersji 1.0.1
Wersja 1.0.1
21 lipca 2021 r.
androidx.camera:camera-camera2:1.0.1
, androidx.camera:camera-core:1.0.1
i androidx.camera:camera-lifecycle:1.0.1
zostały udostępnione. Wersja 1.0.1 zawiera te zatwierdzenia.
Poprawki błędów
Rozwiązaliśmy problem, który powodował zwrot elementu
ListenableFuture
w Nie można wykonać działańsetZoomRatio
isetLinearZoom
na niektórych urządzeniach z Androidem 11 urządzeń (I716d7)Rozwiązaliśmy problem, który na niektórych urządzeniach zawieszał się przy zamykaniu kamery i wyświetlał czarny podgląd. (I34c99)
Kamera-Kamera2, rdzeń kamery i Cykl życia kamery w wersji 1.0.0
Wersja 1.0.0
5 maja 2021 roku
androidx.camera:camera-camera2:1.0.0
, androidx.camera:camera-core:1.0.0
i androidx.camera:camera-lifecycle:1.0.0
zostały udostępnione. Wersja 1.0.0 zawiera te zatwierdzenia.
Główne funkcje 1.0.0
- CameraX obsługuje funkcje Podgląd, ImageCapture i Analiza.
- CameraX zarządza cyklem życia aparatu za pomocą łatwego w użyciu interfejsu API.
- CameraX chce udostępnić warstwę zgodności, która rozwiązuje wiele problemów w ekosystemie aparatów w Androidzie
Znane problemy
- Zobacz listę znanych problemów
Wersja 1.0.0-rc05
21 kwietnia 2021 r.
androidx.camera:camera-camera2:1.0.0-rc05
, androidx.camera:camera-core:1.0.0-rc05
i androidx.camera:camera-lifecycle:1.0.0-rc05
zostały udostępnione. Wersja 1.0.0-rc05 zawiera te zatwierdzenia.
Poprawki błędów
- Na telefonie Samsung Galaxy S7 poprawiono robienie wyblakłych obrazów z włączoną/automatyczną lampą błyskową. (I30001).
Wersja 1.0.0-rc04
24 marca 2021 r.
androidx.camera:camera-camera2:1.0.0-rc04
, androidx.camera:camera-core:1.0.0-rc04
i androidx.camera:camera-lifecycle:1.0.0-rc04
zostały udostępnione. Wersja 1.0.0-rc04 zawiera te zatwierdzenia.
Poprawki błędów
- Usunięto błąd inicjowania na urządzeniach UMIDIGI BISON (I57d9e, b/180818665).
Wersja 1.0.0-rc03
24 lutego 2021 r.
androidx.camera:camera-camera2:1.0.0-rc03
, androidx.camera:camera-core:1.0.0-rc03
i androidx.camera:camera-lifecycle:1.0.0-rc03
zostały udostępnione. Wersja 1.0.0-rc03 zawiera te zatwierdzenia.
Poprawki błędów
- Popraw błąd formatu w dokumencie
ProcessCameraProvider#getInstance
- Rozwiązaliśmy problem, który powodował błąd testu Robolectric podczas używania metody setAvailableCamerasLimiter w CameraXConfig.
- Rozwiązano problem obniżenia wydajności przechwytywania obrazów przez usunięcie weryfikacji lokalizacji zapisanego obrazu przed jego zrobieniem. Jeśli po wprowadzeniu tej zmiany miejsce docelowe zapisu będzie nieprawidłowe, odpowiedź o błędzie pojawi się później, ponieważ po zrobieniu zdjęcia zostanie podjęta próba zapisania zdjęcia
- Ta zmiana wyłapuje wyjątek, gdy kolejka obrazów zostanie wyczerpana w ImageAnalysis. Dzięki temu zamiast awarii, możesz zauważyć, że inne przypadki użycia zawieszają się lub działają wolno. np. zablokowany/powolny podgląd.
- Obejście problemu z przerywanymi uszkodzonymi danymi obrazów w plikach JPEG za pomocą tylnego aparatu SM-G930T. (I52001, b/159831206)
- Ta zmiana wyłapuje wyjątek, gdy kolejka obrazów zostanie wyczerpana w ImageAnalysis. Dzięki temu zamiast awarii, możesz zauważyć, że inne przypadki użycia zawieszają się lub działają wolno. np. zablokowany/powolny podgląd. (IC12da, b/175851631)
- Usunięto błąd testu Robolectric, Parametr setAvailableCamerasLimiter jest używany w CameraXConfig. (Ice307).
- Rozwiązano problem obniżenia wydajności przechwytywania obrazów przez usunięcie weryfikacji lokalizacji zapisanego obrazu przed jego zrobieniem. Jeśli po wprowadzeniu tej zmiany miejsce docelowe zapisu będzie nieprawidłowe, odpowiedź o błędzie pojawi się później, ponieważ po zrobieniu zdjęcia zostanie podjęta próba zapisania zdjęcia. (I1fd4e, b/177061560)
- Poprawiono regresję wydajności przechwytywania obrazów za pomocą opcji „Plik”. wpisz OutputFileOptions. (I5164a, b/177061560)
Wersja 1.0.0-rc02
27 stycznia 2021 r.
androidx.camera:camera-camera2:1.0.0-rc02
, androidx.camera:camera-core:1.0.0-rc02
i androidx.camera:camera-lifecycle:1.0.0-rc02
zostały udostępnione. Wersja 1.0.0-rc02 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawiony błąd IllegalArgumentException, który występował, gdy wszystkie obsługiwane rozmiary w podglądzie mają rozmiar mniejszy niż 640 x 480, a rozmiar wyświetlacza większy niż 640 x 480. (B/150506192)
Ogranicz liczbę prób ponownego otwarcia kamery. Podczas próby rozwiązania pewnych problemów podczas otwierania kamery CameraX nie będzie już próbowała ponownie otwierać kamery w nieskończoność. Zamiast tego zatrzymuje się po 10 sekundach ponawiania próbyI435d2.
Rozwiązaliśmy
IllegalArgumentException
problem, który występował, gdy wszystkie obsługiwane rozmiary podglądu są mniejsze niż 640 x 480, a rozmiar wyświetlacza jest większy niż 640 x 480. (I2a63c, b/150506192)
Wersja 1.0.0-rc01
16 grudnia 2020 roku
androidx.camera:camera-camera2:1.0.0-rc01
, androidx.camera:camera-core:1.0.0-rc01
i androidx.camera:camera-lifecycle:1.0.0-rc01
zostały udostępnione. Wersja 1.0.0-rc01 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Zmieniono aparaty CameraFilter i Camera2Filter, aby korzystały z informacji o kamerze CameraInfo. (I6883D)
- Dodano eksperymentalną klasę Camera2CameraControl, aby umożliwić współpracę z interfejsami API Camera2 dynamicznie. (I45cf3).
- Zmieniono nazwę elementu Camera2CameraInfo#fromCameraInfo na #from. (Ia2bd6).
- Dodano eksperymentalny interfejs API setAvailableCamerasLimiter do CameraXConfig, aby umożliwić aplikacjom optymalizowanie opóźnienia inicjowania. unikając inicjowania nieużywanych kamer. (I6cf88).
- Dodano metodę eksperymentalną
CameraXConfig.Builder#setMinimumLoggingLevel()
, która umożliwia ustawienie minimalnego poziomu rejestrowania logów CameraX. Jeśli zasada nie jest skonfigurowana, domyślna wartość toLog#DEBUG
. (IC3245).
Poprawki błędów
- Obejście problemu z sporadycznie uszkodzonymi danymi obrazów w Pliki JPEG za pomocą tylnego aparatu SM-G930V. (I5aca5, b/159831206)
- Naprawiono problem braku wyników przy robieniu zdjęć przy włączonej lampie błyskowej. a otoczenie jest ciemne na urządzeniach Samsung SM-A716. (If98b2, b/172036589)
- Rozwiązaliśmy problem, który powodował, że podglądu nie można było zatrzymać przez wywołanie funkcji
Preview.setSurfaceProvider(null)
. (I3ac18), - Rozwiązaliśmy problem z orientacją podczas robienia zdjęć w formacie 4:3 na niektórych urządzeniach. (I0e3fb, b/171492111)
Aparat 2, główny i Wersja 1.0.0-beta12
11 listopada 2020 roku
androidx.camera:camera-camera2:1.0.0-beta12
, androidx.camera:camera-core:1.0.0-beta12
i androidx.camera:camera-lifecycle:1.0.0-beta12
zostały udostępnione. Wersja 1.0.0-beta12 zawiera te zatwierdzenia.
Poprawki błędów
- Na urządzeniach Samsung A3 wyłączono automatyczną lampę błyskową w celu rozwiązania problemu podczas robienia zdjęć z automatyczną lampą błyskową w trybie AE na urządzeniach Samsung A3. (Ia5fe3, b/157535165)
- Rozwiązaliśmy problem, który powodował rozciąganie podglądu na urządzeniach Nexus 4 z Androidem L (poziomy interfejsu API 21 i 22). (I4d407, b/158749159)
OnImageCapturedCallback#onCaptureSuccess
klasa bazowa nie zamyka już obrazu. Ma to na celu zapobieganie programistów. Deweloperzy nie powinni polegać super.onCaptureSuccess zamyka obraz. (Ifbf9c).- Wariant Androidax adnotacji eksperymentalnej został wycofane, aby zapewnić spójność z narzędziem Kotlin. Zastąpiliśmy ją Adnotacja requiredOptIn i linter obsługujący język Java został zaktualizowany do obsługują zarówno nową adnotację Kotlin, jak i nowy wariant Androidax. (I52495, b/151331381)
Kamera-Aparat2, wersja 1.0.0-beta11
14 października 2020 r.
Usługa androidx.camera:camera-camera2:1.0.0-beta11
została zwolniona. Wersja 1.0.0-beta11 zawiera te zatwierdzenia.
Nowe funkcje
- Obsługuje interfejs API
CONTROL_ZOOM_RATIO
w Androidzie 11 do powiększania. urządzeń z Androidem 11 lub nowszym, na których znajdują się prawidłoweCONTROL_ZOOM_RATIO_RANGE
(I62cc6)
Poprawki błędów
- Naprawiono błąd NumberFormatException, który występował, gdy identyfikator kamery nie był liczbą całkowitą. (IB2228)
- Poprawiono czas oczekiwania na inicjowanie aplikacji CameraX bindToLifecycle (I61dc5)
- Tworzenie przypadków użycia nie wymaga inicjowania aplikacji CameraX
aby zakończyć. Wszystkie konfiguracje związane z implementacją są włączone
Przypadek użycia po dołączeniu do instancji kamery, która jest wykorzystywana
Interfejs API:
ProcessCameraProvider.bindToLifecycle()
. (Ia5411). <UseCase>.getTargetRotation()
zwróciSurface.ROTATION_0
jeśli zostanie wywołana przed podłączeniem do instancji kamery, chyba że Wartość targetRotation została ustawiona w konstruktorze lub przypadku użycia. (I80fcd)
Wersja 1.0.0-beta11 systemu kamery
14 października 2020 r.
Usługa androidx.camera:camera-core:1.0.0-beta11
została zwolniona. Wersja 1.0.0-beta11 zawiera te zatwierdzenia.
Nowe funkcje
- Obsługiwany jest interfejs API systemu Android 11 CONTROL_ZOOM_RATIO
do powiększania.
urządzeń z Androidem 11 lub nowszym, na których znajdują się prawidłowe
CONTROL_ZOOM_RATIO_RANGE
(I62cc6)
Poprawki błędów
- Naprawiono błąd NumberFormatException, który występował, gdy identyfikator kamery nie był liczbą całkowitą. (IB2228)
- Tworzenie przypadków użycia nie wymaga inicjowania aplikacji CameraX
aby zakończyć. Wszystkie konfiguracje związane z implementacją są włączone
Przypadek użycia po dołączeniu do instancji kamery, która jest wykorzystywana
Interfejs API:
ProcessCameraProvider.bindToLifecycle()
. (Ia5411). <UseCase>.getTargetRotation()
zwróciSurface.ROTATION_0
jeśli zostanie wywołana przed podłączeniem do instancji kamery, chyba że Wartość targetRotation została ustawiona w konstruktorze lub przypadku użycia. (I80fcd)
Wersja 1.0.0-beta10 systemu kamery
23 września 2020 r.
Usługa androidx.camera:camera-core:1.0.0-beta10
została zwolniona. Wersja 1.0.0-beta10 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawianie błędu podczas weryfikowania miejsca docelowego zapisu pliku na potrzeby przechwytywania obrazu (I8c565, b/167697553)
Kamera-Aparat2 Wersja 1.0.0-beta10
23 września 2020 r.
Usługa androidx.camera:camera-camera2:1.0.0-beta10
została zwolniona. Wersja 1.0.0-beta10 zawiera te zatwierdzenia.
Poprawki błędów
- Wersja na potrzeby obsługi rdzenia aparatu 1.0.0-beta10
Kamera-Aparat2 Wersja 1.0.0-beta09
16 września 2020 roku
Usługa androidx.camera:camera-camera2:1.0.0-beta09
została zwolniona. Wersja 1.0.0-beta09 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Zamiast metod statycznych narzędzie Camera2CameraInfo w instancji CameraInfo po utworzeniu w celu pobrania związanych z Camera2 . (I5B844)
Poprawki błędów
- Rozwiązaliśmy problem z docelowym współczynnikiem proporcji na tabletach. Jeśli docelowy format obrazu jest ustawiony na
AspectRatio.RATIO_16_9
, należy wybrać rozmiar 16:9. (Ib7fcf, b/151969438) - Zgłoś
InitializationException
, aby aplikacja mogła bezproblemowo obsłużyć błąd AssertionError, który wystąpił podczas tworzenia właściwości CameraCharacterists. (I89c8c, b/160524721) - Dodane eksperymentalne interfejsy kompensacji ekspozycji (If96c7)
Wersja 1.0.0-beta09 aparatu fotograficznego
16 września 2020 roku
Usługa androidx.camera:camera-core:1.0.0-beta09
została zwolniona. Wersja 1.0.0-beta09 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Poprawiliśmy błąd polegający na tym, że widoczny obszar w UseCaseGroup ma wartość niepustą. Deweloperzy powinni mieć możliwość utworzenia widocznego obszaru bez konieczności jego konfigurowania. (Ie3d2e).
- Dodano eksperymentalne interfejsy dla
ExposureCompensation
(If96c7) - Zezwalaj na dowolną rotację docelową w wersji testowej. Informacje o przekształceniu są obliczane i zwracane użytkownikowi na bieżąco przez nowe wywołanie zwrotne
TranformationInfoListener
. (I21470)
Poprawki błędów
- Rozwiązaliśmy problem, który powodował, że na niektórych urządzeniach nie można było wyłączyć lampy błyskowej. Dzieje się tak, gdy tryb lampy błyskowej jest ustawiony na
FLASH_MODE_ON
, aby zrobić zdjęcie, i zmienia się naFLASH_MODE_OFF
po uruchomieniu lampy błyskowej. Objawem jest włączenie trybu latarki. (Ib4451, b/162568128) - Wymuszone jest użycie w podglądzie właściwości TextureView, jeśli włączony jest efekt rozszerzenia, a implementacja biblioteki dostawcy musi wykonać specjalny proces na powierzchni wyjściowej. (I0c3cc).
- Naprawiliśmy wyciek aktywności/fragmentu, gdy do
ProcessCameraProvider.getInstance(Context)
przekazywany był kontekst aktywności/fragmentu.
Znane problemy
- Jeśli masz ustawiony port ViewPort, prostokąt przycinania obrazu ImageCapture może być nieprawidłowy w przypadku urządzeń, które obracają bufor obrazu w HAL. Poprawimy to w następnej wersji.
Kamera-Aparat2 Wersja 1.0.0-beta08
19 sierpnia 2020 r.
Usługa androidx.camera:camera-camera2:1.0.0-beta08
została zwolniona. Wersja 1.0.0-beta08 zawiera te zatwierdzenia.
Poprawki błędów
- Zoptymalizowano bindToLifecycle, aby szybko uruchomić w wątku głównym. (I1d57e)
- DisplayOrientedMeteringPointFactory pobiera obiekt CameraInfo instancji zamiast obiektu CameraSelector, więc istnieje bezpośrednie mapowanie dla którego aparatu fabryka będzie generować punkty. Wszystkie zajęcia korzystające z DisplayOrientedMeteringPointFactory również pobierają obiekt CameraInfo instancji zamiast obiektu CameraSelector. (I400C1)
- Rozwiązaliśmy problem z grupowaniem rozmiaru w przypadku współczynnika proporcji w automatycznej rozdzielczości polegającej na tym, że wybierany jest rozmiar 16:9 (mod16) (864 x 480), gdy docelowa rozdzielczość to 2016 x 1080, a inny obsługiwany rozmiar to 1920 x 1080 w formacie 16:9. (I53167, b/159363774)
- Rozwiąż problem z funkcją CameraControl, który uniemożliwia działanie ze względu na warunki wyścigu (I2279f, b/152333890, b/160714166)
Wersja 1.0.0-beta08 systemu kamery
19 sierpnia 2020 r.
Usługa androidx.camera:camera-core:1.0.0-beta08
została zwolniona. Wersja 1.0.0-beta08 zawiera te zatwierdzenia.
Zmiany interfejsu API
DisplayOrientedMeteringPointFactory
ma:CameraInfo
instancji zamiastCameraSelector
, więc istnieje bezpośrednie mapowanie dla którego aparatu fabryka będzie generować punkty. Wszystkie zajęcia które używająDisplayOrientedMeteringPointFactory
również przyjmująCameraInfo
instancję zamiastCameraSelector
. (I400C1)
Poprawki błędów
- W przypadku przechwytywania obrazu zastąp flagę „odwróć w poziomie” w metadanych odpowiednio do kierunku aparatu. (I28499)
- Inicjalizacja nie powinna już ulegać awarii podczas korzystania z kontekstu
, który nie zwraca obiektu Application z poziomu
Context.getApplicationContext()
(I3d3c9, b/160817073)
Kamera-Aparat2 w wersji 1.0.0-beta07
22 lipca 2020 r.
Usługa androidx.camera:camera-camera2:1.0.0-beta07
została zwolniona. Wersja 1.0.0-beta07 zawiera te zatwierdzenia.
Poprawki błędów
- Rozwiązaliśmy problem z rozciąganiem podglądu na starszych urządzeniach z Androidem 5.0. (I0c03a)
- Wykluczono niektóre rozmiary obsługiwane w formacie JPEG, które na niektórych urządzeniach będą powodować problemy z formatem WYSIWYG. (IB5128)
Wersja 1.0.0-beta07 systemu kamery
22 lipca 2020 r.
Usługa androidx.camera:camera-core:1.0.0-beta07
została zwolniona. Wersja 1.0.0-beta07 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Scal style dopasowania
FIT_CENTER
,FIT_START
iFIT_END
z polemFIT
.FIT
oznacza, że zwrócony prostokąt przycinania jest maksymalnym możliwym prostokątem czujnika. (IA73c3). - Prostokąt przycinania podglądu jest konfigurowany według widocznego obszaru. Tylko obszar zakryty prostokątem przycinania powinien być widoczny dla użytkowników. (I142a4)
Poprawki błędów
- Rozwiązaliśmy problem z rozciąganiem podglądu na starszych urządzeniach z Androidem 5.0. (I0c03a)
- Naprawiono wyjątek
ConcurrentModificationException
który występuje w przypadku usuwania powiązań. (I371C0)
Kamera-Aparat2, wersja 1.0.0-beta06
24 czerwca 2020 r.
Usługa androidx.camera:camera-camera2:1.0.0-beta06
została zwolniona. Wersja 1.0.0-beta06 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Dodaliśmy eksperymentalne interfejsy do filtrowania kamer według aparatu. ID and CameraFeatures. (I28f61)
Poprawki błędów
- Rozwiązaliśmy problem, który powodował, że narzędzie startFocusAndMetering nie działało na telefonie Samsung Galaxy S7. (If3be7, b/159039233)
- Rozwiązanie problemu: nie można zamknąć aparatu po zamknięciu aplikacji. (I7a7b3)
- Poprawianie powtarzających się podglądu przerw na przełączanie kamery podczas korzystania z implementacji funkcji PreviewView SurfaceView (I920ce)
- Działanie
CameraControl#startFocusAndMetering
nie powiedzie się, jeśli żaden z określony MeteringPoint może wygenerować prawidłowe prostokąty pomiaru. (Id53ce).
Wersja 1.0.0-beta06 systemu kamery
24 czerwca 2020 r.
Usługa androidx.camera:camera-core:1.0.0-beta06
została zwolniona. Wersja 1.0.0-beta06 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Dodaliśmy eksperymentalne interfejsy do filtrowania kamer według aparatu. ID and CameraFeatures. (I28f61)
Poprawki błędów
- Aparat CameraX można teraz skonfigurować za pomocą
ProcessCameraProvider#configureInstance()
przed nawiązaniem połączeniaProcessCameraProvider#getInstance()
Umożliwia to dostosowanieCameraXConfig
bez konieczności implementacjiCameraXConfig.Provider
w klasie Application aplikacji. (Ia1a8d). - Działanie
CameraControl#startFocusAndMetering
nie powiedzie się, jeśli żaden z określony MeteringPoint może wygenerować prawidłowe prostokąty pomiaru. (Id53ce).
Kamera-Aparat2 w wersji 1.0.0-beta05
10 czerwca 2020 r.
Usługa androidx.camera:camera-camera2:1.0.0-beta05
została zwolniona. Wersja 1.0.0-beta05 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawianie awarii przy uruchamianiu aplikacji podczas inicjowania aplikacji CameraX, gdy telefon jest w trybie Nie przeszkadzać. Pole
InitializationException
zawiera elementCameraUnavailableException
, który zostanie ustawiony na wartośćListenableFuture
wyniku inicjalizacji, zamiast powodować awarię aplikacji. (I9909a, b/149413835) - Usunięto awarię, która występowała podczas połączenia z numerem
startFocusAndMetering
na urządzeniach, któreCONTROL_AF_STATE
mają wartość null. (Ife55e, b/157084254)
Wersja 1.0.0-beta05 aparatu fotograficznego
10 czerwca 2020 r.
Usługa androidx.camera:camera-core:1.0.0-beta05
została zwolniona. Wersja 1.0.0-beta05 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Naprawianie awarii przy uruchamianiu aplikacji podczas inicjowania aplikacji CameraX, gdy telefon jest w trybie Nie przeszkadzać. Pole
InitializationException
zawiera poleCameraUnavailableException
, które zostanie ustawione na wartośćListenableFuture
wyniku inicjalizacji, zamiast powodować awarie aplikacji. (I9909a, b/149413835)
Poprawki błędów
- Zaktualizowano dokumentację Java docs
setTargetResolution
isetTargetRotation
. (IAE16f).
Kamera-Aparat2, wersja 1.0.0-beta04
27 maja 2020 r.
Usługa androidx.camera:camera-camera2:1.0.0-beta04
została zwolniona. Wersja 1.0.0-beta04 zawiera te zatwierdzenia.
Poprawki błędów
- Zezwolono aplikacjom na ustawianie dowolnych parametrów żądań przechwytywania Camera2 za pomocą interfejsu
Camera2Interop
bez wywoływania awarii. Pamiętaj, że jeśli zastępowanie parametrów spowoduje wystąpienie problemów. W przypadku zastępowania parametrów za pomocą Camera2Interop stabilność i działanie nie są gwarantowane. (Ibe5a1, b/149103700) - Naprawiono automatyczne inicjowanie w przypadku korzystania z aplikacji na urządzeniu z pseudojęzykiem. (I3bef3, b/154767663)
- Przekształcono dziennik błędów związanych z odłączonym przypadkiem użycia do dziennika debugowania w Camera2CameraImpl. (I1a565, b/154422490)
- Rozwiązaliśmy problem polegający na tym, że zdjęcie było czasem zbyt ciemne, mimo że z użyciem lampy błyskowej. (I5d9fa, b/149729613)
- Naprawianie błędu polegającego na tym, że bufor w pliku
ImageProxy
z plikuImageCapture
nie był przewinięty (I0c455, b/153249512) - Naprawiono problemy związane tylko z wiązaniem funkcji Image Capture: (1) Nie można zrobić zdjęć przy użyciu urządzenia MAX_QUALITY; (2) Wygenerowano zdjęcia o złej jakości, ponieważ nie działa automatyczna ekspozycja. (I17782, b/145326998)
- Zwiększona niezawodność ponownego uruchamiania aparatu po odłączeniu aplikacji CameraX przez inny proces lub w wyniku kradzieży ścieżki kodu (I1fbc3, b/153714651)
Wersja 1.0.0-beta04 systemu kamery
27 maja 2020 r.
Usługa androidx.camera:camera-core:1.0.0-beta04
została zwolniona. Wersja 1.0.0-beta04 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Dodaje eksperymentalny interfejs API
CameraXConfig.Builder#setSchedulerHandler()
do ustawiania modułu obsługi używanego wewnętrznie przez stos aparatów CameraX. Nowy interfejs API wraz z interfejsemCameraXConfig.Builder#setCameraExecutor()
powinien dawać pełną kontrolę nad wątkami używanymi przez stos kamery CameraX. (I7bf32, b/121160431)
Poprawki błędów
- Rozwiązaliśmy problem z awarią w regionie
ImageAnalysis
, w której po zamknięciu zasobuImageReaderProxy
można uzyskać dostęp do:ImageProxy
. Dzięki temu wszystkieImageProxy
odebrane przezAnalyzer
muszą zostać zamknięte przed zamknięciemImageReaderProxy
. (I4b299, b/145956416, b/154155377, b/156357269) - Parametr
CameraInfo
został usunięty z elementuPreviewView#createSurfaceProvider()
.PreviewView
pobiera teraz go wewnętrznie zSurfaceRequest
. (If18f0, b/154652477) - Naprawiono automatyczne inicjowanie w przypadku korzystania z aplikacji na urządzeniu z pseudojęzykiem. (I3bef3, b/154767663)
- Rozwiązaliśmy problem polegający na tym, że zdjęcie było czasem zbyt ciemne, mimo że z użyciem lampy błyskowej. (I5d9fa, b/149729613)
- Naprawiono błąd z funkcją
ImageAnalysis
, w którym wielokrotne wywołania funkcji setAnalizujr/clear Analysisr powodowały, że analizator nie odbierał obrazów do analizy. (I6169f, b/151605317, b/153514544) - Naprawianie błędu polegającego na tym, że bufor w pliku
ImageProxy
z plikuImageCapture
nie był przewinięty (I0c455, b/153249512) - Rozwiązaliśmy problem, który powodował, że pierwsza kamera na obsługiwanej liście z usługi
CameraManager
nie zawsze była wybrana do użycia. (I4c624, b/153418028) - Rozwiązano przejściowy problem, który powodował, że ustawienie
Preview.SurfaceProvider
nie było zwalniane wcześniej żądanej powierzchni.“java.lang.IllegalStateException: Camera surface session should only fail with request cancellation”
(I8e4e7, b/155936225)
Kamera-Aparat2, wersja 1.0.0-beta03
15 kwietnia 2020 roku
Usługa androidx.camera:camera-camera2:1.0.0-beta03
została zwolniona. Wersja 1.0.0-beta03 zawiera te zatwierdzenia.
Poprawki błędów
- Poprawki do wydania
camera-core
Wersja 1.0.0-beta03 systemu kamery
15 kwietnia 2020 roku
Usługa androidx.camera:camera-core:1.0.0-beta03
została zwolniona. Wersja 1.0.0-beta03 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawiliśmy regresję z wersji beta03, w której wywołanie funkcji
bindToLifecycle()
z zerową wartościąUseCase
powodowało zgłoszenie zgłoszenia. Uniemożliwiło to pobranie elementuCamera
bez powiązaniaUseCase
.
Kamera-Aparat2, wersja 1.0.0-beta02
Kwiecień 1, 2020
Usługa androidx.camera:camera-camera2:1.0.0-beta02
została zwolniona. Wersja 1.0.0-beta02 zawiera te zatwierdzenia.
Poprawki błędów
- Poprawiliśmy wartość
ImageInfo.getRotationDegrees()
zImageProxy
wygenerowanego przezImageCapture
, tak aby pasowała do wartości obrotu orientacji EXIF. (Id4281, b/150802561) - Do korzystania z domyślnej implementacji AparatuX/Aparatu2 nie jest już wymagane porządkowanie zależności CameraX w usłudze
build.gradle
. Jeśli wymagane jest zadeklarowanie ścisłych zależności, w pliku kompilacji można teraz uwzględnić wszystkie zależności CameraX. (I46e88) - Rozwiązaliśmy problem (
IllegalArgumentException
) występujący na urządzeniach, których rozmiar wyświetlacza jest mniejszy niż 640 x 480. (Ife3f2, b/150506192) - Naprawiliśmy błąd
bindToLifecycle
, dzięki czemu zmienia się przypadek użycia tylko wtedy, gdy udało się go powiązać. Wcześniej podczas wywoływania funkcjibindToLifecycle
w celu wykonania obliczeń dotyczących rozwiązania aktualizowany był przypadek użycia. Nie trzeba już aktualizować przypadku użycia do obliczeń (I78d9e)
Wersja 1.0.0-beta02 systemu kamery
Kwiecień 1, 2020
Usługa androidx.camera:camera-core:1.0.0-beta02
została zwolniona. Wersja 1.0.0-beta02 zawiera te zatwierdzenia.
Poprawki błędów
- Poprawiliśmy wartość
ImageInfo.getRotationDegrees()
zImageProxy
wygenerowanego przezImageCapture
, tak aby pasowała do wartości obrotu orientacji EXIF. (Id4281, b/150802561) - Naprawiliśmy błąd
bindToLifecycle
, dzięki czemu zmienia się przypadek użycia tylko wtedy, gdy udało się go powiązać. Wcześniej podczas wywoływania funkcjibindToLifecycle
w celu wykonania obliczeń dotyczących rozwiązania aktualizowany był przypadek użycia. Nie trzeba już aktualizować przypadku użycia do obliczeń (I78d9e) - Rozwiązaliśmy problem, który powodował, że sesja przechwytywania przypadku użycia
Preview
nie była aktualizowana, gdy powierzchnia podglądu zmieniła się po więcej niż jednym wywołaniu funkcjiPreview.setSurfaceProvider()
.
Kamera-Aparat2, wersja 1.0.0-beta01
26 lutego 2020 r.
Usługa androidx.camera:camera-camera2:1.0.0-beta01
została zwolniona. Wersja 1.0.0-beta01 zawiera te zatwierdzenia.
Poprawki błędów
- Nazwa
SurfaceRequest.setSurface(Surface)
została zmieniona naSurfaceRequest.provideSurface(Surface)
iSurfaceRequest.setWillNotComplete()
dlaSurfaceRequest.willNotProvideSurface()
(I224fe) - Rozwiązaliśmy problem z nieprawidłowym współczynnikiem proporcji zapisanego obrazu
po zmianie wartości docelowej rotacji za pomocą funkcji
ImageCapture.setTargetRotation()
. (I474ea, b/148763432) - Naprawiono inicjowanie wariantów aplikacji z włączoną funkcją ProGuard przez zachowanie
flagę określającą domyślnego dostawcę
CameraXConfig
. (I2d6c1)
Wersja 1.0.0-beta01 systemu kamery
26 lutego 2020 r.
Usługa androidx.camera:camera-core:1.0.0-beta01
została zwolniona. Wersja 1.0.0-beta01 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Zastąpiono:
ListenableFuture
na urządzeniuSurfaceRequest.provideSurface()
zExecutor
iCallback
. Ten upraszcza interfejs API, nie wymagając już obsługi wyjątkówprovideSurface()
i egzekwuje, że wywołanie zwrotneprovideSurface()
nie może mogą zostać anulowane. Ma to na celu zapobieganie awariom na starszych urządzeniach spowodowanych przez przedwczesne uwalnianie powierzchni. ObiektSurfaceRequest.Result
jest teraz używany do śledzenia, jakSurfaceRequest
korzysta z podanegoSurface
. (I7854B) - Nazwa
SurfaceRequest.setSurface(Surface)
została zmieniona naSurfaceRequest.provideSurface(Surface)
iSurfaceRequest.setWillNotComplete()
dlaSurfaceRequest.willNotProvideSurface()
(I224fe)
Poprawki błędów
- Rozwiązaliśmy problem z nieprawidłowym współczynnikiem proporcji zapisanego obrazu
po zmianie wartości docelowej rotacji za pomocą funkcji
ImageCapture.setTargetRotation()
. (I474ea, b/148763432) - Naprawiono inicjowanie wariantów aplikacji z włączoną funkcją ProGuard przez zachowanie
flagę określającą domyślnego dostawcę
CameraXConfig
. (I2d6c1) - Zaktualizowaliśmy dokumentację interfejsów API trybu Flash o uwzględnieniu wszystkich możliwych wartości. (I4a3ec),
Kamera-Aparat2, wersja 1.0.0-alfa10
10 lutego 2020 r.
Usługa androidx.camera:camera-camera2:1.0.0-alpha10
została zwolniona. Wersja 1.0.0-alfa10 zawiera te zatwierdzenia.
Poprawki błędów
- Zwiększono stabilność na urządzeniach z systemem
INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY
, ponieważ elementySurface
są zachowywane tylko przez cały czas ich używania przez Aparat 2. (I9dac2). - Rozwiązaliśmy problem z niedoświetlonym podglądem na STARSZYCH urządzeniach przez prawidłowe dostosowanie wartości
CONTROL_AE_TARGET_FPS_RANGE
. (1224638)
Wersja rdzenia aparatu 1.0.0-alfa10
10 lutego 2020 r.
Usługa androidx.camera:camera-core:1.0.0-alpha10
została zwolniona. Wersja 1.0.0-alfa10 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Zaktualizowano
ImageCapture
, aby zezwolić na zapisywanie obrazów w usługachUri
iOutputStream
. Połączono przeciążonetakePicture
metody w jedną. Zaktualizowaliśmy aplikację testową, aby używała przykładu wersji kanonicznejUri
. (Ia3bec). - Nazwa konta
Preview.PreviewSurfaceProvider
została zmieniona naPreview.SurfaceProvider
.SurfaceProvider
nie wymagają już od programistów tworzenia własnych obiektówListenableFuture
, a polecenieSurface
odbywa się teraz za pomocą nowego obiektuSurfaceRequest
. MetodaPreview.getPreviewSurfaceProvider()
została usunięta z powodu nieprawidłowego użycia, gdy klasaPreview
jest sparowana z innymi klasami, takimi jakPreviewView
. (I20105). - Dodano
getTargetRotation()
igetTargetName()
doPreview
. (Iceee7). - Dodano użytkowników
getTargetRotation()
,getBackpressureStrategy()
igetImageQueueDepth()
w aplikacjiImageAnalysis
. (I9d6d9) - Dodano
getTargetRotation()
igetCaptureMode()
w aplikacjiImageCapture()
(I5bc17) - Argumenty przekazane wcześniej w funkcjach
ImageCapture.OnImageSavedCallback.onError()
iImageCapture.OnImageCapturedCallback.onError()
zostały zastąpione pojedynczym argumentemImageCaptureException
, który nadal zawiera wszystkie informacje przekazane wcześniej. - Argument pliku przekazany wcześniej w funkcji
ImageCapture.OnImageSavedCallback.onImageSaved()
został usunięty. (I750d2) - Zajęcia
Preview
iImageCapture
są teraz oznaczone jako ostateczne. (I2500B) - Zaktualizowano interfejs API:
getZoomRatio()
,getMaxZoomRatio()
,getMinZoomRatio()
igetLinearZoom()
metodCameraInfo
scalania dogetZoomState()
, które zwraca instancjęZoomState
. (IB19fe) - Usunięto pola
OPTION_TARGET_CLASS
iOPTION_TARGET_NAME
interfejsu API odCameraXConfig
, ponieważ są one przeznaczone wyłącznie do użytku wewnętrznego w bibliotece. Usunięto konstruktor obiektuCameraXConfig.Builder
. (I96912). - Usunięto wymaganie, aby aplikacja musiała przedłużyć czas
Application
aby zainicjować AparatX. Aplikacja CameraX zostanie teraz zainicjowana z ustawieniem domyślnym Konfiguracja Camera2, o ile jest uwzględniony artefaktcamera-camera2
wbuild.gradle
aplikacji. (I58ff5) (b/146923574)
Kamera-Aparat2, wersja 1.0.0-alfa09
Styczeń 22, 2020
Usługa androidx.camera:camera-camera2:1.0.0-alpha09
została zwolniona. Wersja 1.0.0-alfa09 zawiera te zatwierdzenia.
Zmiany interfejsu API
Dodano ścieżkę interoperacyjności Camera2 do wyodrębniania identyfikatora kamery Camera2. Możesz wyodrębnić identyfikator kamery z urządzenia
CameraInfo
przy użyciuCamera2CameraInfo.extractCameraId()
. Sposób korzystania z niego pokazuje ten przykładowy kod:Camera camera = provider.bindToLifecycle(...); String cameraId = Camera2CameraInfo.extractCameraId(camera.getCameraInfo());
Klasa
Camera2CameraInfo
wymagaExperimentalCamera2Interop
markerClass.
Rdzeń aparatu w wersji 1.0.0-alfa09
Styczeń 22, 2020
Usługa androidx.camera:camera-core:1.0.0-alpha09
została zwolniona. Wersja 1.0.0-alfa09 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Poprzedni parametr
SurfaceOrientedMeteringPointFactory
:useCaseForSurface
zmieniono nazwę nauseCaseForAspectRatio
, a dokumentacja referencyjna została zmieniona rozwinięto. - Metody
FocusMeteringAction.Builder.from()
są zastępowane przez konstruktoryFocusMeteringAction.Builder()
- Usunięty
DisplayOrientedMeteringPointFactory(android.content.Context, androidx.camera.core.CameraSelector, float, float)
Aplikacje powinny używać konstruktora, który przyjmuje parametrDisplay
i na bieżącym wyświetlaczu. - Ulepszenia interfejsów API do pomiaru fokusu i pomiaru w obszarze Javadoc w zakresie
MeteringMode
i Flagi 3A i użycie parametruDisplay
. - Rozwinęliśmy dokumentację referencyjną dotyczącą
setZoomRatio
isetLinearZoom
.
Poprawki błędów.
- Rozwiązaliśmy problemy z zamykaniem i otwieraniem kamer, które powodowały wyświetlenie stanu „Wstępny stan” nie powiodło się.
- Naprawiono
ConcurrentModificationException
, który mógł wystąpić podczas używania latarki. i Zoom. - Rozwiązaliśmy problem, który polegał na tym, że teraz można było wybierać rozdzielczości bliżej żądanej rozdzielczości, gdy Dostępne są wymiary mod16.
- Interfejsy API
startFocusMetering
icancelFocusMetering
działają teraz zgodnie z dokumentacją, gdy tylko się pojawią, a w razie ich wystąpienia mogą wyświetlić się błędy. - Rozwiązanie problemu, który występował, gdy wymagane było określenie konkretnej rozdzielczości docelowej z użyciem aspektu przycinania. na urządzeniu, które nie obsługuje takich rozmiarów. Teraz w przypadku nieprzyciętych rozmiarów wystarczającej rozdzielczości, aby powiązać pierwotne żądanie, i dostępności informacji.
Kamera-Aparat2, wersja 1.0.0-alfa08
18 grudnia 2019 r.
Usługa androidx.camera:camera-camera2:1.0.0-alpha08
została zwolniona. Wersja 1.0.0-alfa08 zawiera te zatwierdzenia.
Znane problemy
- Nie wszystkie opcje żądania przechwytywania aplikacji Camera2 działają w przypadku korzystania ze współpracy z Aparatem2. Jeśli żądana opcja nie jest obsługiwana, sesja nie uruchamia się i może wystąpić następujący błąd:
09-09 14:04:13.643 10117 26020 26036 E AndroidRuntime: java.lang.IllegalArgumentException: Unsupported session configuration combination
Poprawki błędów
- Naprawiono błąd, który powodował, że po obróceniu lub przełączeniu kamery na podglądzie z poziomem API na poziomie 21 i 22 pojawiał się czarny ekran.
Zmiany interfejsu API
- Funkcja eksperymentalna: dodano ścieżkę interoperacyjności Camera2 do pobierania identyfikatora kamery.
Wersja rdzenia aparatu 1.0.0-alfa08
18 grudnia 2019 r.
Usługa androidx.camera:camera-core:1.0.0-alpha08
została zwolniona. Wersja 1.0.0-alfa08 zawiera te zatwierdzenia.
Znane problemy
- Aplikacje używające
PreviewView
lubCameraView
mogą mieć nieprawidłowy podgląd formatu obrazu. Dzieje się tak po wstrzymaniu lub wznowieniu odtwarzania na niektórych urządzeniach z pełnym dostępem, np. Pixel2.
Poprawki błędów
- Zaktualizowano dokumentację dotyczącą:
FocusMeteringAction
iCameraControl
. - Wdrożono
TorchControl
w przypadku metodenableTorch()
igetTorchState()
.
Zmiany interfejsu API
- Ukryto wartości IntDef i przesunęliśmy stałe IntDef poza definicję IntDef.
- Przeniesiono użytkownika
rotationDegrees
z zajęćOnImageCaptureCallback
do zajęćImageInfo
. - Przeniesiono użytkownika
rotationDegrees
z zajęćAnalyzer
do zajęćImageInfo
.
Kamera-Aparat2 w wersji 1.0.0-alfa07
4 grudnia 2019
Usługa androidx.camera:camera-camera2:1.0.0-alpha07
została zwolniona. Wersja 1.0.0-alfa07 kamery Camera-camera2 zawiera te zatwierdzenia
- Możesz teraz używać aplikacji
Camera2Config
do inicjowania i konfigurowania implementacji opartej na Camera2 dla Aparatu X. Więcej informacji o korzystaniu z tej funkcji do inicjowania znajdziesz w sekcji dotyczącej rdzenia aparatu w informacjach o wersji. - Funkcjonalność kamery Camera2 została oznaczona jako eksperymentalna i przeniesiona do osobnego pakietu
androidx.camera.camera2.interop.
Wersja rdzenia aparatu 1.0.0-alfa07
4 grudnia 2019
Usługa androidx.camera:camera-core:1.0.0-alpha07
została zwolniona. Wersja 1.0.0-alfa07 rdzenia aparatu zawiera te zatwierdzenia
W ramach przygotowań do wersji beta w tej wersji alfa wprowadzono kilka istotnych zmian. Zalecamy zapoznanie się ze zmianami i podzielenie się opinią na temat grupy dyskusyjnej Google CameraX. Deweloperzy, którzy korzystają z AparatuX w aplikacjach dostępnych w Sklepie Play, powinni poczekać na oficjalną wersję beta, zanim zaktualizujemy bibliotekę w aplikacjach.
Zmiany interfejsu API
Ważne: ustawienia inicjowania aplikacji Aparat X uległy zmianie. Aplikacje powinny implementować interfejs
CameraXConfig.Provider
i używać domyślnej wartościCamera2Config
udostępnianej przezandroidx.camera.camera2
. Typowe zastosowanie to:import androidx.camera.camera2.Camera2Config import androidx.camera.core.CameraXConfig public class MyCameraXApplication : Application(), CameraXConfig.Provider { override fun getCameraXConfig(): CameraXConfig { return Camera2Config.defaultConfig(this) } }
Klasa CameraX została usunięta.
bindToLifecycle()
,unbind()
,unbindAll()
,isBound()
ihasCamera()
podane wcześniej w wywołaniu zajęć w aplikacji CameraX są teraz dostępne w usłudzeProcessCameraProvider
.Wystąpienie
ProcessCameraProvider
na proces jest uzyskiwane asynchronicznie za pomocą metody statycznejProcessCameraProvider.getInstance()
, która zwraca przyszłość z możliwością list, która po zakończeniu zapewniaProcessCameraProvider
. Tutaj jest wyświetlane w językuonCreate()
w przypadku typowego użycia. Możesz nawiązywać połączenia z funkcjągetInstance()
w późniejszym czasie cyklu życia aktywności, aby opóźnić czas oczekiwania na inicjalizację (na przykład gdy działanie użytkownika otwiera interfejs aparatu).import androidx.camera.lifecycle.ProcessCameraProvider import com.google.common.util.concurrent.ListenableFuture class MainActivity : AppCompatActivity() { private lateinit var cameraProviderFuture : ListenableFuture<ProcessCameraProvider> override fun onCreate(savedInstanceState: Bundle?) { cameraProviderFuture = ProcessCameraProvider.getInstance(this); }
Do elementu
ListenableFuture
zwróconego przezgetInstance()
można dodać detektor. Dzięki temu można pobrać dostawcę kamery zFuture
bez blokowania wFuture.get()
cameraProviderFuture.addListener(Runnable { val cameraProvider = cameraProviderFuture.get() cameraProvider.bindToLifecycle(...) }, ContextCompat.getMainExecutor(this))
Wybór kamery odbywa się teraz za pomocą selektora aparatu, a nie konkretnego przypadku użycia
val cameraSelector = CameraSelector.Builder().requireLensFacing(LensFacing.BACK).build()
Do funkcji
CameraProvider.bindToLifecycle
przypisany jest właściciel cyklu życia, selektor aparatu i przypadki użycia, które są powiązane z danym właścicielem cyklu życia i działają dla wybranej kamery.cameraProvider.bindToLifecycle(this as LifecycleOwner, cameraSelector, preview, imageAnalysis)
Klasy „Config” w przypadku przypadku użycia zostaną usunięte. Zamiast tego twórz przypadki użycia bezpośrednio i konfigurując opcje w każdym kreatorze przypadków użycia. Na przykład:
preview = Preview.Builder().setTargetAspectRatio(AspectRatio.RATIO_16_9).build()
Przypadek użycia wersji testowej został zaktualizowany, aby akceptował platformę utworzoną i zarządzaną przez aplikację, co zapewnia zgodność ze sprawdzonymi metodami dotyczącymi Androida. Zdecydowanie zalecamy użycie klasy widoku
PreviewView
dostępnej w pakiecie widoku kamery.preview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
Zapoznaj się z dokumentacją dotyczącą dołączania platformy zarządzanej przez aplikację. W takich przypadkach cyklem życia platformy zarządza aplikacja.
Ważne: implementacja metody
ImageAnalysis
Analizatora musi wywołać metodęimage.close()
po zakończeniu korzystania z odebranych obrazów. W przeciwnym razie w zależności od ustawienia ciśnienia wstecznego nowe zdjęcia mogą nie być odbierane lub aparat może się zawiesić. Szczegółowe informacje znajdziesz w dokumentacji referencyjnej.Pole
ImageAnalysis ImageReaderMode
zostało zmienione na strategię wstecznego obciążeniaintdef
.Aplikacja
ImageProxy.getImage()
jest oznaczona jako eksperymentalna. Aplikacje powinny opisywać użycie, np. przez@androidx.camera.core.ExperimentalGetImage
Usunięto wymaganie dotyczące adnotacji
UIThread
w przypadku:Analyzer
.Dodano funkcję
ImageAnalysis.clearAnalyzer()
służącą do usuwania analizatora.Nazwy detektorów z więcej niż 1 metodą zostały zmienione na wywołanie zwrotne:
ImageCapture.OnImageCapturedListener
to terazImageCapture.OnImageCapturedCallback
ImageCapture.OnImageSavedListener
to terazImageCapture.OnImageSavedCallback
VideoCapture.OnVideoSavedListener
to terazVideoCapture.OnVideoSavedCallback
Wartości typu IntDef zostały zmienione na wartości IntDef
Dodaliśmy elementy sterujące powiększeniem:
CameraControl.setLinearZoom()
CameraControl.setZoomRatio()
CameraInfo.getLinearZoom()
CameraInfo.getMaxZoomRatio()
CameraInfo.getZoomRatio()
Dodano
CameraInfo.hasFlashUnit()
, by określić, czy dostępna jest lampa błyskowa lub latarka.CameraInfo.isFlashAvailable()
został(a) usunięty(a). Latarka zastępuje funkcję lampy błyskowej. Więcej informacji znajdziesz w dokumentacji referencyjnej.Pola
ImageCapture.Metadata
są zastępowane akcesorami get/set/is.Metody
startFocusMetering
icancelFocusMetering
zwracają teraz wartośćListenableFutures
, która reprezentuje operację asynchroniczną wywołania.Urządzenia
MeteringPoints
działają teraz jako uchwyty pomiarów i są produkowane przez fabryki. W aplikacjach powinny być używane istniejące fabryki, a nie niestandardowe.
Rozwiązane problemy
- Rozwiązaliśmy problem z robieniem zdjęcia przy wznawianiu działania (po poprzedniej wstrzymaniu zdjęcia były wykonywane w trakcie wznawiania).
- Znany problem:
CameraControl.enableTorch()
działa, ale zwrócona wartośćListenableFuture<Void>
jest zawsze przyszłą datącomplete(success)
, nawet jeśli nie ma jednostki Flash. W przyszłych wersjach zostanie to poprawione w taki sposób, że w przypadku braku jednostki flashenableTorch(true)
natychmiast przestanie działać (nie będzie wysyłać żądania doCaptureSession
), aTorchState
pozostanie wyłączony. - Znany problem: funkcje
startFocusAndMetering
icancelFocusAndMetering
uruchamiają i anulują pomiar skupienia, ale zwracają natychmiastową datęcompleted (success)
, która nie odzwierciedla udokumentowanego zachowania. WynikFocusMeteringResult
zListenableFuture<FocusMeteringResult> CameraControl.startFocusAndMetering()
to fałszywy wynik.isFocusSuccessful()
i zawsze ma wartość „false” (fałsz), różni się od zamierzonego, udokumentowanego działania. - Znany problem: opracowujemy fabrykę punktu pomiaru do obsługi zdarzeń dotyku w
PreviewView
. Na razie aplikacje łączące niestandardowe platformy zarządzane mogą korzystać z istniejących fabryk punktów pomiarowych. W przeciwnym razie wPreviewView
nie jest dostępna funkcja ostrości dotykiem.
Kamera-Kamera2 i rdzenie aparatu w wersji 1.0.0-alfa06
9 października 2019 r.
androidx.camera:camera-camera2:1.0.0-alpha06
i androidx.camera:camera-core:1.0.0-alpha06
zostały udostępnione. Oto zobowiązania zawarte w ramach camera-camera2:1.0.0-alpha06
, a także zobowiązania uwzględnione w ramach camera-core:1.0.0-alpha06
.
Nowe funkcje
Zmiany w ustawianiu formatów obrazu:
- Dodano argument
setTargetAspectRatioMode()
i akceptuje on argument wyliczeniowy. Powoduje to ustawienie trybu współczynnika proporcji z opcjamiRATIO_4_3
lubRATIO_16_9
zamiast z dowolnym formatem. Wynika to z faktu, że kamera ma wybrany format obrazu, a nie dowolne formaty.- Obecnie dostępne są tylko formaty 16:9 i 4:3. W przypadku obrazu 1:1 tylko niektóre urządzenia mogą uzyskać taki obraz z aparatu, a potem tylko przy ograniczonej rozdzielczości. Aplikacje projektujące interfejs lub przetwarzanie o proporcjach 1:1 powinny korzystać z bardziej elastycznych opcji formatu 16:9 lub 4:3 i przyciąć wyświetlanie lub przetwarzanie podregionu.
- Te formaty obrazu mają na celu wykorzystanie maksymalnego obszaru czujnika.
- Do interfejsów API konfiguracji przypadku użycia dodano format
getTargetAspectRatio()
, który zwraca współczynnik proporcji, na który kierowane są dane wyjściowe przypadku użycia. - Metoda
setTargetAspectRatio(Rational aspectRatio)
została zmieniona dla przechwytywania obrazu nasetTargetAspectRatioCustom(Rational aspectRatio)
. Po ustawieniu tego ustawienia obraz wyjściowy jest przycinany odpowiednio.
Interfejsy API wykonawcy
- Poniższe funkcje akceptują parametr wykonawcy, dzięki czemu aplikacja może kontrolować, na którym wykonawcy działa funkcja.
- Interfejs API
Preview.setOnPreviewOutputUpdateListener()
. Jeśli nie ma wykonawcy wykonania tej funkcji, jest ona wykonywana w wątku głównym. Preview.setOnPreviewOutputUpdateListener
FocusMeteringAction.Builder.setAutoFocusCallback
ImageAnalysis.setAnalyzer
ImageCapture.takePicture
CameraView.takePicture
CameraView.startRecording
VideoCapture.startRecording
- Interfejs API
Dodano CameraInfo z informacją o możliwości sprawdzenia dostępności lampy błyskowej i interfejsów API Sensor Rotation
Dodano
CameraInfo
i metodęgetCameraInfo
, która pozwala aplikacjom sprawdzać, czy dostępny jest obiektyw CameraInfo oraz czy w danym aparacie jest dostępna lampa błyskowa. Na przykład:try { CameraInfo cameraInfo = CameraX.getCameraInfo(currentCameraLensFacing); LiveData<Boolean> isFlashAvailable = cameraInfo.isFlashAvailable(); flashToggle.setVisibility(isFlashAvailable.getValue() ? View.VISIBLE : View.INVISIBLE); } catch (CameraInfoUnavailableException e) { Log.w(TAG, "Cannot get flash available information", e); flashToggle.setVisibility(View.VISIBLE); }
Dodano użytkownika
CameraInfo.getSensorRotationDegrees()
Podaje orientację czujnika w odniesieniu do naturalnej orientacji urządzenia lub dla wygody – dla wygody – względem orientacji opisanej za pomocą obrotu powierzchni (który opisuje orientację względem naturalnej orientacji).
Zmiany w interfejsie API i poprawki błędów
- Współczynniki proporcji: w każdym przypadku użycia aplikacja powinna wywoływać tylko jedną z tych wartości:
setTargetResolution()
lubsetTargetAspectRatio()
. Wywołanie obu w tym samym kreatorze powoduje zwrócenie błędu.- Ogólnie zalecamy używanie interfejsu
setTargetAspectRatio()
zgodnie z projektem interfejsu aplikacji. Konkretne rozwiązania zależą od przypadku użycia. Na przykład podgląd jest bliski rozdzielczości ekranu, a robienie obrazów – zdjęcia o wysokiej rozdzielczości. Więcej informacji znajdziesz w tabeli rozdzielczości automatycznych. - Zapisu
setTargetResolution()
używaj w bardziej konkretnych przypadkach, na przykład gdy wymagane są rozdzielczość minimalna (aby zapisać obliczenia) lub maksymalne rozdzielczości (aby uzyskać szczegóły przetwarzania).
- Ogólnie zalecamy używanie interfejsu
- Interfejs Executor API: usunięto wywołanie
setCallbackHandler()
z interfejsów API konfiguracji przypadku użycia. Zamiast tego aplikacje mogą ustawić wykonawcy jako parametr w różnych innych interfejsach API, które ustawiają wywołanie zwrotne. - Zaktualizowano puste adnotacje dla różnych funkcji.
- Rozwiązaliśmy problem, który powodował, że przy otwieraniu aparatu pojawiał się komunikat
java.lang.IllegalStateException at Camera$StateCallback.onError
. - Rozwiązaliśmy problem polegający na tym, że gdy aplikacja żądała większej lub domyślnej rozdzielczości była za mała (mniej niż 640 x 480), obraz podglądu był rozmyty lub blokowy. Aplikacje, które potrzebują mniejszych rozdzielczości, mogą o nie poprosić.
- Rozwiązaliśmy problem, który powodował wyświetlanie czarnego ekranu (niepowodzenie uruchomienia kamery) po powrocie z intencji, która uruchomiła inną aplikację aparatu.
- Naprawiliśmy błąd, który powodował wyświetlanie tego błędu przy wielokrotnym uruchamianiu lub zatrzymywaniu aplikacji.
java.lang.IllegalArgumentException: CaptureRequest contains unconfigured Input/Output Surface!
- Naprawiliśmy ten błąd, który pojawiał się przy wyłączaniu analizy obrazu:
java.lang.IllegalStateException: maxImages (4) has already been acquired, call #close before acquiring more.
- Dodano dodatkowe testy procesu odłączania kamery.
- Zwiększona niezawodność systemu testów podczas kolejnych testów aparatu.
Kamera-Aparat2 i rdzenie aparatu w wersji 1.0.0-alfa05
5 września 2019 r.
androidx.camera:camera-camera2:1.0.0-alpha05
i androidx.camera:camera-core:1.0.0-alpha05
zostały udostępnione. Są to zobowiązania zawarte w przypadku kamery-kamery2:1.0.0-alfa05 i obejmują zobowiązania dotyczące rdzenia kamery:1.0.0-alfa05.
Zmiana interfejsu API: zmienione nazwy zmiennych przypadku użycia:
- Nazwa
ImageCapture.UseCaseError
została zmieniona naImageCapture.ImageCaptureError
- Nazwa
VideoCapture.UseCaseError
została zmieniona naVideoCapture.VideoCaptureError
- Nazwa
Dodano interfejs
CameraControl
API z interfejsami API typu „Tap-to-fokus”Dodano interfejs API umożliwiający pobieranie
CameraControl
z AparatuX dla aparatu wybranego przez obiektyw:CameraX.getCameraControl(LensFacing lensFacing)
Dodano aplikacje
MeteringPointFactory
,MeteringPoint
,MeteringMode
iFocusMeteringAction
umożliwiające uruchamianie funkcji Dotknij, by aktywować ostrość:MeteringPointFactory factory = new SensorOrientedMeteringPointFactory(width, height); MeteringPoint point = factory.createPoint(x, y); FocusMeteringAction action = FocusMeteringAction.Builder.from(point, MeteringMode.AF_ONLY) .addPoint(point2, MeteringMode.AE_ONLY) // could have many .setAutoFocusCallback(new OnAutoFocusListener(){ public void onFocusCompleted(boolean isSuccess) { } }) // auto calling cancelFocusAndMetering in 5 sec. .setAutoCancelDuration(5, TimeUnit.Second) .build();
Dodano interfejs API dla
CameraControl
, aby uruchamiać i anulować pomiar skupienia:getCameraControl(lensFacing).startFocusAndMetering(action);
getCameraControl(lensFacing).cancelFocusAndMetering();
Dodaliśmy interfejsy API dla fabryk punktów pomiarowych, które pomagają tłumaczyć współrzędne kliknięcia na współrzędne czujnika na podstawie klas widoku:
MeteringPointFactory factory = new TextureViewMeteringPointFactory(textureView);
MeteringPointFactory factory = new DisplayOrientedMeteringPointFactory(context, lensFacing, viewWidth, viewHeight);
Wymuszaj wywoływanie następujących metod w wątku głównym, wysyłając komunikat
IllegalStateException
, jeśli nie są. Przyszłe wersje pozwolą na korzystanie z w innych wątkach i zadbaj o serializację.CameraX.bindToLifecycle()
CameraX.unbind()
CameraX.unbindAll()
ImageAnalysis.setAnalyzer()
ImageAnalysis.getAnalyzer()
ImageAnalysis.removeAnalyzer()
Preview.removePreviewOutputListener()
Preview.getOnPreviewOutputUpdateListener()
Preview.setOnPreviewOutputUpdateListener()
Różne ustawienia konfiguracji akceptują teraz parametry o wartości null, a odpowiednie metody pobierania mogą zwracać wartość null.
Rozwiązanie problemu występującego podczas testowania przy użyciu emulatorów, które nie obsługują ustawień AF/AE/AWB.
Usunięto błąd powodujący błąd rotacji podczas analizowania obrazu.
Naprawiono błąd, który powodował, że podgląd przy uruchomieniu był czarny (brak danych z kamery), po obróceniu lub przełączeniu się między przednim a tylnym aparatem.
Usunęliśmy testy w przypadku wielu równoczesnych zastosowań analizy obrazów. Aby zapewnić zgodność, aplikacje powinny dołączać tylko jeden przypadek użycia analizy jednego obrazu.
Dodano wstępne testy roboelektryczne fałszywych kamer w pakiecie do testowania aparatów (WIP).
Test Camera2Inititalizer został usunięty, ponieważ jego zasięg był niejasny lub wprowadzał w błąd.
Kamera-Kamera2 i rdzenie aparatu w wersji 1.0.0-alfa04
7 sierpnia 2019 r.
androidx.camera:camera-camera2:1.0.0-alpha04
i androidx.camera:camera-core:1.0.0-alpha04
zostały udostępnione. Wersja 1.0.0-alfa04 zawiera te zatwierdzenia.
Nowe funkcje
Zmiany w wyborze współczynnika proporcji i rozdzielczości
Celem aplikacji CameraX jest pomyślne zainicjowanie sesji kamery. Oznacza to, że aparat CameraX narusza proporcje związane z rozdzielczością i formatem obrazu w zależności od możliwości urządzenia, starając się rozpocząć sesję przechwytywania jako pierwszy cel. Dokładne żądania mogą nie być brane pod uwagę. Możliwe przyczyny:
- Urządzenia nieobsługujące żądanej rozdzielczości
- problemy ze zgodnością, np. w przypadku STARSZYCH urządzeń, w przypadku których do prawidłowego działania wymagane jest zastosowanie pewnych rozdzielczości.
- Na niektórych urządzeniach pewne formaty są dostępne tylko dla określonych formatów obrazu
- preferencję dotyczącą „najbliższego mod16” w przypadku kodowania JPEG lub wideo. Zobacz
CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP
Chociaż CameraX tworzy sesję i zarządza nią, zawsze zalecamy zwracanych rozmiarów obrazów na danych wyjściowych przypadku użycia w kodzie i dostosuj odpowiednio się zmienia.
Wprowadziliśmy kilka zmian w ustawianiu rozdzielczości i formatów obrazu, aby zwiększyć przejrzystość interfejsu API:
- Przypadek użycia podglądu jest teraz uważany za domyślny współczynnik proporcji 4:3, gdy nie jest ustawiony żaden inny format.
- Gdy aparat X wewnętrznie uwzględnia zmiany rozdzielczości i formatów obrazu na podstawie możliwości urządzenia, najpierw próbuje utrzymać ten sam współczynnik proporcji (co można określić na podstawie dowolnego z wywołań
setTargetAspectRatio
lubsetTargetResolution
). - Najbliższa mod16 rozdzielczości jest uważana za ten sam współczynnik proporcji.
Tryb nieblokowania analizy obrazu
- Funkcja
ImageReaderMode.ACQUIRE_LATEST_IMAGE
nie blokuje teraz treści. Pobiera najnowszy obraz z kolejki, ale stale odrzuca nieużywane obrazy, aby potok kamery nie mógł go zablokować. - Analizator może przechowywać pojedynczy obraz w nieskończoność bez zawieszania potoku.
- Jeśli aplikacja udostępnia wykonawcy, który następnie blokuje, bloki przypadku użycia ImageAnalysis.
- Domyślny zestaw wykonawcy działa wewnętrznie jako wykonawca nieblokujący.
Poprawki błędów
- Rozwiązano problemy z limitem czasu oczekiwania na zbieżność 3A w przypadku robienia zdjęć na urządzeniach bez autofokusa, automatycznej ekspozycji i automatycznego balansu bieli
- Rozwiązaliśmy problem występujący w przypadku szybkiego robienia zdjęć za pomocą funkcji ImageCapture. Naprawia błąd:
java.lang.IllegalStateException: maxImages (2) has already been acquired
- Rozwiązaliśmy problem, który powodował, że właściwość
setLensFacing
nie była wywoływana w przypadku użycia, która powodowała błądjava.lang.IllegalArgumentException: Unable to get camera ID for use case
. - Rozwiązaliśmy problem, który powodował, że STARSZE urządzenie wymagało określonego formatu obrazu jako maksymalnej rozdzielczości JPEG
- Rozwiązaliśmy problem z uruchamianiem aplikacji w tle podczas uruchamiania aparatu
- Usunięto problem z interfejsem API < 25, usuwam błąd
checkAndUpdateEglState: invalid current EGLDisplay
- Rozwiązanie problemu z usuwaniem powiązania podglądu po włączeniu i uruchomieniu rozszerzeń
- Artefakty kompilacji dla rozszerzeń widoku z kamery i rozszerzeń aparatu są teraz opublikowane w wersji alfa
Kamera-Kamera2 i rdzenie aparatu w wersji 1.0.0-alfa03
2 lipca 2019 r.
androidx.camera:camera-core:1.0.0-alpha03
i androidx.camera:camera-camera2:1.0.0-alpha03
zostały udostępnione. Wersja 1.0.0-alfa03 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Dodano wyjaśnienie do pliku javadoc dotyczące elementu „target” w wywołaniach konfiguracji setTarget
Rdzeń aparatu
- Naprawiono nieskonfigurowaną awarię platformy wejściowej/wyjściowej przy szybkim otwarciu/zamykaniu lub powiązaniu/rozpoczęciu
- Przejdź na nowe implementacje typu Futures
- Poprawki w celu dokładniejszego testowania
- Podstawowy test integracji pokazuje teraz czas robienia zdjęć
- Opracowano wewnętrzną klasę zgodności dla wykonawców
- Test czasu wykonywania obrazów przez aplikację oczekuje na zakończenie poprzedniego poprawa stabilności
Rozszerzenia
- Dodano kontrolę wersji
- Dodatkowy zasięg testów – wywołania zwrotne zdarzeń rozszerzenia
- Ulepszenia wewnętrznie powiązanych zdjęć i metadanych
- Poprawki przełączania trybów w aplikacji testowej
Kamera-Kamera2 i rdzenie aparatu w wersji 1.0.0-alfa02
5 czerwca 2019 r.
androidx.camera:camera-core:1.0.0-alpha02
i androidx.camera:camera-camera2:1.0.0-alpha02
zostały udostępnione. Wersja 1.0.0-alfa02 zawiera te zatwierdzenia.
Poprawki błędów.
- Usunięto problem z elementem div podczas używania emulatora.
- Usunięto błąd NullPointerException/Surface Abandoned, który występował podczas szybkiego robienia zdjęć przy jednoczesnym odłączaniu i ponownym wiązaniu przypadków użycia w niektórych urządzeniach.
- Rozwiązaliśmy problem wewnętrzny, aby aktualizacje próśb o rejestrowanie miały taki sam wpływ na wszystkie platformy
- Większa stabilność podczas ponownego uruchamiania przypadków użycia w nowych instancjach aplikacji
- Wewnętrzne zmiany architektury przygotowujące do obsługi wykonawców obsługujących interfejs API
- Dodatkowe wyjaśnienia w języku Javadoc dotyczące zarządzania klasą i cyklem życia aplikacji CameraX
- Dodano testy zdemonstrowane dla aplikacji do testów wydajności Antelope
- Usuń potrzebę „-keepattributes Signature” w konfiguracji ProGuard aplikacji
Kamera-Aparat2 i rdzeń aparatu 1.0.0-alfa01
7 maja 2019 r.
androidx.camera:camera-core:1.0.0-alpha01
i
androidx.camera:camera-camera2:1.0.0-alpha01
zostały zwolnione. Wersja 1.0.0-alfa01 zawiera te zatwierdzenia.
Cykl życia kamery w wersji 1.0.0-beta11
14 października 2020 r.
Usługa androidx.camera:camera-lifecycle:1.0.0-beta11
została zwolniona. Wersja 1.0.0-beta11 zawiera te zatwierdzenia.
Poprawki błędów
<UseCase>.getTargetRotation()
zwróciSurface.ROTATION_0
jeśli zostanie wywołana przed podłączeniem do instancji kamery, chyba że Wartość targetRotation została ustawiona w konstruktorze lub przypadku użycia. (I80fcd)
Cykl życia kamery w wersji 1.0.0-beta10
23 września 2020 r.
Usługa androidx.camera:camera-lifecycle:1.0.0-beta10
została zwolniona. Wersja 1.0.0-beta10 zawiera te zatwierdzenia.
Poprawki błędów
- Wersja na potrzeby obsługi rdzenia aparatu 1.0.0-beta10
Cykl życia kamery w wersji 1.0.0-beta09
16 września 2020 roku
Usługa androidx.camera:camera-lifecycle:1.0.0-beta09
została zwolniona. Wersja 1.0.0-beta09 zawiera te zatwierdzenia.
Cykl życia kamery w wersji 1.0.0-beta08
19 sierpnia 2020 r.
Usługa androidx.camera:camera-lifecycle:1.0.0-beta08
została zwolniona. Wersja 1.0.0-beta08 zawiera te zatwierdzenia.
Poprawki błędów
- Inicjalizacja nie powinna już ulegać awarii podczas korzystania z kontekstu
, który nie zwraca obiektu Application z poziomu
Context.getApplicationContext()
(I3d3c9, b/160817073)
Cykl życia kamery w wersji 1.0.0-beta07
22 lipca 2020 r.
Usługa androidx.camera:camera-lifecycle:1.0.0-beta07
została zwolniona. Wersja 1.0.0-beta07 zawiera te zatwierdzenia.
Cykl życia kamery w wersji 1.0.0-beta06
24 czerwca 2020 r.
Usługa androidx.camera:camera-lifecycle:1.0.0-beta06
została zwolniona. Wersja 1.0.0-beta06 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Aparat CameraX można teraz skonfigurować za pomocą ProcessCameraProvider#configureInstance() przed wywołaniem ProcessCameraProvider#getInstance(). Umożliwia to dostosowanie the CameraXConfig bez konieczności wdrażania CameraXConfig.Provider w klasie Application aplikacji. (Ia1a8d).
Cykl życia kamery w wersji 1.0.0-beta05
10 czerwca 2020 r.
Usługa androidx.camera:camera-lifecycle:1.0.0-beta05
została zwolniona. Wersja 1.0.0-beta05 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawianie awarii przy uruchamianiu aplikacji podczas inicjowania aplikacji CameraX, gdy telefon jest w trybie Nie przeszkadzać. Pole
InitializationException
zawiera poleCameraUnavailableException
, które zostanie ustawione na wartośćListenableFuture
wyniku inicjalizacji, zamiast powodować awarie aplikacji. (I9909a, b/149413835)
Cykl życia kamery w wersji 1.0.0-beta04
27 maja 2020 r.
Usługa androidx.camera:camera-lifecycle:1.0.0-beta04
została zwolniona. Wersja 1.0.0-beta04 zawiera te zatwierdzenia.
Cykl życia kamery w wersji 1.0.0-beta03
15 kwietnia 2020 roku
Usługa androidx.camera:camera-lifecycle:1.0.0-beta03
została zwolniona. Wersja 1.0.0-beta03 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawiliśmy regresję z wersji beta03, w której wywołanie funkcji
bindToLifecycle()
z zerową wartościąUseCase
powodowało zgłoszenie zgłoszenia. Uniemożliwiło to pobranie elementuCamera
bez powiązaniaUseCase
. - Poprawki do wydania
camera-core
Cykl życia kamery w wersji 1.0.0-beta01
26 lutego 2020 r.
Usługa androidx.camera:camera-lifecycle:1.0.0-beta01
została zwolniona. Wersja 1.0.0-beta01 zawiera te zatwierdzenia.
Poprawki błędów
- Poprawiona dokumentacja, o której należy pamiętać, że po uzyskaniu
ProcessCameraProvider
podczas inicjowania. Konfiguracja domyślna to i że wydłużenie okresuApplication
jest opcjonalne. (I5e395)
Cykl życia kamery w wersji 1.0.0-beta02
Kwiecień 1, 2020
Usługa androidx.camera:camera-lifecycle:1.0.0-beta02
została zwolniona. Wersja 1.0.0-beta02 zawiera te zatwierdzenia.
Poprawki błędów
- Zaktualizowano, aby obejmowała poprawki błędów w artefaktach
camera-camera2:1.0.0-beta02
icamera-core:1.0.0-beta02
.
Cykl życia kamery w wersji 1.0.0-alfa10
10 lutego 2020 r.
Usługa androidx.camera:camera-lifecycle:1.0.0-alpha10
została zwolniona. Wersja 1.0.0-alfa10 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Dodano adnotację
@MainThread
do metod BindToLifecycle oraz usuwanie powiązania i usuwanie powiązań. (I990d2)
Cykl życia kamery w wersji 1.0.0-alfa03
Styczeń 22, 2020
Usługa androidx.camera:camera-lifecycle:1.0.0-alpha03
została zwolniona. Wersja 1.0.0-alfa03 zawiera te zatwierdzenia.
Aktualizacje
- Różne poprawki i aktualizacje dotyczące obsługi Core & Zmiany w Aparacie2.
Cykl życia kamery w wersji 1.0.0-alfa02
18 grudnia 2019 r.
Usługa androidx.camera:camera-lifecycle:1.0.0-alpha02
została zwolniona. Wersja 1.0.0-alfa02 zawiera te zatwierdzenia.
Zmiany zależności
- Zmieniono na
androidx.camera:camera-core:1.0.0-alpha08
.
Cykl życia kamery w wersji 1.0.0-alfa01
4 grudnia 2019
Usługa androidx.camera:camera-lifecycle:1.0.0-alpha01
została zwolniona. Wersja 1.0.0-alfa01 cyklu życia aparatu zawiera te zatwierdzenia
Uwagi dotyczące interfejsu API
- Dodano artefakt cyklu życia kamery, który udostępnia interfejs
LifeCycleCameraProvider
i implementację o nazwieProcessCameraProvider
, która obejmuje wiele funkcji poprzedniej klasy AparatuX i pochodzi z metodygetInstance()
. - Aby korzystać z aparatu CameraX, aplikacje powinny zawierać bibliotekę cyklu życia aparatu.
- Zapoznaj się z uwagami w sekcji na temat rdzeń aparatu, aby dowiedzieć się, jak zainicjować Aparat X przy użyciu
ProcessCameraProvider
.
Rozszerzenia aparatu i widok aparatu w wersji 1.0.0
Wersja 1.0.0-alfa32
15 grudnia 2021 roku
androidx.camera:camera-extensions:1.0.0-alpha32
i androidx.camera:camera-view:1.0.0-alpha32
zostały udostępnione. Wersja 1.0.0-alfa32 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Z klas/interfejsów wewnętrznych usunięto niepotrzebne adnotacje
@RequiresApi(21)
. (I8e286, b/204917951) - Aktualizowanie plików API na potrzeby artefaktu rozszerzenia aparatu. (If683a, b/161377155)
Poprawki błędów
- Nie zezwalaj aplikacji na włączanie trybów rozszerzeń po powiązaniu
VideoCapture
. Rozszerzenia CameraX obsługują tylkoImageCapture
iPreview
. TypVideoCapture
nie jest jeszcze obsługiwany. Jeśli aplikacja przypisze obiektVideoCapture
i włączy dowolny tryb rozszerzenia, zostanie zgłoszonyIllegalArgumentException
. (I0D87B) CameraSelector#filter
nie zgłasza jużIllegalArgumentException
, gdy zbiór wyników jest pusty. (I27804)- Zmieniono nazwę interfejsu
ExtensionsManager#getInstance
API nagetInstanceAsync
, ponieważ zwracany jestListenableFuture
. Sufiks asynchroniczny nazwy funkcji może jasno wskazywać, że jest to funkcja asynchroniczna. (I279d2) - Usuń parametr rozdzielczości z interfejsu API
ExtensionsManager#getEstimatedCaptureLatencyRange
, ponieważ użytkownicy nie wiedzą, jakie rozmiary są obsługiwane w przypadku użycia typuImageCapture
, i nie mogą odróżnić, czy zwrócone informacje o czasie oczekiwania dotyczą maksymalnego rozmiaru wyjściowego przechwytywania czy parametru rozdzielczości wejściowej. (I74bb2). - Przenieś parametr
CameraProvider
funkcjiExtensionsManager
do interfejsu APIgetInstance()
. Dzięki temu użytkownicy nie muszą za każdym razem wpisywać parametruCameraProvider
przy wywoływaniu funkcjiExtensionsManager
. (IC7e48)
Wersja 1.0.0-alfa31
17 listopada 2021 r.
androidx.camera:camera-extensions:1.0.0-alpha31
i androidx.camera:camera-view:1.0.0-alpha31
zostały udostępnione. Wersja 1.0.0-alfa31 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Do publicznego interfejsu API dodano CameraSelector#filter, aby filtrować listę obiektów CameraInfos na podstawie selektora CameraSelector. (I105d0)
Poprawki błędów
- Usunięto awarię, która powodowała szybkie przełączanie trybu rozszerzeń na niektórych urządzeniach. (Iebbef)
Wersja 1.0.0-alfa30
13 października 2021 r.
androidx.camera:camera-extensions:1.0.0-alpha30
i androidx.camera:camera-view:1.0.0-alpha30
zostały udostępnione. Wersja 1.0.0-alfa30 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Dodano adnotację @WymagajApi(21) do wszystkich klas CameraX i usunięto minSdkVersion z pliku AndroidManifest.xml. Dzięki temu rdzenia kamery, którą można łatwo zintegrować z aplikacjami Parametr minSdkVersion jest mniejszy niż 21, ale chcesz warunkowo używać ścieżek kodu które korzystają z interfejsu API w wersji 21 lub nowszej. Dla każdej aplikacji, w której minSdkVersion w wersji 21 lub nowszej, ta zmiana nie wymaga żadnych działań. (Ie7f2e, b/200599470)
Poprawki błędów
- Rozwiązaliśmy problem z błędem AbstractMethodError, który występuje po włączeniu ProGuard. (Iae468, b/201177844)
Wersja 1.0.0-alfa29
29 września 2021 r.
androidx.camera:camera-extensions:1.0.0-alpha29
i androidx.camera:camera-view:1.0.0-alpha29
zostały udostępnione. Wersja 1.0.0-alfa29 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Adnotacja ExperimentalUseCaseGroup została usunięta, ponieważ interfejsy API nie są już eksperymentalne. (I01ef5).
- usuń
RotationProvider#removeAllListeners()
. Zamiast niej używaj elementuRotationProvider#removeListener(...)
. (Id9d4a) - Zaktualizowano klasę RotationReceiver: zmieniono set/clear Listener na add/remove/removeAll, usunięto odmianę setListener, która domyślnie korzysta z wątku głównego, oraz dodano adnotacje dotyczące metod. (IB1669).
Poprawki błędów
- Nazwa ExtensionMode#BEAUTY została zmieniona na FACE_RETOUCH, aby poprawnie prezentować działania wykonywane przez tryb rozszerzenia. (I61f54, b/198515274)
- Rozwiązaliśmy problem z nieoczekiwanym zamykaniem kamery w przypadku użycia wielu kontrolera CameraController i funkcji PreviewView w jednej aktywności. (Ibfd18, b/197539358)
Wersja 1.0.0-alfa28
18 sierpnia 2021 r.
androidx.camera:camera-extensions:1.0.0-alpha28
i androidx.camera:camera-view:1.0.0-alpha28
zostały udostępnione. Wersja 1.0.0-alfa28 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Adnotacja ExperimentalUseCaseGroupLifecycle została usunięta, ponieważ interfejsy API nie są już eksperymentalne. (I17b85)
- zrefaktoryzowała RotationListener i zmieniła nazwę tego obiektu na RotationProvider. Nadal zapewnia te same funkcje, ale z nieco innym interfejsem API. (Idffc5)
- zmień nazwę TAP_TO_FOCUS_UNsuccessFUL na TAP_TO_FOCUS_NOT_FOCUSED i TAP_TO_FOCUS_successFUL na TAP_TO_FOCUS_FOCUSED. Wynik ostatecznego rozmiaru wyjściowego (I099fa)
Poprawki błędów
- Usunięto wycofane klasy
<EffectName><UseCase>Extender
, ExtensionsErrorListener i powiązane interfejsy API ExtensionsManager. (I3b8c3).
Wersja 1.0.0-alfa27
21 lipca 2021 r.
androidx.camera:camera-extensions:1.0.0-alpha27
i androidx.camera:camera-view:1.0.0-alpha27
zostały udostępnione. Wersja 1.0.0-alfa27 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Przeniesienie interfejsu API widocznego obszaru z eksperymentu. Usuń adnotację eksperymentalną interfejsu API. (I717ea)
- Zmieniono nazwę
CoordinateTransform#getTransform
naCoordinateTransform#transform
i zaktualizuję dokument JavaDoc (I864ae).
Poprawki błędów
- Rozwiązaliśmy problem z rozciąganiem się trybu
PreviewView PERFORMANCE
, gdy był używany razem z interfejsem tworzenia wiadomości. (IE1137, b/183864890)
Wersja 1.0.0-alfa26
30 czerwca 2021 r.
androidx.camera:camera-extensions:1.0.0-alpha26
i androidx.camera:camera-view:1.0.0-alpha26
zostały udostępnione. Wersja 1.0.0-alfa26 zawiera te zatwierdzenia.
Zmiany interfejsu API
- dodaj nową metodę
CameraController#getTapToFocusState()
, która ukazuje najnowszy wynik dotknięcia ekranu. (Iaccb0). - Dodanie do komponentu CameraController kolejnych funkcji podstawowych: pobieranie/nastawców dla docelowego współczynnika proporcji, docelowej rozdzielczości, trybu nagrywania, elementu CameraControl i niestandardowych wykonawców. (IEA8f2)
- dodaj klasę RotationReceiver, która otrzymuje zmiany w rotacji powierzchni. Pozwala ustawić obrót docelowy, gdy urządzenie ma stałą orientację pionową lub poziomą. (IB278f)
- Udostępniono nowe publiczne interfejsy API getEstimateCaptureLatencyRange w klasie ExtensionsManager. (I6a8ec),
- Wycofano ExtensionsErrorListener. Obecnie ten interfejs służy wyłącznie do sprawdzania, czy po włączeniu trybów rozszerzeń nie ma funkcji Podgląd lub Przechwytywanie obrazów. CameraX automatycznie udostępni dodatkowe funkcje podglądu lub przechwytywania obrazu, aby funkcje rozszerzenia działały prawidłowo. Od tego momentu żadne błędy nie będą zgłaszane. (I47d9e)
- Udostępniono nowe publiczne interfejsy API rozszerzenia ExtensionsManager getInstance, isExtensionAvailable i getExtensionEnabledCameraSelector oraz wycofane klasy i powiązane z nimi interfejsy API
<EffectName><UseCase>Extender
. (I329e6)
Wersja 1.0.0-alfa25
2 czerwca 2021 r.
androidx.camera:camera-extensions:1.0.0-alpha25
i androidx.camera:camera-view:1.0.0-alpha25
zostały udostępnione. Wersja 1.0.0-alfa25 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Interfejsy ExperimentalCameraFilter API nie są już eksperymentalne i przekształcić je w formalne interfejsy API. Można ich używać bez adnotacji. (I4Bc94)
- Dodaj narzędzie, które przekształca współrzędne między przypadkami użycia. Przykład użycia: przekształcenie współrzędnych wykrytych w przypadku analizy obrazu i wyróżnienie wykrytego obiektu na podglądzie. (I63ab1, b/137515129)
- Użytkownik
CameraView
został usunięty. PoleCameraView
zostało zastąpione elementemCameraController
. Informacje o tym, jak to zrobić, znajdziesz w przewodniku po migracji. (Id5005).
Poprawki błędów
- Tekst
ExperimentalUseCaseGroupLifecycle
został zamieniony naExperimentalUseCaseGroup
(I3b2ef, b/159033688)
Wersja 1.0.0-alfa24
21 kwietnia 2021 r.
androidx.camera:camera-extensions:1.0.0-alpha24
i androidx.camera:camera-view:1.0.0-alpha24
zostały udostępnione. Wersja 1.0.0-alfa24 zawiera te zatwierdzenia.
Poprawki błędów
- Zastąpiono adnotację
@Experimental
o nazwie@RequiresOptIn
dla eksperymentalnych interfejsów API. Do wywoływania eksperymentalnych interfejsów API używaj interfejsuandroidx.annotation.OptIn
zamiast wycofanegoandroidx.annotation.experimental.UseExperimental
. (Iff226). - Usunięto rozciągnięty problem z podglądem podglądu w telefonie Samsung J5 Prime (Ib10b6)
Rozszerzenia do aparatu Wyświetl wersję 1.0.0-alfa23
24 marca 2021 r.
androidx.camera:camera-extensions:1.0.0-alpha23
i androidx.camera:camera-view:1.0.0-alpha23
zostały udostępnione. Wersja 1.0.0-alfa23 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Interfejs CameraView jest wycofywany. Zamiast niej używaj elementu
LifecycleCameraController
. Zapoznaj się z przewodnikiem po migracji (Idac2c). - Dodano adnotację FloatRange do funkcji setLinearZoom() (I69971).
Poprawki błędów
- Przypięto zależności widoku kamery, aby opierać się na artefaktach w wersji 1.0.0. W zależności od widoku z kamery nie będzie już powodować zależności Gradle do automatycznego uaktualniania rdzeń aparatu, aparatów i kamer2 w cyklu życia aparatu do najnowszych artefaktów w wersji 1.1.0, chociaż widok nadal zgodne z tymi artefaktami, jeśli są wyraźnie ustawione do używania 1.1.0 (Ic8fa1, b/181599852)
- Poprawiono rozciągnięty podgląd Samsung A3 w PodglądView. (IAcb30, b/180121821)
- Rozwiązaliśmy problem, który powodował, że nie można było ustawić selektora aparatu przed jego zainicjowaniem. (IC8bd0)
Rozszerzenia do aparatu Wyświetl wersję 1.0.0-alfa22
24 lutego 2021 r.
androidx.camera:camera-extensions:1.0.0-alpha22
i androidx.camera:camera-view:1.0.0-alpha22
zostały udostępnione. Wersja 1.0.0-alfa22 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Dodaje obiekt CameraInfo do elementu CameraController. (Ib8138, b/178251727)
Poprawki błędów
- Poprawiono detektor RozszerzeniaErrorListener, który zgłaszał błędy, gdy powiązany był tylko podgląd lub przechwytywanie obrazów. (I5ae39).
Rozszerzenia do aparatu Wyświetl wersję 1.0.0-alfa21
27 stycznia 2021 r.
androidx.camera:camera-extensions:1.0.0-alpha21
i androidx.camera:camera-view:1.0.0-alpha21
zostały udostępnione. Wersja 1.0.0-alfa21 zawiera te zatwierdzenia.
Publikowanie z myślą o obsłudze innych artefaktów z biblioteki aparatu.
Rozszerzenia do aparatu Wyświetl wersję 1.0.0-alfa20
16 grudnia 2020 roku
androidx.camera:camera-extensions:1.0.0-alpha20
i androidx.camera:camera-view:1.0.0-alpha20
zostały udostępnione. Wersja 1.0.0-alfa20 zawiera te zatwierdzenia.
Publikowanie z myślą o obsłudze innych artefaktów z biblioteki aparatu.
Rozszerzenia aparatu Wersja widoku aparatu 1.0.0-alfa19
11 listopada 2020 roku
androidx.camera:camera-extensions:1.0.0-alpha19
i androidx.camera:camera-view:1.0.0-alpha19
zostały udostępnione. Wersja 1.0.0-alfa19 zawiera te zatwierdzenia.
Poprawki błędów
- Adnotacja
@ExperimentalVideo
została wprowadzona w widoku z kamery. Ta adnotacja oznacza interfejsy API, które udostępniają eksperymentalne funkcje wideo może się zmienić w miarę rozwoju funkcji. Dowolne metoda korzystająca z tych interfejsów API powinna używać adnotacji@UseExperimental
zExperimentalVideo
jakomarkerClass
. (I6d729)
Rozszerzenia aparatu w wersji 1.0.0-alfa18
14 października 2020 r.
Usługa androidx.camera:camera-extensions:1.0.0-alpha18
została zwolniona. Wersja 1.0.0-alfa18 zawiera te zatwierdzenia.
Poprawki błędów
- Poprawiono czas oczekiwania na inicjowanie aplikacji CameraX bindToLifecycle (I61dc5)
<UseCase>.getTargetRotation()
zwróciSurface.ROTATION_0
jeśli zostanie wywołana przed podłączeniem do instancji kamery, chyba że Wartość targetRotation została ustawiona w konstruktorze lub przypadku użycia. (I80fcd)
Widok z aparatu w wersji 1.0.0-alfa18
14 października 2020 r.
Usługa androidx.camera:camera-view:1.0.0-alpha18
została zwolniona. Wersja 1.0.0-alfa18 zawiera te zatwierdzenia.
Publikowanie z myślą o obsłudze innych artefaktów z biblioteki aparatu.
Rozszerzenia aparatu w wersji 1.0.0-alfa17
23 września 2020 r.
Usługa androidx.camera:camera-extensions:1.0.0-alpha17
została zwolniona. Wersja 1.0.0-alfa17 zawiera te zatwierdzenia.
Poprawki błędów
- Wersja na potrzeby obsługi rdzenia aparatu 1.0.0-beta10
Widok z aparatu w wersji 1.0.0-alfa17
23 września 2020 r.
Usługa androidx.camera:camera-view:1.0.0-alpha17
została zwolniona. Wersja 1.0.0-alfa17 zawiera te zatwierdzenia.
Poprawki błędów
- Wersja na potrzeby obsługi rdzenia aparatu 1.0.0-beta10
Rozszerzenia aparatu w wersji 1.0.0-alfa16
16 września 2020 roku
Usługa androidx.camera:camera-extensions:1.0.0-alpha16
została zwolniona. Wersja 1.0.0-alfa16 zawiera te zatwierdzenia.
Poprawki błędów
- W metodzie
ExtensionsManager
dodano metodę pobierania obiektuExtensions
która służy do włączania rozszerzeń i wysyłania zapytań w wystąpieniach aparatu (I4fb7e)
Widok z aparatu w wersji 1.0.0-alfa16
16 września 2020 roku
Usługa androidx.camera:camera-view:1.0.0-alpha16
została zwolniona. Wersja 1.0.0-alfa16 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Usunięto:
PreviewView#setDeviceRotationForRemoteDisplayMode()
iPreviewView#getDeviceRotationForRemoteDisplayMode()
. Dwie metody umożliwiają dostosowanie rotacji podglądu, gdy pożądana rotacja nie jest związana z obrotem wyświetlacza, np. wyświetlacza zdalnego. Aby teraz obsługiwać obrót podglądu w innych miejscach, ustaw odpowiednią rotację za pomocą właściwościPreview#setTargetRotation()
i nowo dodanego elementuPreviewView#getViewPort(targetRotation)
. (IB62cc) - Nazwa
createSurfaceProvider()
została zmieniona nagetSurfaceProvider()
. Metoda zawsze zwraca tę samą instancję Preview.SurfaceProvider. (Iff83c).
Poprawki błędów
- Wymuszone jest użycie w podglądzie właściwości TextureView, jeśli włączony jest efekt rozszerzenia, a implementacja biblioteki dostawcy musi wykonać specjalny proces na powierzchni wyjściowej. (I0c3cc).
- Zezwalaj na dowolną rotację docelową w wersji testowej. Informacje o przekształceniu są obliczane i zwracane użytkownikowi na bieżąco przez nowe wywołanie zwrotne
TranformationInfoListener
. (I21470)
Znane problemy
- W widoku podglądu obiekt
OnClickListener#onClick()
nie jest wywoływany, gdy użytkownik kliknie PreviewView. Zdarzenie dotknięcia jest błędnie przetwarzane przez funkcję PreviewView#onTouchEvent(). Problem zostanie naprawiony w następnej wersji. - Wartość MeteringPoint uzyskana z
PreviewView#getMeteringPointFactory()
może być nieprawidłowa, jeśli z funkcją PreviewView używany jest obiekt ViewPort.
Rozszerzenia aparatu w wersji 1.0.0-alfa15
19 sierpnia 2020 r.
Usługa androidx.camera:camera-extensions:1.0.0-alpha15
została zwolniona. Wersja 1.0.0-alfa15 zawiera te zatwierdzenia.
Poprawki błędów
- Metoda
ExtensionsManager.init()
pobiera teraz Kontekst jako parametr zamiast 0 argumentów. (Ife754). Inicjalizacja nie powinna już ulegać awarii podczas korzystania z kontekstu , który nie zwraca obiektu Application z
Context.getApplicationContext()
. (I3d3c9, b/160817073)Widok z aparatu w wersji 1.0.0-alfa15
19 sierpnia 2020 r.
Usługa androidx.camera:camera-view:1.0.0-alpha15
została zwolniona. Wersja 1.0.0-alfa15 zawiera te zatwierdzenia.
Poprawki błędów
DisplayOrientedMeteringPointFactory
ma:CameraInfo
instancji zamiastCameraSelector
, więc istnieje bezpośrednie mapowanie dla którego aparatu fabryka będzie generować punkty. Wszystkie zajęcia które używająDisplayOrientedMeteringPointFactory
również przyjmująCameraInfo
instancję zamiastCameraSelector
. (I400C1)- Użytkownik
TextureViewMeteringPointFactory
został usunięty.PreviewView
udostępnia publiczny interfejs API (createMeteringPointFactory()
) do tworzenia fabryki punktu pomiaru niezależnie od tego, czy używaTextureView
, czySurfaceView
. (Ide693). - zmień nazwę trybów implementacji podglądu
SURFACE_VIEW
/TEXTURE_VIEW
naPERFORMANCE
/COMPATIBLE
.PERFORMANCE
to stary trybSURFACE_VIEW
, aCOMPATIBLE
to stary trybTEXTURE_VIEW
. (I0EDc2). - W przypadku przechwytywania obrazu zastąp flagę „odwróć w poziomie” w metadanych odpowiednio do kierunku aparatu. (I28499)
Rozszerzenia aparatu w wersji 1.0.0-alfa14
22 lipca 2020 r.
Usługa androidx.camera:camera-extensions:1.0.0-alpha14
została zwolniona. Wersja 1.0.0-alfa14 zawiera te zatwierdzenia.
Widok z aparatu w wersji 1.0.0-alfa14
22 lipca 2020 r.
Usługa androidx.camera:camera-view:1.0.0-alpha14
została zwolniona. Wersja 1.0.0-alfa14 zawiera te zatwierdzenia.
Rozszerzenia aparatu w wersji 1.0.0-alfa13
24 czerwca 2020 r.
Usługa androidx.camera:camera-extensions:1.0.0-alpha13
została zwolniona. Wersja 1.0.0-alfa13 zawiera te zatwierdzenia.
Poprawki błędów
- Dodaliśmy eksperymentalne interfejsy do filtrowania kamer według aparatu. ID and CameraFeatures. (I28f61)
Widok z aparatu w wersji 1.0.0-alfa13
24 czerwca 2020 r.
Usługa androidx.camera:camera-view:1.0.0-alpha13
została zwolniona. Wersja 1.0.0-alfa13 zawiera te zatwierdzenia.
Poprawki błędów
- CameraView nie ulega już awarii w przypadku wyjątku IllegalArgumentException gdy jest powiązany z właścicielem cyklu życia, którego cykl życia jest przenoszony do ZNISZONEGO wkrótce po powiązaniu. Powiązanie cykli życia w stanie USUNIĘCIA nie będzie próbował otworzyć aparatu. (I7c2b8).
- Komponent PreviewView StreamState jest teraz dostępny przez CameraView.getPreviewStreamState() (I21a2b),
Rozszerzenia aparatu w wersji 1.0.0-alfa12
10 czerwca 2020 r.
Usługa androidx.camera:camera-extensions:1.0.0-alpha12
została zwolniona. Wersja 1.0.0-alfa12 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawianie awarii przy uruchamianiu aplikacji podczas inicjowania aplikacji CameraX, gdy telefon jest w trybie Nie przeszkadzać. Pole
InitializationException
zawiera poleCameraUnavailableException
, które zostanie ustawione na wartośćListenableFuture
wyniku inicjalizacji, zamiast powodować awarie aplikacji. (I9909a, b/149413835)
Widok z aparatu w wersji 1.0.0-alfa12
10 czerwca 2020 r.
Usługa androidx.camera:camera-view:1.0.0-alpha12
została zwolniona. Wersja 1.0.0-alfa12 zawiera te zatwierdzenia.
Poprawki błędów
- Dodaj interfejs API
PreviewView#getBitmap()
, który zwraca reprezentację bitmapy treści wyświetlanej na platformie podglądu. (I9b500, b/157659818)
Rozszerzenia aparatu w wersji 1.0.0-alfa11
27 maja 2020 r.
Usługa androidx.camera:camera-extensions:1.0.0-alpha11
została zwolniona. Wersja 1.0.0-alfa11 zawiera te zatwierdzenia.
Widok z aparatu w wersji 1.0.0-alfa12
10 czerwca 2020 r.
Usługa androidx.camera:camera-view:1.0.0-alpha12
została zwolniona. Wersja 1.0.0-alfa12 zawiera te zatwierdzenia.
Nowe funkcje
Zmiany interfejsu API
Poprawki błędów
- Dodaj interfejs API
PreviewView#getBitmap()
, który zwraca reprezentację bitmapy treści wyświetlanej na platformie podglądu. (I9b500, b/157659818)
Widok z aparatu w wersji 1.0.0-alfa11
27 maja 2020 r.
Usługa androidx.camera:camera-view:1.0.0-alpha11
została zwolniona. Wersja 1.0.0-alfa11 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Dodaj interfejs
PreviewView#getPreviewStreamState
API, który pozwala aplikacjom sprawdzać, czy podgląd jest przesyłany strumieniowo. Kiedy podgląd jest w trybie TEXTURE_VIEW, a w trybie STREAMING gwarantuje też widoczność obrazu podglądu. (IC0906, b/154652477) - Dodano interfejs API
PreviewView#setDeviceRotationForRemoteDisplayMode()
, który umożliwia obrót urządzenia podczas obliczeń przekształceń, jeśli aplikacja działa w trybie wyświetlania zdalnego. (I59b95, b/153514525)
Poprawki błędów
- Rozwiązaliśmy problem ze zniekształceniami w podglądzie w kamerach
FULL/LIMITED/LEVEL_3
z Androidem 7.0 i starszymi. Wymuszone korzystanie z trybuImplementationMode#TEXTURE_VIEW
w przypadku Androida w wersji 7.0 lub starszej. (I83e30, b/155085307) - Parametr
CameraInfo
został usunięty z elementuPreviewView#createSurfaceProvider()
.PreviewView
pobiera teraz go wewnętrznie zSurfaceRequest
. (If18f0, b/154652477) - Naprawiono domyślny współczynnik proporcji przechwytywania obrazu w kamerze 16:9. (Ie6a7b, b/153237864)
- Napraw problemy z czarnym ekranem (
PreviewView
) po przesunięciu fragmentuPreview
po przesunięciu z powrotem w ViewPager2. Rozwiązaliśmy też problem, gdyremoveView(previewview)
, a potemaddView(previewView)
. (Iab555, b/149877652, b/147354615) - Zaktualizuj interfejs API
CameraView#takePicture()
, aby umożliwić zapisywanie obrazów w usługachUri
iOutputStream
. Zaktualizuj aplikację testową, tak aby używała przykładu wersji kanonicznejUri
. (Ia2459, b/153607583) - Typ skali podglądu Podglądu możesz ustawić z układu XML, ustawiając atrybut
ScaleType
. (I08565, b/153015659) CameraView.ScaleType
został(a) usunięty(a). Zamiast tego użyjPreviewView.ScaleType
, aby ustawić lub pobrać typ wagi za pomocą CameraView. (Ia8974, b/153014831)- Domyślnie nadaj
PreviewView
kolor tła, jeśli jeszcze go nie ma. Dzięki temu treści, które się za nią znajdują, nie będą widoczne, zanim rozpocznie się strumień podglądu. (I09fad)
Rozszerzenia aparatu w wersji 1.0.0-alfa10
15 kwietnia 2020 roku
Usługa androidx.camera:camera-extensions:1.0.0-alpha10
została zwolniona. Wersja 1.0.0-alfa10 zawiera te zatwierdzenia.
Poprawki błędów
- Poprawki umożliwiające wydanie platformy Camera-Core
Widok z aparatu w wersji 1.0.0-alfa10
15 kwietnia 2020 roku
Usługa androidx.camera:camera-view:1.0.0-alpha010
została zwolniona. Wersja 1.0.0-alpha010 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawia poprzedni znany problem polegający na tym, że na niektórych urządzeniach implementacja za pomocą EarthView w
PreviewView
nie działała prawidłowo na niektórych urządzeniach i spowodowała awarię aplikacji po wznowieniu podglądu. (I5ed6b).
Rozszerzenia aparatu w wersji 1.0.0-alfa09
Kwiecień 1, 2020
Usługa androidx.camera:camera-extensions:1.0.0-alpha09
została zwolniona. Wersja 1.0.0-alfa09 zawiera te zatwierdzenia.
Poprawki błędów
- Zaktualizowano, aby zapewnić obsługę poprawek błędów w artefaktach
camera-camera2:1.0.0-beta02
,camera-core:1.0.0-beta02
icamera-lifecycle:1.0.0-beta02
Wersja widoku aparatu 1.0.0-alfa09
Kwiecień 1, 2020
Usługa androidx.camera:camera-view:1.0.0-alpha09
została zwolniona. Wersja 1.0.0-alfa09 zawiera te zatwierdzenia.
Znane problemy
- Korzystanie z
ImplementationMode.SURFACE_VIEW
z elementemPreviewView
może nie działać dobrze na niektórych urządzeniach. Dzieje się tak, ponieważ obiektSurfaceView
używany do podglądu unieważnia jego powierzchnię po zatrzymaniu cyklu życia okna, po ponownym uruchomieniu kamera jest ponownie otwierana i może próbować wznowić podgląd, zanim powierzchnia elementuSurfaceView
będzie znów dostępna. Na razie należy używaćImplementationMode.TEXTURE_VIEW
.
Zmiany interfejsu API
- Nazwa
PreviewView.setImplementationMode()
została zmieniona naPreviewView.setPreferredImplementationMode()
. - Nazwa
PreviewView.getImplementationMode()
została zmieniona naPreviewView.getPreferredImplementationMode()
. - Zastąpiono
PreviewView.getSurfaceProvider()
przezPreviewView.createSurfaceProvider(CameraInfo)
. W tym celu przy użyciu instancjiCameraInfo
z wartością null stosowaną w celu optymalizacji podglądu przy użyciu w miarę możliwościImplementationMode.SURFACE_VIEW
. Jeśli zostanie przekazana instancja o wartości null lub ustawisz preferowany tryb implementacji naImplementationMode.TEXTURE_VIEW
, interfejsImplementationMode.TEXTURE_VIEW
będzie używany wewnętrznie. Poniższy przykładowy kod pokazuje, jak przypadek użycia podglądu był wcześniej używany w PodglądView.
preview.setSurfaceProvider(previewView.previewSurfaceProvider) cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview)
W tej chwili możesz napisać:
val camera = cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview) previewView.preferredImplementationMode = ImplementationMode.TEXTURE_VIEW preview.setSurfaceProvider(previewView.createSurfaceProvider(camera.cameraInfo))
Adnotacja
@UiThread
została dodana do elementuPreviewView.getSurfaceProvider()
, co oznacza, że należy ją wywoływać z wątku głównego. (I192f3).Dodano element
PreviewView.setScaleType()
, który umożliwia ustawienie typu skali podglądu. Akceptuje ona jedną z wartości w kolumniePreviewView.ScaleType
i przyjmuje domyślnie wartośćPreviewView.ScaleType.FILL_CENTER
.Dodano
PreviewView.getScaleType()
.Wyłączyliśmy możliwość ustawiania trybu implementacji
PreviewView
w układzie XML przy użyciu atrybutuimplementationMode
.Dodaj interfejs API
createMeteringPointFactory()
do elementu PreviewView, aby umożliwić konwersję (x, y) w poluPreviewView
na formatMeteringPoint
. (IB36d7)
Poprawki błędów
- Naprawiono sytuacje, w których po zmianie rozmiaru elementu
PreviewView
wyświetlany jest nieprawidłowy podgląd. (I71101)
Rozszerzenia aparatu w wersji 1.0.0-alfa08
26 lutego 2020 r.
Usługa androidx.camera:camera-extensions:1.0.0-alpha08
została zwolniona. Wersja 1.0.0-alfa08 zawiera te zatwierdzenia.
Widok z aparatu w wersji 1.0.0-alfa08
26 lutego 2020 r.
Usługa androidx.camera:camera-view:1.0.0-alpha08
została zwolniona. Wersja 1.0.0-alfa08 zawiera te zatwierdzenia.
Poprawki błędów
- Zastąpiono:
ListenableFuture
na urządzeniuSurfaceRequest.provideSurface()
zExecutor
iCallback
. Ten upraszcza interfejs API, nie wymagając już obsługi wyjątkówprovideSurface()
i egzekwuje, że wywołanie zwrotneprovideSurface()
nie może mogą zostać anulowane. Ma to na celu zapobieganie awariom na starszych urządzeniach spowodowanych przez przedwczesne uwalnianie powierzchni. ObiektSurfaceRequest.Result
jest teraz używany do śledzenia, jakSurfaceRequest
korzysta z podanegoSurface
. (I7854B) - Nazwa
SurfaceRequest.setSurface(Surface)
została zmieniona naSurfaceRequest.provideSurface(Surface)
iSurfaceRequest.setWillNotComplete()
dlaSurfaceRequest.willNotProvideSurface()
(I224fe) - Naprawiono inicjowanie wariantów aplikacji z włączoną funkcją ProGuard przez zachowanie
flagę określającą domyślnego dostawcę
CameraXConfig
. (I2d6c1)
Rozszerzenia aparatu w wersji 1.0.0-alfa07
10 lutego 2020 r.
Usługa androidx.camera:camera-extensions:1.0.0-alpha07
została zwolniona. Wersja 1.0.0-alfa07 zawiera te zatwierdzenia.
Poprawki błędów
- Argumenty przekazane wcześniej w funkcjach
ImageCapture.OnImageSavedCallback.onError()
iImageCapture.OnImageCapturedCallback.onError()
zostały zastąpione pojedynczym argumentemImageCaptureException
, który nadal zawiera wszystkie informacje przekazane wcześniej. - Argument pliku przekazany wcześniej w funkcji
ImageCapture.OnImageSavedCallback.onImageSaved()
został usunięty. (I750d2)
Widok z aparatu w wersji 1.0.0-alfa07
10 lutego 2020 r.
Usługa androidx.camera:camera-view:1.0.0-alpha07
została zwolniona. Wersja 1.0.0-alfa07 zawiera te zatwierdzenia.
Zmiany interfejsu API
- Implementacja
TextureView
wPreviewView
ustawia teraz rozmiar elementuTextureView
na rozmiar wyjściowy czujnika aparatu, a następnie przeskaluje go tak, aby wypełnić element nadrzędnyPreviewView
. Jeśli chcesz, aby podgląd z aparatu wypełniał całą część interfejsu (np. cały ekran), nie ustawiaj stałej wartości rozmiaru elementuPreviewView
ani nie zawijaj treści (np. za pomocą atrybutu „wrap_content
”), może to spowodować, że podgląd z aparatu wypełni tylko część obszaruPreviewView
(jeśli obraz wyjściowy czujnika jest mniejszy). Zamiast tego ustawPreviewView
tak duży jak jego element nadrzędny (np. za pomocą atrybutu „match_parent
”). (1204869)
Poprawki błędów
- Zaktualizowano
ImageCapture
, aby zezwolić na zapisywanie obrazów w usługachUri
iOutputStream
. Połączono przeciążonetakePicture
metody w jedną. Zaktualizowaliśmy aplikację testową, aby używała przykładu wersji kanonicznejUri
. (Ia3bec). - Nazwa konta
Preview.PreviewSurfaceProvider
została zmieniona naPreview.SurfaceProvider
.SurfaceProvider
nie wymagają już od programistów tworzenia własnych obiektówListenableFuture
, a polecenieSurface
odbywa się teraz za pomocą nowego obiektuSurfaceRequest
. MetodaPreview.getPreviewSurfaceProvider()
została usunięta z powodu nieprawidłowego użycia, gdy klasaPreview
jest sparowana z innymi klasami, takimi jakPreviewView
. (I20105). - Argumenty przekazane wcześniej w funkcjach
ImageCapture.OnImageSavedCallback.onError()
iImageCapture.OnImageCapturedCallback.onError()
zostały zastąpione pojedynczym argumentemImageCaptureException
, który nadal zawiera wszystkie informacje przekazane wcześniej. - Argument pliku przekazany wcześniej w funkcji
ImageCapture.OnImageSavedCallback.onImageSaved()
został usunięty. (I750d2) - Interfejs API został zaktualizowany z użyciem metod
getZoomRatio()
,getMaxZoomRatio()
,getMinZoomRatio()
igetLinearZoom()
scalaniaCameraInfo
wgetZoomState()
, które zwraca instancjęZoomState
. (IB19fe)
Rozszerzenia aparatu w wersji 1.0.0-alfa06
Styczeń 22, 2020
Usługa androidx.camera:camera-extensions:1.0.0-alpha06
została zwolniona. Wersja 1.0.0-alfa06 zawiera te zatwierdzenia.
Aktualizacje
- Różne poprawki i aktualizacje dotyczące obsługi Core & Zmiany w Aparacie2.
Widok z aparatu w wersji 1.0.0-alfa06
Styczeń 22, 2020
Usługa androidx.camera:camera-view:1.0.0-alpha06
została zwolniona. Wersja 1.0.0-alfa06 zawiera te zatwierdzenia.
Aktualizacje
- Różne poprawki i aktualizacje dotyczące obsługi Core & Zmiany w Aparacie2.
Rozszerzenia aparatu w wersji 1.0.0-alfa05
18 grudnia 2019 r.
Usługa androidx.camera:camera-extensions:1.0.0-alpha05
została zwolniona. Wersja 1.0.0-alfa05 zawiera te zatwierdzenia.
Poprawki błędów
- Zaktualizowano, aby pasowała do wewnętrznych interfejsów API aparatu.
Widok z aparatu w wersji 1.0.0-alfa05
18 grudnia 2019 r.
Usługa androidx.camera:camera-view:1.0.0-alpha05
została zwolniona. Wersja 1.0.0-alfa05 zawiera te zatwierdzenia.
Znane problemy
- Podczas korzystania z PodglądView format obrazu może być nieprawidłowy (b/146215202).
Nowe funkcje
- Wdrożyliśmy nową klasę o nazwie
PreviewView.TextureViewImplementation
, która synchronizuje cykl życia SurfaceTexture z wykorzystaniem powierzchni obiektu TextureView przez aparat.
Rozszerzenia aparatu w wersji 1.0.0-alfa04
4 grudnia 2019
Usługa androidx.camera:camera-extensions:1.0.0-alpha04
została zwolniona. Wersja 1.0.0-alfa04 rozszerzeń aparatu zawiera te zatwierdzenia
Zmiany interfejsu API
Sprawdzanie dostępności i włączanie rozszerzenia wykorzystuje teraz jako parametr wejściowy
CameraSelector
. Musi to być ten sam elementCameraSelector
, który jest używany do wiązania przypadku użycia.val cameraSelector = CameraSelector.DEFAULT_BACK_CAMERA val builder = ImageCapture.Builder() val bokehImageCaptureExtender = BokehImageCaptureExtender.create(builder) if (bokehImageCaptureExtender.isExtensionAvailable(cameraSelector)) { bokehImageCaptureExtender.enableExtension(cameraSelector) } val imageCapture = builder.build() mCameraProvider?.bindToLifecycle(this, cameraSelector, imageCapture)
Zanim zaczniesz korzystać z biblioteki rozszerzeń, musisz zainicjować rozszerzenia.
val availability = ExtensionsManager.init() Futures.addCallback<ExtensionsManager.ExtensionsAvailability>( availability, object : FutureCallback<ExtensionsManager.ExtensionsAvailability> { override fun onSuccess(availability: ExtensionsManager.ExtensionsAvailability?) { // Ready to make extensions calls } override fun onFailure(throwable: Throwable) { // Extensions could not be initialized } }, Executors.newSingleThreadExecutor() )
Widok z aparatu w wersji 1.0.0-alfa04
4 grudnia 2019
Usługa androidx.camera:camera-view:1.0.0-alpha04
została zwolniona. Wersja 1.0.0-alfa04 widoku z aparatu zawiera te zatwierdzenia
Zmiany interfejsu API
- Udostępniona jest klasa
PreviewView
, która ułatwia wyświetlanie danych wyjściowych z przypadku użycia wersji testowej w aplikacji. Element
PreviewView
można uwzględnić w układzie:<androidx.camera.view.PreviewView android:id="@+id/preview_view" … />
PreviewView
udostępnia elementPreviewSurfaceProvider
umożliwiający łatwe połączenie z przypadkiem użycia w wersji testowejpreview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
„
ZoomLevel
” to teraz „ZoomRatio
” w nazwach interfejsów APINiektóre parametry metody zmieniły dopuszczalność wartości null
Rozszerzenia aparatu i widok aparatu w wersji 1.0.0-alfa03
9 października 2019 r.
androidx.camera:camera-extensions:1.0.0-alpha03
i androidx.camera:camera-view:1.0.0-alpha03
zostały udostępnione. Oto zobowiązania zawarte w ramach camera-extensions:1.0.0-alpha03
, a także zobowiązania uwzględnione w ramach camera-view:1.0.0-alpha03
.
Nowe funkcje
- Dodano inicjator kontekstu dla rozszerzeń. Wersja rozszerzeń została zwiększona do 1.1.0
Rozszerzenia aparatu i widok aparatu w wersji 1.0.0-alfa02
5 września 2019 r.
androidx.camera:camera-extensions:1.0.0-alpha02
i
androidx.camera:camera-view:1.0.0-alpha02
zostały zwolnione. Są to
zobowiązania uwzględnione w rozszerzeniach aparatu:1.0.0-alfa02
a oto obejmujące zobowiązania,
Camera-view:1.0.0-alfa02.
- Dodano testy sprawdzające, czy
PreviewImageProcessorImpl
zostało prawidłowo zaimplementowane sygnatury czasowe. - Napraw niepowodzenie testu
ExtensionTest
na Nexusie 5 (poziom interfejsu API 21) i sprawdź wersję przedpremierową jest dostępna.
Rozszerzenia aparatu i widok aparatu w wersji 1.0.0-alfa01
7 sierpnia 2019 r.
androidx.camera:camera-extensions:1.0.0-alpha01
i
androidx.camera:camera-view:1.0.0-alpha01
zostały zwolnione.
Są to
zobowiązania uwzględnione w rozszerzeniach aparatu:1.0.0-alfa01
a oto obejmujące zobowiązania,
Camera-view:1.0.0-alfa01
- Nowa biblioteka rozszerzeń do aparatu, które umożliwią dostęp do efektów na obsługiwanych urządzeniach. Ta biblioteka jest w trakcie tworzenia.
- Nowe zajęcia z widoku z aparatu. Ta biblioteka jest w trakcie tworzenia.