CameraX
Ta tabela zawiera listę wszystkich artefaktów w grupie androidx.camera.
| Artefakt | Wersja stabilna | Wersja kandydująca do publikacji | Wersja beta | Wersja alfa |
|---|---|---|---|---|
| camera-camera2 | 1.6.2 | 1.7.0-rc01 | - | - |
| camera-core | 1.6.2 | 1.7.0-rc01 | - | - |
| camera-compose | 1.6.2 | 1.7.0-rc01 | - | - |
| camera-effects | 1.6.2 | 1.7.0-rc01 | - | - |
| camera-extensions | 1.6.2 | 1.7.0-rc01 | - | - |
| camera-feature-combination-query | - | - | - | 1.5.0-alpha06 |
| camera-feature-combination-query-play-services | - | - | - | 1.5.0-alpha06 |
| camera-lifecycle | 1.6.2 | 1.7.0-rc01 | - | - |
| camera-mlkit-vision | 1.6.2 | 1.7.0-rc01 | - | - |
| camera-view | 1.6.2 | 1.7.0-rc01 | - | - |
| camera-viewfinder | - | - | 1.3.0-beta02 | 1.4.0-alpha07 |
| camera-video | 1.6.2 | 1.7.0-rc01 | - | - |
Testowanie urządzeń
CameraX jest testowana na wielu urządzeniach w naszym laboratorium. Listę urządzeń, które obecnie znajdują się w laboratorium, znajdziesz w artykule Urządzenia przetestowane w laboratorium CameraX.
Deklarowanie zależności
Aby dodać zależność od CameraX, musisz dodać do projektu repozytorium Maven Google. Więcej informacji znajdziesz w repozytorium Maven Google.
Dodaj zależności dla artefaktów, których potrzebujesz, w pliku build.gradle aplikacji lub modułu:
Groovy
dependencies { // CameraX core library using the camera2 implementation def camerax_version = "1.7.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.7.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}") }
Prześlij opinię
Twoja opinia pomoże nam ulepszyć Jetpacka. Daj nam znać, jeśli znajdziesz nowe problemy lub masz pomysły na ulepszenie tej biblioteki. Przed utworzeniem nowego problemu zapoznaj się z dotychczasowymi problemami w tej bibliotece. Możesz dodać swój głos do istniejącego problemu, klikając przycisk gwiazdki.
Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.
Wizjer aparatu w Compose w wersji 1.0
Wersja 1.0.0-alpha02
12 czerwca 2024 r.
Publikacja androidx.camera:camera-viewfinder-compose:1.0.0-alpha02 Wersja 1.0.0-alpha02 zawiera te zatwierdzenia.
Wersja 1.0.0-alpha01
14 maja 2024 r.
Publikacja androidx.camera:camera-viewfinder-compose:1.0.0-alpha01 Wersja 1.0.0-alpha01 zawiera te zatwierdzenia.
Nowe funkcje
- Nowa biblioteka. Ta biblioteka wprowadza natywną funkcję kompozycyjną Viewfinder dla Compose, której można używać z CameraX i Camera2. Funkcja kompozycyjna Viewfinder obsługuje różne formaty obrazu i obsługę zdarzeń dotknięcia.
Wizjer aparatu w wersji 1.4
Wersja 1.4.0-alpha07
12 czerwca 2024 r.
Publikacja androidx.camera:camera-viewfinder:1.4.0-alpha07 i androidx.camera:camera-viewfinder-core:1.4.0-alpha07 Wersja 1.4.0-alpha07 zawiera te commity.
Wersja 1.4.0-alpha06
14 maja 2024 r.
Publikacja androidx.camera:camera-viewfinder:1.4.0-alpha06 i androidx.camera:camera-viewfinder-core:1.4.0-alpha06 Wersja 1.4.0-alpha06 zawiera te zmiany.
Zmiany w interfejsie API
- Zmieniono nazwy typów wyliczeniowych
ImplementationModewViewfinder, aby lepiej odzwierciedlały podstawowe implementacje, i dodano stałe dlaTransformationInfo.sourceRotation. (Ic6149) - Dodano
ZoomGestureDetector.ZoomEvent, aby uwzględnić stany gestu powiększenia. (I84cdf)
Wersja 1.7
Wersja 1.7.0-rc01
21 października 2026 r.
Publikacja androidx.camera:camera-*:1.7.0-rc01 Wersja 1.7.0-rc01 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Zmieniono
UseCaseCamera2Interop,ImageCaptureCamera2Interop,SessionConfigCamera2InteropiCameraControlCamera2Interopz interfejsów na klasy abstrakcyjne. (If654e) - Rozwiązaliśmy problem z niejednoznacznością Camera2Interop V2 (I1bbe5).
Poprawki błędów
- Rozwiązaliśmy problem z awarią systemową
SIGSEGVw wątkuCameraXOpenGL, gdySurfaceProcessorzwalniał dane wejścioweSurfaceTexture, którychSurfaceRequestzostał usunięty przez moduł czyszczenia pamięci przed zakończeniem. (I76f73, b/563673593) - Naprawiliśmy wyciek Surface i awarię systemową
OpenGL, które mogły wystąpić podczas czyszczenia pamięci, gdy wykonawcaCameraEffectlubHandlerThreadzostał zamknięty przed zamknięciemSurfaceOutputefektu. (Ifcc19, b/558819242) - Ulepszone działanie funkcji ulepszania obrazu przy słabym oświetleniu: ulepszanie obrazu przy słabym oświetleniu i latarka działają teraz zgodnie z zasadą „ostatnie ustawienie wygrywa”, co oznacza, że włączenie jednej z nich automatycznie wyłącza drugą, zamiast odrzucać żądanie. Dodatkowo lampa błyskowa może teraz błyskać podczas robienia zdjęć, gdy aktywna jest funkcja ulepszania zdjęć przy słabym oświetleniu. (Ie583f)
- Zależność
androidx.lifecycle:lifecycle-runtimezostała zaktualizowana do wersji 2.10.0. Ta wersja jest wymagana do uruchamiania kontroli linta w pakiecie środowiska wykonawczego cyklu życia z AGP w wersji 9.5.0-alpha04 lub nowszej. (I99bfd, b/556807521) - Obsługa uzyskiwania
CameraSelectorna kamerach fizycznych zCameraInfo.getPhysicalCameraInfos()i powiązaniaUseCasesz kamerami fizycznymi. Zapytanie oCameraInfoz fizycznymCameraSelectorzwraca teraz fizycznyCameraInfozamiast logicznegoCameraInfo. (Ibe7f2) - Wyjaśniliśmy w Javadoc
OutputOptions.Builder.setLocation, że w metadanych filmu są przechowywane tylko szerokość i długość geograficzna. (I77d3b, b/551348846) - Naprawiliśmy błąd w
ImageAnalysis, który powodował, że dynamiczna zmiana obrotu danych wyjściowych lub odłączenie przypadku użycia mogły powodować wyciek zasobów Surface/ImageReader. (I25cef) - Funkcja
CameraInfo.getIntrinsicZoomRatio()zaokrągla teraz zwracany współczynnik do 2 miejsc po przecinku. (Ibe9a8) - Złagodzono sprawdzanie
HardwareBuffer.isSupportedpod kątem formatuPRIVATEwImageAnalysis, aby zapobiec fałszywie negatywnym wynikom na niektórych urządzeniach. (I347a4, b/545866947) - Naprawiliśmy błąd kompilacji w nowszych wersjach JDK podczas rozwiązywania przejściowo importowanych adnotacji typu JSpecify w polach wewnętrznych
CameraX. (I00bb4, b/543937345)
Wersja 1.7.0-alpha03
12 sierpnia 2026 r.
Publikacja androidx.camera:camera-*:1.7.0-alpha03 Wersja 1.7.0-alpha03 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Wycofano starsze interfejsy API Camera2Interop (
Camera2Interop.Extender,Camera2CameraControl,Camera2CameraInfoiCaptureRequestOptions) na rzecz metod fabrycznych konfiguratoraCamera2Interopi funkcji rozszerzenia Kotlin. (Ib0845, b/529609261) - Dodano bloki rozszerzeń Kotlin DSL
camera2Interopdlapreview,imageAnalysis,videoCapture,imageCaptureiSessionConfig.Builder, a także funkcję rozszerzeniaCameraControl.applyCamera2InteropAsync. (I51af9, b/529609261) - Dodano nowe metody fabryczne konfiguratora
Camera2Interop(forUseCase,forImageCapture,forSessionConfig,forCameraControl) i odpowiadające im metodysetInterop/applyInteropAsyncwPreview.Builder,ImageCapture.Builder,ImageAnalysis.Builder,VideoCapture.Builder,SessionConfig.BuilderiCameraControl. (I0007b, b/529609261) - Dodano metody pomocnicze do
Camera2Interopi odpowiednie właściwości rozszerzenia Kotlin (CameraInfo.cameraId,CameraInfo.cameraCharacteristicsiString.toCameraSelector()), aby pobierać identyfikator i charakterystykę aparatu Camera2 zCameraInfo. (I11803, b/529609261) - Dodano interfejsy API
Preview.setMirrorMode,Preview.getMirrorModeiVideoCapture.setMirrorModedo publicznych interfejsów API i usunięto adnotacjęExperimentalMirrorMode. (I4ed60, b/519794349, b/470629643) - Dodano kreatory Kotlin DSL
preview{ ... },imageCapture{ ... },imageAnalysis{ ... } ivideoCapture{ ... } do tworzeniaUseCases. (I91df9, b/530013719) - Zmieniono ImagePlane.buffer na ByteBuffer, który nie może mieć wartości null. (I98593)
- Wycofano metody pobierające właściwości w
SessionConfig.Builder,HighSpeedVideoSessionConfig.BuilderiExtensionSessionConfig.Builderw Kotlin DSL, aby wymusić właściwości tylko do zapisu. (I2875b, b/534570559)
Poprawki błędów
- Rozwiązaliśmy problem, który powodował, że powiązanie wielu przypadków użycia
PreviewzOverlayEffectpowodowało błąd dostarczania jednego strumienia podglądu. (I7a383, b/532577546, b/532924417) - Rozwiązaliśmy problem, który powodował, że urządzenia
Recording.pause()iRecording.resume()ulegały awarii podczas przełączania aparatów w trakcie ciągłego nagrywania filmu. (I71004, b/532327691, b/367121726) - Naprawiliśmy błędy HAL występujące podczas korzystania z funkcji Zero-Shutter Lag (ZSL) przy powiększaniu obrazu poza fizyczne granice aparatu na urządzeniach z wieloma aparatami. (I1c374, b/527782712, b/514757157)
- Rozwiązaliśmy problem, który mógł powodować błąd podczas nagrywania filmów HDR na urządzeniach Samsung Galaxy S25, S26 i Fold 7. (Ic0827, b/529618629)
Wersja 1.7.0-alpha02
1 lipca 2026 r.
Publikacja androidx.camera:camera-*:1.7.0-alpha02 Wersja 1.7.0-alpha02 zawiera te zatwierdzenia.
Zmiany w interfejsie API
CameraXViewfinderobsługuje teraz wbudowane gesty rozsuwania i ściągania palców w celu powiększenia oraz dotknięcia w celu ustawienia ostrości, a także dodaje obsługę błysku na ekranie i stanu strumienia. MetodaFocusStatejest teraz publiczna w viewfinder-core, aby umożliwić monitorowanie wyników ustawiania ostrości po dotknięciu. (I66a17, b/522549890)- Dodano
isAutoRotationEnableddoSessionConfig.Builder,HighSpeedVideoSessionConfig.Builder,ExtensionSessionConfig.Builderi wprowadzono dla nich funkcje fabryczne Kotlin DSL. Umożliwia to automatyczne ustawianie odpowiedniego obrotu na podstawie czujników urządzenia. (I5b4a3, b/510752515) - Dodano właściwość
TransformationModedoTransformationInfo, aby umożliwić aplikacjom korzystanie z potokuOpenGLw trybieEMBEDDED. (Id1de1, b/487826941) - Dodano
isNightModeIndicatorSupported()igetNightModeIndicator()doCameraInfo, aby określić, kiedy warunki otoczenia spełniają kryteria trybu nocnego. (Iae47b, b/499389465) - Udostępniono ImageAnalysis.OUTPUT_IMAGE_FORMAT_PRIVATE i ImageProxy.getHardwareBuffer() jako publiczny interfejs API do obsługi ImageAnalysis opartego na GPU. (I41cb3, b/496022391, b/492934501)
- Metoda ExtensionsManager#getExtensionEnabledCameraSelector została wycofana. Aby włączyć tryby rozszerzeń, użyj nowego interfejsu ExtensionSessionConfig API. (I2b336, b/473715607)
- Dodaliśmy obsługę stylów wizualnych klatek z kamery podczas jednoczesnej kompozycji obrazu z kamery. Możesz teraz dostosować:
- Zaokrąglone rogi: użyj metody setRoundedCornerRatio(float), aby zastosować znormalizowane zaokrąglenie (od 0,0 do 1,0) do krawędzi ramki.
- Obramowania: użyj metod setBorderWidthRatio(float) i setBorderColor(int), aby dodać ozdobną ramkę o stałej grubości (I18a07, b/366349205).
- Zaktualizowano CompositionSettings, aby wymusić nieujemną kolejność osi Z, i dodano walidację do ConcurrentCamera.setCompositionSettings, aby zapewnić wywoływanie z prawidłową liczbą ustawień w prawidłowym trybie kompozycji. (If660d, b/496951658)
- Dodano metody getNightModeIndicator() i isNightModeIndicatorAvailable() do CameraExtensionsInfo, aby umożliwić aplikacjom sprawdzanie, czy bieżące środowisko jest w trybie nocnym podczas korzystania z rozszerzeń aparatu. (I62bb4, b/499389465)
- Dodaliśmy obsługę jakości filmu
QHDw VideoCapture. (I0ac20, b/501305592) - Dodano
Recorder.Builder.setTargetAudioChannelCount(int)iRecorder.getTargetAudioChannelCount(), aby umożliwić deweloperom ustawienie konkretnej liczby kanałów audio. (I6bee0, b/441895100) - Dodano
Recorder.Builder.setTargetAudioEncodingBitRate(int), aby umożliwić ustawienie docelowej szybkości transmisji bitów kodowania dźwięku. (I29062, b/241151504) - Dodano interfejs API ConcurrentCamera.setCompositionSettings, aby umożliwić aplikacjom dynamiczne aktualizowanie kompozycji bieżącej kamery po powiązaniu cyklu życia. Dodatkowo nowy interfejs API setZOrder w CompositionSettings.Builder umożliwia precyzyjne kontrolowanie kolejności renderowania nakładających się strumieni z kamery. (I90528, b/473702287)
- Wprowadziliśmy interfejsy API umożliwiające szczegółową kontrolę nad formatami kodowania. Deweloperzy mogą teraz wykrywać formaty obsługiwane przez urządzenie za pomocą funkcji
Recorder.getSupportedVideoMimeTypes()igetSupportedAudioMimeTypes(), które są obecnie w fazie eksperymentalnej. Preferowane formaty można skonfigurować za pomocąRecorder.Builder.setVideoMimeType()isetAudioMimeType(). DodatkowoRecorder.getVideoCapabilities(CameraInfo, String)umożliwia wysyłanie zapytań o funkcje aparatu, takie jak obsługiwane jakości i zakresy dynamiczne, w przypadku wybranego kodeka (I4620e, b/491319384). - Dodaliśmy metodę CameraController.setAutoRotationEnabled(boolean), aby umożliwić wyłączenie detektora automatycznego obracania urządzenia. (Ia0c03, b/449573627)
- Dodano obsługę blokowania AE/AWB w FocusMeteringAction za pomocą nowego interfejsu API setLockingMode. Umożliwia to również aktualizowanie regionów 3A bez blokowania ostrości, dzięki czemu aparat może pozostać w trybie ciągłego autofokusa podczas aktualizowania obszaru ostrości. (I6416f, b/481624745)
Poprawki błędów
- Usuń wymaganie dotyczące
compileSdk 37(If78b4) - Naprawiliśmy
CameraXViewfinderproblemów z przekształcaniem w trybieEMBEDDED, gdy potokOpenGLjest włączony przezCameraXw celu powiązania większej liczbyUseCaseslub przetwarzania powierzchni. (I3e637, b/487826941) - Zaktualizowano testy i aktywności, aby używały ExtensionSessionConfig zamiast wycofanego interfejsu API getExtensionEnabledCameraSelector. (I765d8, b/473715607)
- Naprawiliśmy błąd kompilacji „Nie można uzyskać dostępu do klasy «ListenableFuture»”. (Ic8cba, b/497571473)
- Zaktualizowano compileSdk w Compose do interfejsu API 37. Oznacza to, że w przypadku korzystania z Compose wymagana jest wersja AGP 9.2.0 lub nowsza. (Id45cd, b/413674743)
Wersja 1.7.0-alpha01
11 marca 2026 r.
Publikacja androidx.camera:camera-*:1.7.0-alpha01 Wersja 1.7.0-alpha01 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Udostępniono interfejs API
CameraController.setSessionConfig(). Dzięki temu można podać niestandardowySessionConfigdla zaawansowanych konfiguracjiUseCase, które nie są bezpośrednio udostępniane przezCameraController. GdySessionConfigjest aktywny, inne metody konfiguracji wCameraControllersą wyłączone.(I35cf1, b/448525636)
Poprawki błędów
- Przenosi biblioteki, aby używać środowiska Java 11. Oznacza to, że wygenerowany kod bajtowy będzie zgodny z Java 11 (plik klasy w wersji 55) i może wymagać odlukrzania, aby można było używać biblioteki (If4c2a, b/457821470).
- Naprawiliśmy błąd w
ImageAnalysis, który powodował, że obrazy nie były prawidłowo obracane, gdy włączone było obracanie obrazu wyjściowego, a początkowy obrót względny wynosił 0 stopni. (Id46c2, b/487160584)
Wersja aparatu: 1.6
Wersja 1.6.2
26 sierpnia 2026 r.
Publikacja androidx.camera:camera-*:1.6.2 Wersja 1.6.2 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawiliśmy błąd kompilacji w nowszych wersjach JDK podczas rozwiązywania przejściowo importowanych adnotacji typu JSpecify w polach wewnętrznych
CameraX. (I00bb4, b/543937345)
Wersja 1.6.1
6 maja 2026 r.
Publikacja androidx.camera:camera-*:1.6.1 Wersja 1.6.1 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawiliśmy błąd kompilacji „Nie można uzyskać dostępu do klasy
ListenableFuture” podczas korzystania z CameraX 1.6.0. (Ic8cba, b/497571473)
Wersja 1.6.0
25 marca 2026 r.
Publikacja androidx.camera:camera-*:1.6.0 Wersja 1.6.0 zawiera te zatwierdzenia.
Ważne zmiany od wersji 1.5.0:
1. Migracja na ujednolicony, wysokowydajny stos aparatu
- CameraX używa teraz
CameraPipe– tego samego nowoczesnego, wydajnego stosu, który obsługuje aparat Pixela. Ta zmiana zwiększa wydajność architektury i zapewnia skalowalną podstawę do wprowadzania zaawansowanych funkcji fotografii cyfrowej w ekosystemie deweloperów.
2. Integracja Media3 Muxer
- CameraX domyślnie integruje teraz Media3 Muxer w interfejsie API VideoCapture. Migracja zapewnia kilka korzyści:
- Zwiększona wydajność: wydajniejsze przetwarzanie i multipleksowanie filmów.
- Odporność na awarie: ulepszona ochrona przed uszkodzeniem plików wideo, która zapewnia zachowanie danych nawet w przypadku awarii aplikacji podczas nagrywania.
3. Ulepszenie grupy cech
- Interfejs API Feature Group obsługuje teraz stabilizację obrazu i nagrywanie w rozdzielczości 4K.
GroupableFeaturesobejmujeVIDEO_STABILIZATION,UHD_RECORDING, aby aplikacje mogły je włączać razem z innymi funkcjami.CameraEffectiImageAnalysiswSessionConfigsą obsługiwane, gdy grupa funkcji jest włączona.
4. Ustabilizowany interfejs SessionConfig API
SessionConfignie jest już eksperymentalnym, ale w pełni stabilnym publicznym interfejsem API, który obejmujeSessionConfigiHighSpeedVideoSessionConfig. Rozszerzenia CameraX można teraz implementować za pomocą nowego interfejsu APIExtensionSessionConfig. Wprowadziliśmy nowy interfejs APIisSessionConfigSupported, który umożliwia deweloperom sprawdzenie, czy określona kombinacja przypadków użycia i funkcji (takich jak HDR, stabilizacja, określone rozdzielczości, rozszerzenia CameraX czy zwolnione tempo) jest obsługiwana przez urządzenie, zanim zostanie powiązana z cyklem życia.
Poprawki błędów
- Naprawiliśmy błąd powodujący awarię na niektórych urządzeniach z Androidem 17 (API 37) lub nowszym. Gdy te urządzenia udostępniają nowe profile zakresu dynamicznego (np. STANDARD_SMPTE_2094_50(ID 8192)), które były nieznane w CameraX w wersji 1.5.1 i starszych, biblioteka nie obsługiwała wcześniej tych identyfikatorów prawidłowo, co powodowało błąd
NullPointerExceptionlubIllegalArgumentExceptionpodczasProcessCameraProvider.bindToLifecycle(). Ta poprawka umożliwia CameraX ignorowanie nierozpoznanych profili zakresu dynamicznego, co zapobiega awariom i zapewnia zgodność z przyszłymi wersjami. Aby uniknąć tego problemu na urządzeniach, które udostępniają te nowe profile, zaktualizuj zależność CameraX do wersji 1.5.2 lub 1.6.0 (lub nowszej). Więcej informacji znajdziesz w opisie problemu 519796838. (Ibd7b5) - Interfejs API grupy cech zapewnia teraz spójne wyniki, gdy
PREVIEW_STABILIZATIONjest używany zVideoCapture. Naprawiliśmy błąd, który powodował niespójne wyniki, gdy przypadek użycia podglądu nie był aktywny. (Ifed82, b/449913903) - Rozwiązaliśmy problem, który powodował, że nieobsługiwane preferowane funkcje były nieprawidłowo udostępniane. Funkcje są teraz prawidłowo filtrowane, gdy nie są spełnione wymagane przypadki użycia. (I38db8, b/449532342)
- Naprawiliśmy błąd powodujący nieprawidłowe wyświetlanie wyników wyszukiwania filmów na telefonie Samsung Galaxy S6. (I612d9, b/235127608)
- Rozwiązaliśmy problem, który powodował, że funkcja
CameraInfo#isFeatureGroupSupportedmogła nieprawidłowo zwracać wartość „true” dlaPREVIEW_STABILIZATION, jeśliSessionConfigw zapytaniu był już skonfigurowany z innymi funkcjami. (I2c355c, b/437816469) - Wykluczono problematyczne rozmiary wyjściowe formatu YUV z urządzenia Samsung Z Fold 4. Otrzymane obrazy są zniekształcone, gdy używane są te rozmiary wyjściowe. (I776bf, b/460322307)
- Rozwiązaliśmy problem występujący na urządzeniach Samsung A53, który powodował, że robienie zdjęć z włączoną latarką czasami się nie udawało, jeśli był powiązany przypadek użycia
VideoCapture. (I0f183, b/458197367) - Rozwiązaliśmy problem występujący na niektórych urządzeniach, który powodował, że użycie lampy błyskowej z aparatem ultraszerokokątnym mogło skutkować niedoświetlonymi zdjęciami. (Ib7530, b/444590340)
- Zaktualizowano zależność
ExifInterface, aby uwzględnić poprawkę dotyczącą analizowania plików JPEG z dopełnieniem0xFF. Rozwiązuje to problemy z robieniem zdjęć na urządzeniach, na których koder JPEG dodaje bajty wypełnienia przed znacznikami. (I0eb49)
Wersja 1.6.0-rc01
25 lutego 2026 r.
Publikacja androidx.camera:camera-*:1.6.0-rc01 Wersja 1.6.0-rc01 zawiera te zatwierdzenia.
Wersja 1.6.0-beta02
11 lutego 2026 r.
Publikacja androidx.camera:camera-*:1.6.0-beta02 Wersja 1.6.0-beta02 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawiliśmy problem z przechwytywaniem w pamięci
ImageCaptureOUTPUT_FORMAT_RAW_JPEGIllegalArgumentException. (Id4eec, b/479990902) - Przeniesiono do multipleksera AndroidX Media3. Rozwiązaliśmy problem z uszkodzeniem filmu podczas nieoczekiwanych przerw lub zamknięcia aplikacji oraz problem z awariami podczas zapisywania filmów w deskryptorach plików proxy. (I23b63, b/433649708, b/264812009, b/475750115)
Wersja 1.6.0-beta01
28 stycznia 2026 r.
Publikacja androidx.camera:camera-*:1.6.0-beta01 Wersja 1.6.0-beta01 zawiera te zatwierdzenia.
Poprawki błędów
- Rozwiązaliśmy problem z typem
CameraExtensionsInfow CameraX 1.6.0-alpha, który powodował, że obiekt LiveData nie mógł odbierać zaktualizowanych danych typu. (I2c7a5) - Zaktualizowano zależność ExifInterface, aby uwzględnić poprawkę dotyczącą analizowania plików JPEG z wypełnieniem 0xFF. Rozwiązuje to problemy z robieniem zdjęć na urządzeniach, na których koder JPEG dodaje bajty wypełnienia przed znacznikami. (I0eb49)
Wersja 1.6.0-alpha02
17 grudnia 2025 r.
Publikacja androidx.camera:camera-*:1.6.0-alpha02 Wersja 1.6.0-alpha02 zawiera te zatwierdzenia.
Nowe funkcje
- Dodano funkcję grupowania, która umożliwia oznaczenie funkcji stabilizacji filmu w konfiguracji sesji. Deweloperzy mogą teraz prosić o stabilizację obrazu jako wymaganą lub preferowaną funkcję, dopasowując ją do innych funkcji, które można grupować, takich jak UHD_RECORDING czy PREVIEW_STABILIZATION. (Ic6757, b/419766630)
- Dodano funkcje, które można grupować, aby określić jakość nagrywania wideo w konfiguracji sesji. Deweloperzy mogą teraz poprosić o określoną jakość (np. UHD, FHD) jako wymaganą lub preferowaną funkcję, dopasowując ją do innych funkcji, które można grupować, takich jak HDR i 60 klatek na sekundę. (Ib5cd3, b/437820285)
- Dodaliśmy obsługę korzystania zarówno z
CameraEffect, jak i interfejsu API grup cech wSessionConfig. (I17f18, b/406370934) - Dodaliśmy obsługę interfejsu
ImageAnalysisi interfejsu API grup cech wSessionConfig. (I87833, b/406371720)
Zmiany w interfejsie API
- Dodano funkcję ustawiającą
addUseCasedlaExtensionSessionConfig.Builderi brakujące funkcje pobierające dlaExtensionSessionConfig. (I71e07, b/453988621) - Dodano interfejs API
ExtensionsManager.getInstance, który jest zawieszoną wersjąExtensionsManager.getInstanceAsync(I3a0a9, b/452208792). - Zmieniliśmy nazwę interfejsu
isFeatureGroupSupportednaisSessionConfigSupportedi dodaliśmy obsługę wszystkich typówSessionConfig. (I21616, b/448781299) - Przekonwertowano
ExtensionsManagerna implementację w języku Kotlin. (I73091, b/452208792) - Dodano
CameraProvider#getCameraInfo(CameraSelector, SessionConfig), aby pobraćCameraInfo, gdySessionConfigmoże mieć wpływ na wybór kamery. Na przykład podczas korzystania zExtensionSessionConfig. (Ic548c, b/451891648) - Udostępniono interfejs API
ExtensionSessionConfig. Aplikacje mogą teraz utworzyć obiektExtensionSessionConfigi użyć go do utworzenia sesji rozszerzeń. (I6354c, b/448524373) - Interfejs API
androidx.camera.video.HighSpeedVideoSessionConfignie jest już eksperymentalny i jest teraz w pełni stabilnym publicznym interfejsem API. (I492d4, b/447558239) - Interfejs API
androidx.camera.core.SessionConfignie jest już eksperymentalny i jest teraz w pełni stabilnym publicznym interfejsem API. (Idc87a, b/447558437)
Poprawki błędów
- Naprawiliśmy błąd powodujący awarię z powodu
IllegalArgumentException: Dynamic range profile cannot be converted to a DynamicRange object:na Androidzie 17 lub nowszym. (Ibd7b5, b/463465353) - Wykluczono problematyczne rozmiary wyjściowe formatu YUV z urządzenia Samsung Z Fold 4. Otrzymane obrazy są zniekształcone, gdy używane są te rozmiary wyjściowe. (I776bf, b/460322307)
- Naprawiliśmy błąd, który powodował, że ustawienie
CaptureRequest.FLASH_MODEnie było stosowane, gdy zostało skonfigurowane za pomocą interfejsu APICamera2Interop. (I0004c, b/459608684) - Rozwiązaliśmy problem występujący na urządzeniach Samsung A53, który powodował, że robienie zdjęć z włączoną latarką czasami się nie udawało, jeśli był powiązany przypadek użycia
VideoCapture. (I0f183, b/458197367) - Rozwiązaliśmy problem występujący na niektórych urządzeniach, który powodował, że użycie lampy błyskowej z aparatem ultraszerokokątnym mogło skutkować niedoświetlonymi zdjęciami. (Ib7530, b/444590340)
Wersja 1.6.0-alpha01
22 października 2025 r.
Publikacja androidx.camera:camera-*:1.6.0-alpha01 Wersja 1.6.0-alpha01 zawiera te zatwierdzenia.
Nowe funkcje
- CameraX został przeniesiony na ujednolicony, wydajny stos aparatu, który jest również używany przez aplikację aparatu Pixel. Ten nowy stos, znany jako
CameraPipe, powstał w wyniku współpracy zespołów CameraX i aparatu Pixel. Dzięki temu wszystkie ulepszenia są udostępniane, co przynosi korzyści zarówno użytkownikom CameraX, jak i aplikacji Aparat Pixel.
Zmiany w interfejsie API
- Dodaliśmy nowe interfejsy API do wykrywania dynamicznego dodawania i usuwania kamer. Więcej informacji znajdziesz w interfejsie API
CameraPresenceListener. (I41ead, b/427182232, b/419441394)
Poprawki błędów
- Interfejs API grupy cech zapewnia teraz spójne wyniki, gdy
PREVIEW_STABILIZATIONjest używany zVideoCapture. Naprawiliśmy błąd, który powodował niespójne wyniki, gdy przypadek użyciaPreviewnie był aktywny. (Ifed82, b/449913903) - Rozwiązaliśmy problem, który powodował, że nieobsługiwane preferowane funkcje były nieprawidłowo udostępniane. Funkcje są teraz prawidłowo filtrowane, gdy nie są spełnione wymagane przypadki użycia. (I38db8, b/449532342)
- Naprawiliśmy błąd powodujący nieprawidłowe wyświetlanie wyników wyszukiwania filmów na telefonie Samsung Galaxy S6. (I612d9, b/235127608)
- Rozwiązaliśmy problem, który powodował, że funkcja
CameraInfo#isFeatureGroupSupportedmogła nieprawidłowo zwracać wartość „true” dlaPREVIEW_STABILIZATION, jeśliSessionConfigw zapytaniu był już skonfigurowany z innymi funkcjami. (I2c355c, b/437816469)
Aparat w wersji 1.5
Wersja 1.5.3
28 stycznia 2026 r.
Publikacja androidx.camera:camera-*:1.5.3 Wersja 1.5.3 zawiera te zatwierdzenia.
Poprawki błędów
- Zaktualizowano zależność ExifInterface do wersji 1.4.2. Rozwiązuje to problem z robieniem zdjęć, który występuje na urządzeniach generujących pliki JPEG z dodatkowymi (i dozwolonymi) bajtami 0xFF przed znacznikiem. (I16df4)
Wersja 1.5.2
4 grudnia 2025 r.
Publikacja androidx.camera:camera-*:1.5.2 Wersja 1.5.2 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawiliśmy błąd powodujący awarię z powodu
IllegalArgumentException: Dynamic range profile cannot be converted to a DynamicRange object:na Androidzie 17 lub nowszym. (Ic9184) - Naprawiliśmy błąd, który powodował niespójne wyniki interfejsu API grupy funkcji, gdy funkcja
PREVIEW_STABILIZATIONzostała dodana w przypadku użyciaVideoCapture, ale bez przypadku użyciaPreview. (Ifed82) - Naprawiliśmy błąd, który powodował, że preferowane funkcje nie były odfiltrowywane, mimo że nie było wymaganych przypadków użycia, aby te funkcje były obsługiwane. (I38db8)
Wersja 1.5.1
8 października 2025 r.
Publikacja androidx.camera:camera-*:1.5.1 Wersja 1.5.1 zawiera te zatwierdzenia.
Poprawki błędów
- Obsługa
CameraEffectw trybie równoczesnej kompozycji obrazu z kamery. Efekt zostanie zastosowany do danych wyjściowych kompozycji. Pamiętaj, że gdy efekt jest ustawiony w trybie jednoczesnej kompozycji kamery,mirrorModewVideoCapturezostanie zignorowany. (If3d00, b/425565129) - Rozwiązaliśmy problem, który powodował, że funkcja
mirrorModenie była prawidłowo stosowana do kamery dodatkowej w trybie kompozycji równoczesnej. (I686cd, b/446430827) - Obsługa powiązania
Preview,ImageCaptureiVideoCapturew trybie bez kompozycji z jednoczesnym użyciem aparatów. (Ib410a, b/443009871) - Rozwiązaliśmy problem, który powodował, że przypadki użycia takie jak
ImageCaptureiVideoCapturetraciły informacje o docelowym obrocie, jeśli zostały utworzone ponownie. Może to spowodować, że obrazy lub filmy będą miały nieprawidłową orientację, jeśli ustawienie takie jakimageCaptureModezostało zmienione po obróceniu urządzenia. (I477c8, b/444734537) - Rozwiązaliśmy problem, który uniemożliwiał wybieranie rozdzielczości 16:9 w podglądzie i nagrywanie w jakości QUALITY_1080P w aplikacji
VideoCapture. Ten problem występował podczas korzystania z domyślnej konfiguracji rozdzielczości podglądu, gdy aktywna była funkcja wewnętrznaStreamSharing(np. gdy jednocześnie powiązane były 4 przypadki użycia). (I493cb, b/440364875) - Naprawiliśmy błąd powodujący awarię, gdy efekt jest aktywowany po wyłączeniu
SurfaceProcessor(I2c450, b/414150174). - Naprawiliśmy błąd w
CameraController, który powodował wystąpienie błęduIllegalStateException, gdy początkowy UseCase wybierał maksymalną rozdzielczość, co uniemożliwiało powiązanie innych UseCase. (Ifb758, b/440374234) - Wyklucza problematyczne rozmiary wyjściowe YUV_420_888 w przypadku Nokii 7 Plus, które powodują błąd bez wyświetlania żadnych komunikatów. (I3af47, b/436524501)
- Rozwiązaliśmy problem, który powodował, że funkcja
CameraInfo#isFeatureGroupSupportedmogła nieprawidłowo zwracać wartość „true” w przypadku funkcjiPREVIEW_STABILIZATION. Może się tak zdarzyć, gdy zapytanie jest wysyłane z użyciemSessionConfig, który został już skonfigurowany z innymi funkcjami. (I2c355, b/437816469) - Poprawiliśmy stabilność
CameraXViewfinderna starszych poziomach interfejsu API i urządzeniach z problemami zSurfaceView, domyślnie używając w takich przypadkachTextureView. Ten mechanizm zastępczy jest nowym ustawieniem domyślnym, ale można go zastąpić programowo. (Ieb476, b/437496463) - Naprawiliśmy wyciek pamięci w
PreviewView, który mógł uniemożliwiać usuwanie nieużywanych obiektów z aktywności. Dzieje się tak, gdy nowySurfaceRequestdotrze, zanim poprzedni zostanie obsłużony. (I4aa0b,b/443112512) - Rozwiązaliśmy problem, który powodował, że nagrywanie w trybie przyspieszonym lub zwolnionym nie działało na urządzeniach Huawei P smart, Infinix Hot 40i i Realme C53. (40a668e, b/442984200)
Wersja 1.5.0
10 września 2025 r.
Publikacja androidx.camera:camera-*:1.5.0 Wersja 1.5.0 zawiera te zatwierdzenia.
Ważne zmiany od wersji 1.4.0:
- Nagrywanie z dużą szybkością i w zwolnionym tempie: łatwo integruj nagrywanie filmów z dużą szybkością (120/240 kl./s) i w zwolnionym tempie przy użyciu minimalnej ilości kodu. Szczegółowe informacje znajdziesz w
Recorder#getHighSpeedVideoCapabilities(CameraInfo)iHighSpeedVideoSessionConfig. - Interfejsy API
SessionConfigiFeatureGroup: nowy interfejs APISessionConfigumożliwia skonfigurowanie sesji aparatu i bezpieczne włączenie wielu funkcji jednocześnie, w tym HLG (HDR), UltraHDR, 60 kl./s i stabilizacji podglądu. Możesz też ustawić preferowaną grupę funkcji z priorytetem, aby CameraX określił optymalną obsługiwaną kombinację. Więcej informacji znajdziesz w tych artykułach:SessionConfig.Builder#setPreferredFeatureGroup,SessionConfig.Builder#setRequiredFeatureGroupiCameraInfo#isFeatureGroupSupported(SessionConfig). - Deterministyczny interfejs API liczby klatek: rozwiąż poprzednie ograniczenia związane z
setTargetFrameRate, używającCameraInfo.getSupportedFrameRateRanges(sessionConfig)do wysyłania zapytań iSessionConfig.setExpectedFrameRateRangedo ustawiania precyzyjnych i obsługiwanych liczb klatek. - Rozszerzenia aparatu: format UltraHDR jest teraz obsługiwany przez rozszerzenia. Sprawdź
ImageCapture.getImageCaptureCapabilities(cameraInfo).getSupportedOutputFormats()i włącz tę opcję wImageCapture.Builder.setOutputFormat. Współczynnik powiększenia i funkcje stabilizacji podglądu są teraz odzwierciedlane po włączeniu rozszerzeń. - Intensywność latarki: dostosuj intensywność latarki za pomocą ikony
CameraControl.setTorchStrengthLevel. - Tryb doświetlania: możesz włączyć tryb doświetlania(
CONTROL_AE_MODE_ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY) za pomocą tych interfejsów API:CameraInfo#isLowLightBoostSupported,CameraInfo#getLowLightBoostStateiCameraControl#enableLowLightBoostAsync. - Przechwytywanie wideo:
VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGEjest teraz uruchamiane, gdy podczas nagrywania brakuje miejsca na dane.PendingRecording.withAudioEnabled(boolean initialMuted)umożliwia kontrolowanie początkowego stanu wyciszenia nagrywania dźwięku. - Robienie zdjęć: obsługa formatów DNG (RAW) i JPEG + DNG (RAW) w aplikacji
ImageCapture. Sprawdź, czyImageCaptureCapabilities(CameraInfo).getSupportedOutputFormats()obsługuje format RAW. Używaj przeciążonych interfejsów APItakePicturez wielomaOutputFileOptionsdo przechwytywania RAW+DNG. - Analiza obrazu: obsługa formatu NV21 w
ImageAnalysis. Włącz ją za pomocąImageAnalysis.Builder.setOutputImageFormat(OUTPUT_IMAGE_FORMAT_NV21).
Wersja 1.5.0-rc01
13 sierpnia 2025 r.
Publikacja androidx.camera:camera-*:1.5.0-rc01 Wersja 1.5.0-rc01 zawiera te zatwierdzenia.
Poprawki błędów
- Przeniesienie domyślnego minSdk z interfejsu API 21 do interfejsu API 23 (Ibdfca, b/380448311, b/435705964, b/435705223)
- Usunęliśmy ograniczenie 10-bitowego sygnału wyjściowego w trybie automatycznego ustawiania ekspozycji przy słabym oświetleniu. Aplikacje mogą teraz jednocześnie włączać obie funkcje na obsługiwanych urządzeniach. (I5a638)
- Rozwiązaliśmy problem, który powodował zawieszanie się urządzeń z chipsetami
UniSocpodczas robienia zdjęcia. Problem wystąpił, gdy jednocześnie używanoVideoCapture,PreviewiImageCapture, a wszystkie strumienie były ustawione na rozdzielczość 1280 x 720. (Ia00c4, b/380802479) - Naprawiliśmy błąd powodujący wyświetlanie czarnego ekranu podglądu, gdy nie ustawiono dużej liczby klatek na sekundę w przypadku nagrywania z dużą szybkością lub w zwolnionym tempie. (cdf0ff2e9)
- Ulepszenie obsługi błędów i logowania w
getViewportAspectRatioInt(82fca18)
Wersja 1.5.0-beta02
16 lipca 2025 r.
Publikacja androidx.camera:camera-*:1.5.0-beta02 Wersja 1.5.0-beta02 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Dodaliśmy nowe interfejsy API, które umożliwiają bardziej intuicyjne i dokładne ustawianie lub wysyłanie zapytań dotyczących grup funkcji wysokiej jakości, ponieważ te funkcje mogą nie być obsługiwane jako kombinacja na wszystkich urządzeniach.
SessionConfigzawiera teraz nowe interfejsy API, które umożliwiają oznaczenie grupy funkcji jako wymaganych lub preferowanych. Interfejs APICameraInfo.isFeatureGroupSupportedpozwala sprawdzić, czy grupa funkcji jest obsługiwana, zanim zostanie powiązana zSessionConfig.SessionConfigumożliwia też ustawienie detektora, który będzie informować o tym, które funkcje zostały ostatecznie wybrane po powiązaniu konfiguracji sesji. (Ie4d60) - Dodano nowe interfejsy API
SessoinConfig.Builder.setFrameRateRange(Range<Integer>)iCameraInfo.getSupportedFrameRateRanges(SessionConfig), które umożliwiają deweloperom wysyłanie zapytań o gwarantowane obsługiwane liczby klatek ograniczone przez określonySessionConfig, a następnie stosowanie liczby klatek wSessionConfig. (Ieacf7) - Wprowadziliśmy nowy interfejs API
SessionConfig, który zawiera lepszą abstrakcję do konfigurowania przypadków użycia, parametrów sesji,CameraEffect,ViewPortitp. PowiązanieSessionConfigz LifecycleOwner otwiera sesję kamery, konfiguruje ją za pomocą określonych przypadków użycia i parametrów sesji oraz stosuje wyznaczoneCameraEffectiViewPort. Podczas aktualizowania nowego elementuSessionConfigdo tego samego elementuLifecycleOwnermożesz po prostu powiązać nowy elementSessionconfigbez konieczności wywoływania metody unbind lubunbindAll. (Iedfc3) - Dodano nowe interfejsy API do nagrywania filmów w wysokiej szybkości i w zwolnionym tempie. Więcej informacji znajdziesz w interfejsie API
HighSpeedVideoSessionConfig. (Ia16f3)
Poprawki błędów
- Naprawiliśmy błąd interfejsu API
ImageCaptureCapabilities#getSupportedOutputFormats(), który powodował, że formaty RAW były zgłaszane jako obsługiwane na niektórych urządzeniach, które w rzeczywistości nie obsługują formatu RAW. (Ibcadb) - Naprawiliśmy wyciek pamięci, który występuje, gdy używana jest metoda
PreviewView, włączona jest metodaCameraEffectlub powiązane są 4 przypadki użycia(StreamSharing) (I87468). - Naprawiliśmy błąd powodujący awarię podczas nagrywania filmu:
AssertionError: nieprawidłowy stan dźwięku wewnętrznego: BEZCZYNNOŚĆ. (I38d4b, b/414259796) - Rozwiązaliśmy problem, który powodował, że gdy aplikacja działała na wyświetlaczu zewnętrznym, a urządzenie było w orientacji poziomej, podgląd w
PreviewViewbył rozciągnięty lub obrócony (Ia917a). - Rozwiązaliśmy problem polegający na tym, że ustawienia stabilizacji podglądu nie były prawidłowo stosowane, gdy strumień z kamery był udostępniany między podglądem a funkcją VideoCapture (I5430e).
CameraXViewfinderteraz prawidłowo obsługuje zastępowanie powierzchni w bazowymViewfinder. Obejmuje to sytuacje, w których wizjerEXTERNALna poziomie interfejsu API 28 lub niższym znika z ekranu lub gdyCameraXViewfinder(z dowolnymImplementationMode) jest częściąmoveableContentOf(). W przypadkach, gdy nie można utrzymać działania podstawowego elementuViewfinderSurfaceSession,CameraXViewfinderunieważni bieżący elementSurfaceRequestCameraX, co pozwoli CameraX na użycie nowego elementuSurface. (I79432)- Rozwiązuje problem na Androidzie 10/11, który powodował, że
EXTERNALCameraXViewfindermógł wyglądać na rozciągnięty lub nieprawidłowy z powodu zbyt wczesnego zastosowania operacji przekształcania (takich jak skalowanie lub translacja). System czeka teraz na utworzenie powierzchni, zanim zastosuje te przekształcenia w fazie układu, co zapewnia prawidłowe wyniki. (Icc77c) - Funkcja kompozycyjna
CameraXViewfinderdziała teraz prawidłowo zPagerw Compose. Ta zmiana zapewnia, że element kompozycyjny można zresetować, implementując wywołanie zwrotneonResetinterfejsuAndroidView, co obsługuje implementacjeEMBEDDEDiEXTERNAL. (I0d9be) - Naprawiliśmy wyciek właściciela cyklu życia, który występuje, gdy przypadki użycia są odłączane od właściciela cyklu życia bez wyłączania dostawcy aparatu.
Wersja 1.5.0-beta01
7 maja 2025 r.
Publikacja androidx.camera:camera-*:1.5.0-beta01 Wersja 1.5.0-beta01 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Projekty opublikowane z Kotlinem 2.0 wymagają do użycia KGP 2.0.0 lub nowszej wersji (Idb6b5).
- Właściwości
ContentScalei Alignment można teraz używać w wizjerze do skalowania i umieszczania wyświetlanej powierzchni w jej kontenerze, podobnie jak w przypadkuandroidx.compose.foundation.Image. (Ibcea3) TransformationInfoma teraz wartości domyślne dla wszystkich argumentów. Umożliwi to tworzenie wizjerów bez żadnychTransformationInfo, co spowoduje domyślne ustawienie obrotu źródła na 0, brak odbicia lustrzanego źródła i brak prostokąta przycięcia. (I2b1b2)- Dodano
LifecycleCameraProvider, czyli dostawcę kamery, którego można utworzyć z różnymi konfiguracjami funkcji, takimi jak dostęp do kamery urządzenia wirtualnego przez skonfigurowanie dostosowanego kontekstu. (Ia2992)
Poprawki błędów
- Rozwiązaliśmy problem z zawieszaniem się podglądu podczas korzystania z
ImageAnalysisz innym strumieniem, który używaTEMPLATE_RECORDna urządzeniu Samsung SM-E556B. (Ic0e62, b/409478042) - Rozwiązaliśmy problem z zawieszaniem się podglądu podczas korzystania z
ImageAnalysisz innym strumieniem, który używaTEMPLATE_RECORDna urządzeniu Samsung SM-M556B. (Ic1a6a, b/395822788) - Naprawiliśmy problem z trybem nocnym
AssertErrorw rozszerzeniach na urządzeniach Pixel z Androidem 15 podczas wykonywania operacji związanych z powiększaniem. (I27a5d, b/401460276) - Rozwiązaliśmy problem z nieprawidłowymi współrzędnymi ramki ograniczającej w analizatorze ML Kit podczas korzystania z
CameraController. (Iae91b, b/409808510)
Wersja 1.5.0-alpha06
26 lutego 2025 r.
Publikacja androidx.camera:camera-*:1.5.0-alpha06 Wersja 1.5.0-alpha06 zawiera te zmiany.
Zmiany w interfejsie API
- Dodano
CameraInfo.getTorchStrengthLevel,CameraInfo.getMaxTorchStrengthLeveliCameraControl.setTorchStrengthLevel, aby umożliwić dostosowywanie jasności latarki (I00878) - Dodano nowy interfejs API
CameraController#setTapToFocusAutoCancelDuration, dzięki któremu użytkownicy mogą kontrolować zachowanie automatycznego anulowania w przypadku zdarzeń ustawiania ostrości przez dotknięciePreviewView. Domyślnie CameraX anuluje zdarzenia ustawiania ostrości po 5 sekundach (czyli ostrość aparatu jest resetowana). Ten interfejs API umożliwia zmianę tego czasu lub całkowite wyłączenie automatycznego anulowania. (Icf59a) - Zmieniliśmy nazwę
FLASH_STATE_READYnaNOT_FIRED, a inne nazwy stałychFlashStatezostały uproszczone, aby były bardziej czytelne. (I8771d) - Udostępniliśmy interfejs API doświetlania. Urządzenia z Androidem 15 lub nowszym mogą obsługiwać rozjaśnianie przy słabym oświetleniu. Ta funkcja może automatycznie dostosowywać jasność podglądu, filmu lub strumieni analizy obrazu w słabym oświetleniu. Aplikacje mogą używać nowego interfejsu API do: 1. Aby sprawdzić dostępność funkcji, użyj
CameraInfo#isLowLightBoostSupported. 2. UżyjCameraControl#enableLowLightBoostAsync, aby włączyć tryb, gdy urządzenia go obsługują. 3. UżyjCameraInfo#getLowLightBoostState, aby monitorować stan ulepszenia przy słabym oświetleniu. (I937ed) - Dodano klasy zgodności, aby umożliwić szybsze wysyłanie zapytań innych niż camera2 w camera-feature-combination-query. (Ie97ee)
- W przypadku zdarzeń ustawiania ostrości przez dotknięcie (
CameraController) nowy interfejs APIgetTapToFocusInfoState()udostępnia teraz również odpowiednią pozycję dotknięcia, zwracającLiveDataklasyTapToFocusInfo, podczas gdy poprzedni interfejs APILiveData<Integer>zwracającygetTapToFocusState()został wycofany na rzecz nowego interfejsu API. (I238d2)
Poprawki błędów
- Rozwiązaliśmy problem polegający na tym, że stabilizacja podglądu nie była stosowana, gdy była włączona za pomocą rozszerzeń. (I24ad7)
- Naprawiliśmy błąd, który powodował, że zdarzenie stanu ostrości
CameraControllernie było resetowane doTAP_TO_FOCUS_NOT_STARTED, gdy CameraX automatycznie anulował zdarzenie ostrości, co domyślnie działo się po 5 sekundach. (I31954) - Rozwiązaliśmy problem z zawieszaniem się podglądu podczas korzystania z funkcji Zero Shutter Lag (ZSL) po wykonaniu kilku zdjęć z powodu niezwolnionych zasobów obrazu. (Ic3c2a)
- Naprawiliśmy błędy, które powodowały, że na niektórych urządzeniach filmy UHD miały czerwony odcień, gdy potok obejmował
OpenGL. (Idcedc)
Wersja 1.5.0-alpha05
15 stycznia 2025 r.
Publikacja androidx.camera:camera-*:1.5.0-alpha05 Wersja 1.5.0-alpha05 zawiera te commity.
Zmiany w interfejsie API
- Dodaj
VideoCapture.getSelectedQuality(), aby poznać wybraną jakość na podstawieQualitySelector. (I70508, b/204288986) - Gdy robienie zdjęcia jest wywoływane za pomocą interfejsu API
ImageCapture.OnImageCapturedCallback, można teraz użyć interfejsu ImageInfo w zwróconym interfejsieImageProxy, aby dowiedzieć się, czy lampa błyskowa została uruchomiona za pomocą nowego interfejsu APIImageInfo.getFlashState(). (Id2c61, b/380527406) - Dodaliśmy obsługę formatu wyjściowego
OUTPUT_IMAGE_FORMAT_NV21w przypadkuImageAnalysis. (I484ab) - Usunięcie eksperymentalnej adnotacji artefaktu
featurecombinationquery(I4427f) - Dostosuj zakres współczynnika powiększenia dozwolony dla
CameraControlwedług cech rozszerzeń, gdy włączony jest tryb rozszerzeń. (I85af1)
Poprawki błędów
- Zaktualizowano
compileSdkdo wersji 35, aby umożliwić korzystanie z interfejsu API związanego z Androidem 15. Aplikacje korzystające z bibliotek CameraX będą też musiały zaktualizować ustawienie konfiguracjicompileSdk. (Ic80cd) - Ta biblioteka używa teraz adnotacji JSpecify nullness, które są adnotacjami typu type-use. Deweloperzy Kotlin powinni używać tego argumentu kompilatora, aby wymusić prawidłowe użycie:
-Xjspecify-annotations=strict(jest to ustawienie domyślne od wersji 2.1.0 kompilatora Kotlin). (Idc6c6, b/326456246)
Wersja 1.5.0-alpha04
11 grudnia 2024 r.
Publikacja androidx.camera:camera-*:1.5.0-alpha04 Wersja 1.5.0-alpha04 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Udostępniono
ImageCapture.Builder#setOutputFormatiImageCaptureCapabilities#getSupportedOutputFormatsjako stabilne interfejsy API (Ieb04a). - Dodaj
VideoCapture.getResolutionInfo(), aby uzyskać informacje o rozdzielczości, gdyVideoCapturejest powiązany z cyklem życia. (Icb478) - Metody
PreviewView.getScreenFlashiPreviewView.setScreenFlashOverlayColorsą teraz dostępne jako stabilne interfejsy API. (I74fee)
Poprawki błędów
- Rozwiązaliśmy problem z nieudanym robieniem zdjęć z lampą błyskową w ciemności na urządzeniu Vivo 1610. (I366f4)
- Naprawiliśmy błąd, który powodował nieoczekiwane wyłączanie się latarki po zrobieniu zdjęcia na urządzeniu Redmi Note 6 Pro. (I2e0e8, b/377144569)
- Rozwiązaliśmy problem występujący na urządzeniach Pixel z Androidem 15, który powodował, że tryb NOCNY w rozszerzeniach nie robił zdjęć, dopóki aparat nie ustawił ostrości na obiekcie w pobliżu. (I228d4)
- Rozwiązaliśmy problem z nieprawidłowym działaniem funkcji robienia zdjęć, gdy rozszerzenia są włączone, a
VideoCapturejest powiązany. (I5c745) - Włączono obsługę
UltraHDRrobienia zdjęć w rozszerzeniach, jeśli urządzenie to obsługuje. (I48300) - Rozwiązaliśmy problem z czasem błysku podczas robienia zdjęć z lampą błyskową za pomocą
CameraEffectna urządzeniach TCL. (I7698c)
Wersja 1.5.0-alpha03
30 października 2024 r.
Publikacja androidx.camera:camera-*:1.5.0-alpha03 Wersja 1.5.0-alpha03 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Dodaj interfejsy API formatu wyjściowego dla plików RAW i RAW + JPEG
ImageCapture. Sprawdzanie możliwości urządzenia jest dostępne wImageCaptureCapabilities#getSupportedOutputFormats.OUTPUT_FORMAT_RAWsłuży do robienia zdjęć w formacie RAW (Adobe DNG), aOUTPUT_FORMAT_RAW_JPEG– do jednoczesnego robienia zdjęć w formatach RAW i JPEG. Nowy interfejs APIImageCapture#takePicturesłuży do jednoczesnego robienia zdjęć. Musi on udostępniać 2OutputFileOptions– pierwszy dla obrazu RAW, a drugi dla obrazu JPEG. (Ib0f3d)
Poprawki błędów
- Rozwiązaliśmy problem z niedoświetleniem podglądu i filmu na urządzeniach TCL, gdy włączona jest funkcja
VideoCapture. (Id7a64) - Rozwiązaliśmy problem, który powodował, że wywołanie
startFocusMeteringzPreviewView.getMeteringPointFactorynie powodowało uzyskania prawidłowych współrzędnych czujnika, gdy efekt był włączony lub gdy były powiązane 4 przypadki użycia (udostępnianie strumienia). (I916c5, b/345993685) - Naprawiliśmy błąd polegający na tym, że zdarzenie
VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGEnie było wywoływane, gdy podczas nagrywania filmu brakowało miejsca na dane. (I35779, b/356399842)
Wersja 1.5.0-alpha02
2 października 2024 r.
Publikacja androidx.camera:camera-*:1.5.0-alpha02 Wersja 1.5.0-alpha02 zawiera te zatwierdzenia.
Nowe funkcje
- Nowe interfejsy API do wysyłania zapytań o funkcje aparatu obsługiwane przez urządzenie. Na przykład sprawdzanie, czy można jednocześnie włączyć HDR i 60 kl./s. Zawiera 2 artefakty: camera-feature-combination-query i camera-feature-combination-query-play-services.
Jest to zgodna wersja interfejsu API
CameraManager#getCameraDeviceSetup#isSessionConfigurationSupportedcamera2 z dodatkowymi danymi dostarczanymi przez Usługi Google Play.
Poprawki błędów
- Rozwiązaliśmy problem z docelową liczbą klatek na sekundę (
Preview/VideoCapture) na urządzeniach starszego typu. Docelowa liczba klatek ustawiona za pomocą interfejsu APIsetTargetFrameRatelubCamera2Interopbyła zawsze zastępowana wartością podaną przezAeFpsRangeLegacyQuirk. Dzięki tej poprawce biblioteka CameraX będzie uwzględniać wartość ustawioną za pomocą interfejsu APIsetTargetFrameRatelubCamera2Interop. (Ie2d32) - Dodano funkcje lampy błyskowej, latarki i 3A do robienia zdjęć za pomocą aplikacji
CameraEffect. Zrobienie zdjęcia zCameraEffectpowinno teraz obejmować te same procesy przed i po zrobieniu zdjęcia (np. wyzwolenie lampy błyskowej, konwergencja 3A itp., jeśli dotyczy) co zrobienie zdjęcia bezCameraEffect. (I5ff30) - Wykluczono problematyczne rozmiary wyjściowe dla
ImageAnalysisna urządzeniu Samsung SM-A057G. GdyImageAnalysisużywa rozdzielczości co najmniej 1920 x 1440, powoduje to problem z czarnym podglądem. Aby uniknąć tego problemu, na urządzeniu SM-A057G zastosowanoExcludedSupportedSizesQuirk. (I63dfe, b/365877975) - Naprawiliśmy problem z docelową liczbą klatek na sekundę (
Preview/VideoCapture), gdy mechanizm udostępniania strumienia jest włączony wewnętrznie w celu udostępniania strumienia wPreviewiVideoCapture. (I4fdac) - Włączono obejście problemu z nieprawidłowymi metadanymi obrazów JPEG na urządzeniach Samsung S10e i S10+. Dzięki tej poprawce CameraX może zapisać obraz JPEG lub zwrócić prawidłowe obiekty Bitmap, gdy na tych urządzeniach zostanie wywołana funkcja
ImageProxy.toBitmap(), jeśli wystąpi problem z nieprawidłowymi metadanymi obrazu JPEG. (Iae493, b/356428987) - Wyłączono rozszerzenia tylnego aparatu Samsunga A52s o identyfikatorze 0, ponieważ podczas robienia zdjęć HDR mogą wystąpić awarie systemowe, a konfigurowanie sesji przechwytywania może się nie powieść w trybach BOKEH lub FACE_RETOUCH. (I03ec9, b/364152642)
- Naprawiliśmy błąd polegający na tym, że zdarzenie
VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGEnie było wywoływane, gdy podczas nagrywania filmu brakowało miejsca na dane. (Ia5b4f, b/356399842) - Rozwiązaliśmy problem polegający na tym, że druga próba nagrania filmu na urządzeniu Oppo A5 (CPH1931) kończyła się niepowodzeniem. (I181d6)
Wersja 1.5.0-alpha01
4 września 2024 r.
Publikacja androidx.camera:camera-*:1.5.0-alpha01 Wersja 1.5.0-alpha01 zawiera te zatwierdzenia.
Nowe funkcje
- Wydaliśmy nowy artefakt
camera-composedla adaptera CameraX Viewfinder Compose, który wyświetla strumień podglądu z CameraXSurfaceRequestzcamera-core. (I8666e) - Dodano nowy element kompozycyjny
CameraXViewfinder, który działa jako idiomatyczny element kompozycyjny dostosowującySurfaceRequestCameraX do elementu kompozycyjnegoViewfinder. (I4770f)
Zmiany w interfejsie API
- Udostępnij interfejs API do konfigurowania ustawień kompozycji na potrzeby jednoczesnego nagrywania filmów z 2 aparatów. Ustawienia obejmują wartość alfa do mieszania, przesunięcie we współrzędnych x, y oraz skalę szerokości i wysokości okna wyświetlania klatki kamery. Przesunięcie, szerokość i wysokość są określane w znormalizowanych współrzędnych urządzenia. (Ia2b8a)
- Udostępniliśmy
CameraProvider.getCameraInfojako formalny interfejs API. (I901cd) - Dodano interfejs API
PendingRecording.withAudioEnabled(boolean initialMuted)do kontrolowania początkowego stanu wyciszenia. (I635c3, b/354829267)
Poprawki błędów
- Naprawiliśmy błąd powodujący awarię, gdy metoda
bindToLifecyclejest wywoływana z uszkodzonym obiektemLifecycleOwner. (I6e6d8) - Rozwiązaliśmy problem, który powodował, że podczas wiązania z
VideoCapturena urządzeniu Motorola Edge 20 Fusion podgląd z przedniego aparatu był czarnym ekranem. (I1fe88) - Zoptymalizowaliśmy konfigurację wykrywania gestów powiększania w aplikacji
PreviewView, aby poprawić płynność. (I04ffc)
Wersja aparatu 1.4
Wersja 1.4.2
26 marca 2025 r.
Publikacja androidx.camera:camera-*:1.4.2 Wersja 1.4.2 zawiera te zatwierdzenia.
Poprawki błędów
- Rozwiązaliśmy problem z zawieszaniem się podglądu podczas korzystania z
ImageAnalysisz innym strumieniem, który używaTEMPLATE_RECORDna telefonie Samsung Galaxy M55. (Ic1a6a, b/395822788)
Wersja 1.4.1
11 grudnia 2024 r.
Publikacja androidx.camera:camera-*:1.4.1 Wersja 1.4.1 zawiera te zatwierdzenia.
Poprawki błędów
- Rozwiązaliśmy problem występujący na urządzeniach Pixel z Androidem 15, który powodował, że tryb NOCNY w rozszerzeniach nie robił zdjęć, dopóki aparat nie ustawił ostrości na obiekcie w pobliżu. (I228d4)
- Rozwiązaliśmy problem z nieprawidłowym działaniem
ImageCapture#takePicture, gdy rozszerzenia są włączone, aVideoCapturejest powiązany. (I5c745)
Wersja 1.4.0
30 października 2024 r.
Publikacja androidx.camera:camera-*:1.4.0 Wersja 1.4.0 zawiera te zatwierdzenia.
Ważne zmiany od wersji 1.3.0
CameraX 1.4.0 zawiera wiele ciekawych aktualizacji. Podsumowanie:
Główna funkcja: 10-bitowy HDR:
- Z łatwością rób oszałamiające zdjęcia i filmy HDR.
- Obsługuje kodowanie HLG i 10-bitowe HEVC.
- Korzystaj z podglądu 10-bitowego trybu HDR i sprawdzaj możliwości urządzenia.
- Działa z obrazami
UltraHDRi filmami HDR na coraz większej liczbie urządzeń.
Inne przydatne funkcje:
- Rozszerzenia Kotlina: dodano funkcje zawieszenia
takePictureiawaitInstance. - Efekty w czasie rzeczywistym: stosuj efekty takie jak znaki wodne i wyróżnianie obiektów.
- Interfejs API CameraController: nowe elementy sterujące do konfigurowania nagrywania filmów.
- Stabilizacja podglądu: sprawdź możliwości urządzenia i włącz stabilizację.
- Ulepszenia VideoCapture: większa kontrola nad jakością i dostęp do wyższych rozdzielczości.
- Integracja rozszerzeń CameraX: płynna integracja z
VideoCapturei nowymi funkcjamiImageCapture. - Shutter Sound API: łatwe sprawdzanie regionalnych wymagań dotyczących dźwięku migawki.
- Błysk na ekranie: lepsze zdjęcia w słabym oświetleniu robione przednim aparatem.
- Interfejsy API metadanych rozszerzeń aparatu: interfejsy API obsługujące dostosowywanie intensywności rozszerzeń i otrzymywanie powiadomień o bieżącym trybie rozszerzeń w
ExtensionMode#AUTO. Więcej informacji o poprawkach błędów znajdziesz w ogłoszeniach dotyczących wersji beta i RC.
Wersja 1.4.0-rc04
16 października 2024 r.
Publikacja androidx.camera:camera-*:1.4.0-rc04 Wersja 1.4.0-rc04 zawiera te zatwierdzenia.
Poprawki błędów
- Rozwiązaliśmy problem, który powodował, że wywołanie
startFocusMeteringzPreviewView.getMeteringPointFactorynie powodowało uzyskania prawidłowych współrzędnych czujnika, gdy efekt był włączony lub gdy były powiązane 4 przypadki użycia (udostępnianie strumienia). (I916c5, b/345993685)
Wersja 1.4.0-rc03
2 października 2024 r.
Publikacja androidx.camera:camera-*:1.4.0-rc03 Wersja 1.4.0-rc03 zawiera te zatwierdzenia.
Poprawki błędów
- Dodano funkcje lampy błyskowej, latarki i 3A do robienia zdjęć za pomocą aplikacji
CameraEffect. Zrobienie zdjęcia zCameraEffectpowinno teraz obejmować te same procesy przed i po zrobieniu zdjęcia (np. wyzwolenie lampy błyskowej, konwergencja 3A itp., jeśli dotyczy) co zrobienie zdjęcia bezCameraEffect. (I5ff30) - Zoptymalizowano płynność powiększania przez rozciąganie w aplikacji
PreviewView(I04ffc) - Odłączono Ultra HDR od możliwości wyjścia 10-bitowego, ponieważ obsługa Ultra HDR nie wymaga już, aby urządzenia miały możliwość wyjścia 10-bitowego. (I96ff2, I0c3b3)
Wersja 1.4.0-rc02
18 września 2024 r.
Publikacja androidx.camera:camera-*:1.4.0-rc02 Wersja 1.4.0-rc02 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawiliśmy błąd powodujący awarię, gdy metoda
bindToLifecyclejest wywoływana z uszkodzonym obiektemLifecycleOwner. (I6e6d8) - Dodano animację widoczności w
ScreenFlashViewdlaScreenFlash#apply, co rozwiązuje też problemy związane z asynchroniczną zmianą jasności po pewnym czasie. (I37cdb) - Poprawiliśmy płynność powiększania przez zastąpienie ustawień powiększenia w platformie na obsługiwanych urządzeniach.
Wersja 1.4.0-rc01
7 sierpnia 2024 r.
Publikacja androidx.camera:camera-*:1.4.0-rc01 Wersja 1.4.0-rc01 zawiera te zatwierdzenia.
Nowe funkcje
- Dodano eksperymentalną funkcję
CameraInfo.getCameraInfo, która dostarcza konkretne informacje o aparacie bez konieczności wiązania przypadków użycia z aparatem. (I550d1)
Zmiany w interfejsie API
- Dodano interfejsy API
PreviewView.getScreenFlashiPreviewView.setScreenFlashOverlayColorw przypadkach, gdy interfejsScreenFlashViewnie został wyraźnie dodany. (I43945)
Poprawki błędów
- Rozwiązaliśmy problemy z ekspozycją i odcieniem kolorów, które występowały, gdy robienie zdjęć było robione z lampą błyskową przy słabym oświetleniu i z powiązanym przypadkiem użycia VideoCapture. (Ic9814)
- Rozwiązaliśmy problem, który powodował, że przerwanie żądania
takePicturez włączonymi rozszerzeniami mogło skutkować brakiem wyniku, a następne żądanietakePicturemogło już nie działać. (Iae78f) - Rozwiązaliśmy problem z wyciekiem pamięci, który występował, gdy rozszerzenia były włączone. (Iab276)
- Rozwiązaliśmy problem z nieprawidłowym działaniem rozszerzeń CameraX na urządzeniach takich jak Pixel 7/8 i Samsung Galaxy S24. Problem wynikający z błędu konwersji
Camera2OutputConfigImplw trybie wersji 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.
Publikacja androidx.camera:camera-*:1.4.0-beta02 Wersja 1.4.0-beta02 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Podobnie jak w przypadku
VideoCapture, dodajsetMirrorModedo przypadku użycia podglądu. Będzie obsługiwać włączanie i wyłączanie trybu odbicia lustrzanego w przypadku strumienia podglądu za pomocąOutputConfiguration.setMirrorModez interfejsu API 33 i nowszych. W przypadku starszych interfejsów API nie będzie działać. (I821f4)
Poprawki błędów
- Rozwiązaliśmy problem, który powodował, że aplikacje nie mogły robić zdjęć na urządzeniu Samsung Tab A8, gdy
ImageCapturewybierał rozdzielczość 1920 x 1080 w kombinacjiPreview+VideoCapture+ImageCaptureUseCase. (I5a463, b/336925549) - Rozwiązaliśmy problem, który powodował, że nagrywanie ciągłe mogło nie być kontynuowane po przełączeniu aparatu. (Icb0a1)
Wersja 1.4.0-beta01
14 maja 2024 r.
Publikacja androidx.camera:camera-*:1.4.0-beta01 Wersja 1.4.0-beta01 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Dodano
ZoomGestureDetector.ZoomEvent, aby uwzględnić stany gestu powiększenia. (I84cdf)
Poprawki błędów
- Naprawiliśmy błąd, który powodował, że podczas robienia zdjęcia i korzystania z funkcji ustawiania ostrości przez dotknięcie nie były używane wartości trybu stabilizacji i klatek na sekundę powtarzającego się żądania. Mogło to powodować ponowne tworzenie sesji robienia zdjęcia i problemy z opóźnieniem lub zawieszanie się podglądu na niektórych urządzeniach. (I7dc0b)
- Naprawiliśmy błąd, który uniemożliwiał wybranie wysokiej rozdzielczości, gdy na niektórych urządzeniach włączona była funkcja
CameraEffect. (np. 4000 x 3000 na Samsungu A32 5G). (Ie3ed3, b/337336152) - Naprawiliśmy błąd powodujący awarię podczas robienia zdjęcia z podglądem, gdy
ImageCaptureiVideoCapture(UHD)są powiązane na urządzeniu Pixel 4XL z interfejsem API 29. (I5b288) - Obsługa urządzeń wirtualnych: kontekst przekazywany do
ProcessCameraProviderzachowa identyfikator urządzenia, aby zapewnić funkcjonalność w środowisku urządzenia wirtualnego. (I5ba48)
Wersja 1.4.0-alpha05
17 kwietnia 2024 r.
Publikacja androidx.camera:camera-*:1.4.0-alpha05 Wersja 1.4.0-alpha05 zawiera te zmiany.
Nowe funkcje
- Przekonwertowano
ProcessCameraProviderna implementację w języku Kotlin. (I46d4f) - Dodano funkcje zawieszenia
ImageCapture.takePicture, aby umożliwić ich wywoływanie w sposób idiomatyczny dla języka Kotlin. (I920be)
Zmiany w interfejsie API
- Dodaj interfejsy API formatu wyjściowego do
ImageCapturei metodęgetSupportedOutputFormatsdoImageCaptureCapabilities, aby umożliwić wysyłanie zapytań o możliwości urządzenia. Domyślna wartość formatu wyjściowego toOUTPUT_FORMAT_JPEG, co oznacza, ż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, CameraX będzie robić zdjęcia skompresowane w ultra HDR w formacie pliku graficznego JPEG/R. Format jest zgodny wstecznie z formatem SDR JPEG i obsługuje renderowanie treści HDR. Oznacza to, że w starszych aplikacjach lub na starszych urządzeniach obrazy są wyświetlane jako zwykłe pliki JPEG, a w aplikacjach i na urządzeniach, które zostały zaktualizowane, aby w pełni obsługiwać ten format, obrazy są wyświetlane w trybie HDR. (I5de50) - Dodanie metody
PhysicalCameraInfowCameraInfodo wysyłania zapytań o informacje o aparacie fizycznym oraz dodanie metody ustawiającej/pobierającej identyfikator aparatu fizycznego wCameraSelector(Ic5b90) - Zastąp
CameraController#COORDINATE_SYSTEM_VIEW_REFERENCEDtekstemImageAnalysis#COORDINATE_SYSTEM_VIEW_REFERENCED. Wartość stałej pozostaje bez zmian. Służy do konsolidacji wszystkich stałych w jednym miejscu. (I890bb) - Nowy interfejs API
RetryPolicyumożliwia deweloperom dostosowywanie zachowania ponownych prób inicjowania CameraX. (I36dd2) - Włącz tworzenie obiektu
ImageCaptureLatencyEstimate, aby ułatwić testowanie (Iaba99) - Dodaj:
ImageAnalysis#COORDINATE_SYSTEM_SENSOR. Gdy ta opcja jest używana,MlKitAnalyzerzwraca współrzędne w układzie współrzędnych czujnika aparatu. (I3ec61) - Udostępniony interfejs API metadanych rozszerzeń. Nowe interfejsy
CameraExtensionsInfoiCameraExtensionsControlumożliwiają aplikacjom monitorowanie i dostosowywanie ustawień siły rozszerzenia. Aplikacje mogą uzyskać instancjęCameraExtensionsInfolubCameraExtensionsControlza pomocą nowo dodanych metodExtensionsManager#getCameraExtensionsInfo()lubExtensionsManager#getCameraExtensionsControl(). (I28e1a) - Dodano
ProcessCameraProvider.awaitInstance, czyli wersjęProcessCameraProvider.getInstance, która zawiesza działanie (Ib22b9) - Dodaj interfejs API
PreviewView#getSensorToViewTransform(). Macierz reprezentuje przekształcenie współrzędnych czujnika aparatu we współrzędne urządzeniaPreviewView. Można go użyć do przekształcania współrzędnych z jednegoUseCasena inny. Możesz na przykład przekształcić współrzędne wykrytych obiektów wImageAnalysisna nakładkęPreviewView. (I947ab) - Uczyń interfejs API
camera-viewfinder-corebardziej ogólnym, aby mogły go używaćcamera-viewfindericamera-viewfinder-compose. (I1e295) - Dodaj funkcję
getSurfacedoViewfinderSurfaceRequest. (I781a0) - Używaj
camera-viewfinder-corewcamera-viewfinderi wycofajViewfinderSurfaceRequestorazCameraViewfinder. (I6198c) - Dodano
ZoomGestureDetector, który interpretuje gesty skalowania skonfigurowane specjalnie pod kątem aktywności związanej ze szczypaniem w celu powiększenia. (Ifafbf)
Poprawki błędów
- Rozwiązaliśmy problem z wyborem rozdzielczości
ImageAnalysiszwiązany z ustawieniem domyślnej rozdzielczości docelowej analizatora: rozdzielczość docelowa była nieprawidłowo utrzymywana na poziomie 640 x 480, nawet jeśli aplikacje miały ustawioną inną domyślną rozdzielczość analizatora. Jeśli w aplikacjach występuje ten problem (1.3.0–1.3.2) i nie można ich uaktualnić do nowszych wersji, które zawierają rozwiązanie, można go obejść, bezpośrednio ustawiającResolutionSelectorz preferowaną rozdzielczością i odpowiadającym jejAspectRatioStrategynaImageAnalysisUseCase. (I81f72, b/330091012) - Rozwiązaliśmy problem, który powodował, że żądanie
takePicturew kolejce mogło nie zostać wykonane, jeśli bieżące żądanie nie powiodło się. (Ie0801) - Zastosuj sprawdzanie nieprawidłowych danych JPEG na urządzeniach Vivo X60 i X60 Pro. Może to rozwiązać problem z nieprawidłowo dużym obrazem na tych urządzeniach. (I82247, b/288828159)
- Rozwiązaliśmy problem z nieprawidłowymi metadanymi obrazów JPEG na urządzeniach Samsung A24. Dzięki tej poprawce CameraX może zapisać obraz JPEG, a podczas wywoływania funkcji
ImageProxy.toBitmap()na urządzeniach Samsung A24 mogą być zwracane prawidłowe obiekty Bitmap. (I8d6eb, b/309005680) - Zastosuj sprawdzanie nieprawidłowych danych JPEG na wszystkich urządzeniach Samsung, jeśli zrobione zdjęcie jest większe niż 10 MB. Może to rozwiązać problem z nieprawidłowo dużym obrazem na urządzeniach Samsung. (Ic2a65, b/288828159)
- Usunęliśmy obsługę
ImageAnalysisw rozszerzeniach CameraX, ponieważ wiele implementacji rozszerzeń OEM nie działa dobrze zImageAnalysisi może powodować problemy z niespójnością. (I2d926)
Wersja 1.4.0-alpha04
24 stycznia 2024 r.
Publikacja androidx.camera:camera-*:1.4.0-alpha04 Wersja 1.4.0-alpha04 zawiera te zatwierdzenia.
Nowe funkcje
- Nowy artefakt: camera-effects: biblioteka do stosowania efektów w czasie rzeczywistym do danych wyjściowych CameraX, w tym
Preview,VideoCapturelubImageCapture. Ten artefakt zawiera implementacje OpenGL interfejsu APICameraEffect, który skutecznie manipuluje danymi wyjściowymi z kamery. OverlayEffect: do rysowania nakładek za pomocą interfejsu Canvas API na Androidzie. Dzięki temu aplikacja może dodawać znak wodny lub wyróżniać wykryte obiekty na obrazie z kamery.- Interfejsy API
DynamicRangedo podglądu: zakres dynamiki można teraz ustawić w przypadku podglądu, niezależnie od przypadku użycia wideo. Umożliwia to korzystanie z zakresów dynamicznych HDR, takich jak HLG10, tylko w przypadku podglądu. WCameraInfosą też dostępne nowe interfejsy API, które umożliwiają sprawdzanie, jakie zakresy dynamiczne obsługuje dany aparat.
Zmiany w interfejsie API
- Zmieniono nazwę
ScreenFlashUiCompleternaScreenFlashListeneri przeniesionoScreenFlashUiCompleter#getExpirationTimeMillisdo parametruexpirationTimeMilliswScreenFlash#apply. (I13944) - Dodano nowe interfejsy API, które umożliwiają ustawianie zakresu dynamicznego w przypadku podglądu i wykonywanie zapytań o zakresy dynamiczne obsługiwane przez poszczególne aparaty. Dzięki temu zakresy dynamiczne HDR, takie jak HLG10, mogą być używane tylko w przypadku podglądu, bez konieczności jednoczesnego powiązania z
VideoCapture. (If25e3) - Zmieniono nazwę
getMirroring()naisMirroring()(I47063) - Dodaliśmy w CameraX obsługę szacowania opóźnienia przechwytywania zdjęć w czasie rzeczywistym. Rozszerzenia aparatu umożliwiają aplikacjom korzystanie z interfejsu API, który podaje szacowany czas robienia zdjęcia. Szacunki uwzględniają bieżące warunki otoczenia, stan aparatu i czas przetwarzania żądań przechwytywania wielu klatek, a także dodatkowy czas na kodowanie przetworzonych buforów, jeśli jest to konieczne. (I05c3a)
- Zmieniono nazwę
ScreenFlashUiControlnaScreenFlash,ScreenFlashUiControl#applyScreenFlashUinaScreenFlash#apply,ScreenFlashUiControl#clearScreenFlashUinaScreenFlash#cleari dodano metodęgetScreenFlashUiApplyTimeoutSecondszamiast bezpośredniego udostępnianiaSCREEN_FLASH_UI_APPLY_TIMEOUT_SECONDS. (Iccdd0)
Poprawki błędów
- Naprawiliśmy wyciek pamięci, który powodował, że aktywności lub fragmenty nie były zwalniane, gdy rozszerzenia były włączone (I14215).
- Rozwiązaliśmy problem, który powodował, że funkcja
getZoomRationieprawidłowo zwracała mniejszą wartość podczas stosowania rosnącego współczynnika powiększenia. (I4aa0d, b/317543616) - Zdarzenie
ImageCapture#ScreenFlash#clearjest wywoływane natychmiast po odłączeniuImageCapturelub zamknięciu kamery. Rozwiązuje to też niektóre błędy, w przypadku których zdarzenie nie jest wywoływane, ponieważ przechwytywanie w tych scenariuszach nie zostało prawidłowo zakończone. (If99f9) - Naprawiliśmy błąd powodujący awarię, gdy cykl życia został zatrzymany przed zakończeniem żądania
takePicture(Idf017, b/306202751). - Rozwiązaliśmy problem, który powodował, że podgląd z aparatu stawał się czarny, gdy na niektórych urządzeniach były włączone rozszerzenia (I1ffd0).
- Naprawiliśmy błąd, który powodował nieprawidłowy czas trwania nagrania wideo na urządzeniach z układem Snapdragon 778G SoC. (If6aa7, b/316057919)
Wersja 1.4.0-alpha03
13 grudnia 2023 r.
Publikacja androidx.camera:camera-*:1.4.0-alpha03 Wersja 1.4.0-alpha03 zawiera te zatwierdzenia.
Nowe funkcje
- Dodano
CameraInfo.mustPlayShutterSound, aby podać informacje o tym, czy dźwięk migawki musi być odtwarzany zgodnie z ograniczeniami regionalnymi. (Ifda84) - Dodano
OnImageCapturedCallback.onCaptureStartediOnImageSavedCallback.onCaptureStarted, aby powiadamiać o rozpoczęciu naświetlania klatki przez aparat. W tym momencie zalecamy odtworzenie dźwięku migawki lub animacji migawki. (Ic49b3) - Dodaliśmy obsługę funkcji błysku na ekranie w CameraX podczas robienia zdjęć przednim aparatem. CameraX zajmie się obsługą interfejsu API po stronie platformy i w razie potrzeby zsynchronizuje czas ze zmianami w interfejsie aplikacji (np. aktywowanie wstępnego przechwytywania AE po zmianie koloru lub jasności ekranu aplikacji). Aplikacje będą musiały tylko dodać implementacje po stronie interfejsu w interfejsie
ScreenFlashUiControludostępnianym CameraX. (I8ae84) - Dodano obsługę implementacji interfejsu funkcji błysku na ekranie w CameraX. Aplikacje będą mogły korzystać z podstawowej implementacji
ImageCapture.ScreenFlashUiControlzPreviewViewlub nowo dodanejScreenFlashView, która doda jednokolorową nakładkę i zmaksymalizuje jasność ekranu podczas robienia zdjęcia z błyskiem na ekranie. (I1810e)
Zmiany w interfejsie API
- Obsługa nowych funkcji rozszerzeń(podgląd po zrobieniu zdjęcia i postęp procesu przechwytywania): dodano interfejsy API
ImageCapture#getImageCaptureCapabilities(), aby aplikacje mogły wysyłać zapytania o możliwości wywołania zwrotnego podglądu po zrobieniu zdjęcia i postępu procesu przechwytywania. Aplikacje mogą włączyć widok po wyświetleniu za pomocąImageCapture.Builder#setPostviewEnabled(). Rozmiar po wyświetleniu można wybrać za pomocąImageCapture.Builder#setPostviewResolutionSelector(). Podczas wywoływaniatakePicture(),onPostviewBitmapAvailableionCaptureProcessProgressedmożna zaimplementować wOnImageSavedCallbacklubOnImageCapturedCallback, aby otrzymywać powiadomienia o postępach w przetwarzaniu i podglądzie, jeśli są obsługiwane. (I5cd88) - Interfejsy API do obliczania przekształcenia współrzędnych z czujnika do bieżącego bufora z flagą wskazującą, czy powierzchnia zawiera informacje o orientacji aparatu (I59096).
- Udostępnij interfejs API, aby wysyłać zapytania do
PreviewCapabitlityw wersji testowejUseCase. (Ie5b6c) - Dodano interfejsy API obsługujące więcej jakości w przypadku
VideoCapture.Recorder.Builder#setVideoCapabilitiesSource(int)można używać zVIDEO_CAPABILITIES_SOURCE_CODEC_CAPABILITIES, aby utworzyć instancjęRecorder, która obsługuje więcej jakości niżVIDEO_CAPABILITIES_SOURCE_CAMCORDER_PROFILE. Typowym przypadkiem użycia jest sytuacja, gdy aplikacja stara się nagrywać filmy w UHD, gdy tylko jest to możliwe, aleCamcorderProfileurządzenia nie zawiera ustawień UHD, mimo że kodek może nagrywać filmy w UHD. (Iedbe2, b/263961771) - Dodaj metodę pobierającą/ustawiającą format wyjściowy
ImageAnalysisdoCameraController. (I9a96c, b/308240643)
Poprawki błędów
- Aparat
1.3.1: ulepszyliśmy działanieProcessCameraProvider#bindToLifecycle(). Główna zmiana polega na optymalizacji procesu identyfikowania najbardziej odpowiednich kombinacji rozmiarów dla:UseCases. Optymalne wyniki różnią się w zależności od konkretnych kombinacjiUseCasei liczby obsługiwanych rozmiarów wyjściowych na urządzeniach docelowych. (I454f2) - Zezwalaj na korzystanie z
VideoCapture, gdy rozszerzenia są włączone. (I91f32) - Rozwiązaliśmy problem z dużymi zdjęciami JPEG na urządzeniach Samsung z serii A71 i M51. Zrobione zdjęcia JPEG zawierają zbędne dane dopełniające 0 w segmencie danych skompresowanych JFIF. Powoduje to, że przechwycone obrazy mają bardzo duży rozmiar pliku. Te zbędne dane dopełniające 0 zostaną usunięte, aby przechwycone obrazy miały normalne rozmiary plików graficznych. (I01afc, b/288828159)
- Wyłącz obsługę
ImageAnalysisna Pixelach, aby uniknąć błędu na Pixelu, który przypadkowo zwraca niepuste obsługiwane rozmiaryImageAnalysis. (I7ec31) - Rozwiązaliśmy problem z wydajnością, który powodował wzrost obciążenia procesora i zużycia energii po włączeniu rozszerzeń. (Ibdccb)
- Dodano procesor Snapdragon 480 do
CameraUseInconsistentTimebaseQuirk. Rozwiązuje to problem na urządzeniach z Androidem 12, które używają tego chipsetu, polegający na tym, że dźwięk w nagraniach jest przesunięty o czas, przez który urządzenie było w stanie zawieszenia. (I58010)
Wersja 1.4.0-alpha02
18 października 2023 r.
Publikacja androidx.camera:camera-*:1.4.0-alpha02 Wersja 1.4.0-alpha02 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Zmień nazwę interfejsu API na
setCameraOpenRetryMaxTimeoutInMillisWhileResumingi zmień nazwę argumentu. (I72370) - Dodanie interfejsów API do wysyłania zapytań o możliwości urządzenia i włączania stabilizacji wideo/podglądu. (I87544)
- Udostępnij interfejs API, aby dostosować maksymalny czas oczekiwania na ponowną próbę otwarcia aparatu. (I0c642)
- Udostępniliśmy interfejs
ProcessCameraProvider.shutdownAsyncjako publiczny interfejs API do testowania, aby umożliwić korzystanie z dostawcy aparatu procesowego w pakietach testów, które mogą wymagać inicjowania CameraX na różne sposoby między testami. (I9eca7) - Dodano interfejsy API do konfigurowania zakresu dynamicznego, liczby klatek i trybu odbicia lustrzanego podczas nagrywania filmów. (Ifb8f7)
- Wycofaj
OutputSizei zastąp goResolutionSelector.ResolutionSelectorto bardziej kompleksowy sposób wybierania rozdzielczości, który jest zgodny z interfejsem API camera-core. (I93abd, b/286801438)
Poprawki błędów
- Rozwiązaliśmy problem z czarnym podglądem na telefonie Samsung Galaxy S23 Ultra 5G, gdy włączone są rozszerzenia Bokeh lub Retusz twarzy z
ImageAnalysisna tylnym aparacie. (I2e8b1) - Rozwiązaliśmy problemy z podglądem i rozciągniętym obrazem
VideoCapturena urządzeniu Moto E5 Play. (73dce2)
Wersja 1.4.0-alpha01
20 września 2023 r.
Publikacja androidx.camera:camera-*:1.4.0-alpha01 Wersja 1.4.0-alpha01 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Dodaj nowy interfejs API, aby uzyskać dostęp do informacji o amplitudzie dźwięku podczas nagrywania. (Id4925)
Poprawki błędów
- Poprawiliśmy stabilność rozszerzeń, zapewniając, że zdarzenia inicjowania i deinicjowania są wywoływane we właściwej kolejności. (Ib3b8e)
- Naprawiliśmy błąd konfiguracji sesji przechwytywania, który występował, gdy przekroczono obsługiwaną kombinację powierzchni z powodu wewnętrznego dodania dodatkowej powtarzającej się powierzchni. (Id718c)
- Rozwiązaliśmy problem z dużymi zdjęciami JPEG na urządzeniu Vivo S16. Zrobione zdjęcia JPEG zawierają zbędne dane dopełniające 0 w segmencie danych skompresowanych JFIF. Powoduje to, że zrobione zdjęcia mają duży rozmiar pliku. Te zbędne dane dopełniające 0 zostaną usunięte, aby przechwycone obrazy miały normalne rozmiary plików graficznych. (I79505, b/299069235)
- Rozwiązaliśmy problem, który powodował, że nie można było powiązać
ImageAnalysiszImageCapturei podglądem, gdy na niektórych urządzeniach były włączone niektóre tryby rozszerzenia. Poprawka będzie zwracać prawidłową wartość, gdy aplikacje będą wysyłać zapytania o dostępnośćImageAnalysisprzezExtensionsManager#isImageAnalysisSupported(). (I7d538) - Zaktualizuj JavaDoc, aby pasował do zachowania. Zamiast natychmiastowego zakończenia działania funkcje
#setZoomRatio,#setLinearZoomi#enableTorchczekają, aż aparat będzie gotowy. Dodaliśmy też informacje o tym, jak uzyskać maksymalne pole widzenia za pomocą interfejsu API#takePicture. (I23588)
Wersja 1.3
Wersja 1.3.4
12 czerwca 2024 r.
Publikacja androidx.camera:camera-*:1.3.4 Wersja 1.3.4 zawiera te zatwierdzenia.
Poprawki błędów
- Rozwiązaliśmy problem, który powodował, że funkcja
getZoomRationieprawidłowo zwracała mniejszą wartość po zastosowaniu większego współczynnika powiększenia. (I4aa0d, b/317543616) - Naprawiliśmy błąd, który powodował, że podczas robienia zdjęcia lub ustawiania ostrości przez dotknięcie nie były używane wartości trybu stabilizacji i FPS powtarzającego się żądania. Mogło to powodować ponowne utworzenie sesji przechwytywania i problemy z opóźnieniem lub zawieszanie się podglądu na niektórych urządzeniach. (I7dc0b)
- Rozwiązaliśmy problem, który powodował, że liczba klatek była ustawiana na niższą wartość podczas wywoływania
setTargetFrameRateza pomocąFRAME_RATE_RANGE_UNSPECIFIED. (I78c61)
Wersja 1.3.3
17 kwietnia 2024 r.
Publikacja androidx.camera:camera-*:1.3.3 Wersja 1.3.3 zawiera te zatwierdzenia.
Poprawki błędów
- Rozwiązaliśmy problem z wyborem rozdzielczości
ImageAnalysiszwiązany z ustawieniem domyślnej rozdzielczości docelowej analizatora: rozdzielczość docelowa była nieprawidłowo utrzymywana na poziomie 640 x 480, nawet jeśli aplikacje miały ustawioną inną domyślną rozdzielczość analizatora. Jeśli aplikacje napotkają ten problem (1.3.0 ~ 1.3.2) i nie można ich uaktualnić do nowszych wersji zawierających rozwiązanie, można go obejść, bezpośrednio ustawiającResolutionSelectorz preferowaną rozdzielczością i odpowiadającym jejAspectRatioStrategynaImageAnalysisUseCase. (I81f72, b/330091012)
Wersja 1.3.2
6 marca 2024 roku
Publikacja androidx.camera:camera-*:1.3.2 Wersja 1.3.2 zawiera te zatwierdzenia.
Poprawki błędów
- Rozwiązaliśmy problem z metadanymi JPEG na urządzeniach Samsung A24. CameraX zapisuje teraz obrazy prawidłowo, a funkcja
ImageProxy.toBitmap()zwraca poprawne obiekty Bitmap. (I8d6eb, b/309005680) - Usunęliśmy opcję rozdzielczości 9280 x 6944 na urządzeniach Redmi Note 9 Pro z powodu problemów. (Ia23da)
Wersja 1.3.1
13 grudnia 2023 r.
Publikacja androidx.camera:camera-*:1.3.1 Wersja 1.3.1 zawiera te zatwierdzenia.
Poprawki błędów
Poprawiliśmy wydajność ProcessCameraProvider#bindToLifecycle(). Główna zmiana polega na optymalizacji procesu identyfikowania najbardziej odpowiednich kombinacji rozmiarów dla: UseCases. Optymalne wyniki różnią się w zależności od konkretnych kombinacji UseCase i liczby obsługiwanych rozmiarów wyjściowych na urządzeniach docelowych. (I454f2)
Oto kilka przykładowych wyników dla różnych scenariuszy:
4 pokoje:
UseCases:Preview+ImageCapture+ImageAnalysis+VideoCapture- Google Pixel 7: od około 430 ms do 60 ms
- Samsung Galaxy S23 Ultra: od około 540 ms do 45 ms
- Samsung A53 5G: około 115–70 ms,
Trzy
UseCases:Preview+ImageCapture+ImageAnalysis- Google Pixel 7: około 9–7 ms
- Samsung Galaxy S23 Ultra: około 6–5 ms
- Samsung A53 5G: od około 32 ms do 12 ms
Dodano procesor Snapdragon 480 do
CameraUseInconsistentTimebaseQuirk. Rozwiązuje to problem na urządzeniach z Androidem 12, które używają tego chipsetu, polegający na tym, że dźwięk w nagraniach jest przesunięty o czas, przez który urządzenie było w stanie zawieszenia. (I58010)
Wersja 1.3.0
18 października 2023 r.
Publikacja androidx.camera:camera-*:1.3.0 Wersja 1.3.0 zawiera te zatwierdzenia.
Ważne zmiany od wersji 1.2.0
- Funkcje wideo, takie jak 10-bitowy HDR, przycinanie, odbicie lustrzane/brak odbicia lustrzanego, wyciszanie/wyłączanie wyciszenia, ustawianie liczby klatek na sekundę i inne.
- Jednoczesne nagrywanie z 2 aparatów
- Biblioteka efektów
- Selektor rozdzielczości
- Wybór aparatu ultraszerokokątnego i teleskopowego
- Przełączanie aparatów podczas nagrywania filmu (funkcja eksperymentalna)
Wersja 1.3.0-rc02
20 września 2023 r.
Publikacja androidx.camera:camera-*:1.3.0-rc02 Wersja 1.3.0-rc02 zawiera te zatwierdzenia.
Poprawki błędów
- Poprawiliśmy stabilność rozszerzeń, zapewniając, że zdarzenia inicjowania i deinicjowania są wywoływane we właściwej kolejności. Rozwiązaliśmy niektóre problemy z czarnym podglądem podczas przełączania trybów rozszerzeń lub aparatów. (Iddaac)
- Rozwiązaliśmy problem, który powodował, że nie można było powiązać
ImageAnalysiszImageCapturei podglądem, gdy na niektórych urządzeniach były włączone niektóre tryby rozszerzenia. Dzięki tej poprawce aplikacje będą otrzymywać prawidłową wartość, gdy będą sprawdzać dostępnośćImageAnalysisza pomocąExtensionsManager#isImageAnalysisSupported(). (I7d538) - Rozwiązaliśmy problem, który powodował, że dźwięk i obraz nagranego filmu nie były zsynchronizowane, gdy na urządzeniu Xiaomi Poco X3 NFC był włączony tryb odbicia lustrzanego. (I20b4c)
Wersja 1.3.0-rc01
23 sierpnia 2023 r.
Publikacja androidx.camera:camera-*:1.3.0-rc01 Wersja 1.3.0-rc01 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Dodano
PendingRecording.asPersistentRecording, aby umożliwić ciągłe nagrywanie, gdyVideoCapture, do którego jest podłączony rejestrator, jest ponownie powiązany. (I517c6)
Poprawki błędów
- Naprawiliśmy błąd powodujący awarię, gdy strumień jest udostępniany zarówno w
VideoCapture, jak i w trybie podglądu. Naprawiliśmy też problem z czarnym ekranem na urządzeniach LEGACY, gdy włączone jest udostępnianie strumienia. - Rozwiązaliśmy problem z dużymi zdjęciami JPEG na urządzeniach z serii Samsung S7 (SM-G930T, SM-G930V). Zrobione zdjęcia JPEG zawierają zbędne dane dopełniające z zerami w segmencie danych skompresowanych JFIF. Powoduje to, że zrobione zdjęcia mają duży rozmiar pliku. Te zbędne dane dopełniające 0 zostaną usunięte, aby przechwycone obrazy miały normalne rozmiary plików graficznych. (I407b0, b/288828159)
- Rozwiązaliśmy problem z dużymi zdjęciami JPEG na urządzeniach z serii Samsung S22 (SM-S901B, SM-S901B/DS) i S22+ (SM-S906B). Zrobione zdjęcia JPEG zawierają zbędne dane dopełniające 0 w segmencie danych skompresowanych JFIF. Powoduje to, że zrobione zdjęcia mają duży rozmiar pliku (około 13 MB) na urządzeniu S22 SM-S901B/DS. Te zbędne dane dopełniające 0 zostaną usunięte, aby przechwycone obrazy miały normalne rozmiary plików graficznych. (I73be9, b/288828159)
- Rozwiązaliśmy problem z dużymi zdjęciami JPEG na urządzeniach Samsung z serii A5, A52, A70 i A72. Zrobione zdjęcia JPEG zawierają zbędne dane dopełniające 0 w segmencie danych skompresowanych JFIF. Powoduje to, że zrobione zdjęcia mają bardzo duży rozmiar (np. około 32 MB lub nawet 96 MB). Te zbędne zera zostaną usunięte, aby rozmiary plików obrazów były normalne. (I97c4d, b/288828159)
- Naprawiliśmy błąd powodujący awarię systemową podczas robienia zdjęć z włączonymi rozszerzeniami (I698f5).
Wersja 1.3.0-beta02
26 lipca 2023 r.
Publikacja androidx.camera:camera-*:1.3.0-beta02 Wersja 1.3.0-beta02 zawiera te zatwierdzenia.
Poprawki błędów
- Używanie latarki jako lampy błyskowej w Pixelu 4 i 5 w celu poprawy jakości zdjęć przy słabym oświetleniu (I56ff5, b/280221967)
- Rozwiązaliśmy problem z dużymi zdjęciami JPEG na urządzeniach z serii Samsung A5 (2017). Zrobione zdjęcia JPEG zawierają zbędne dane dopełniające 0 w segmencie danych skompresowanych JFIF. Powoduje to, że rozmiar pliku z obrazem wynosi około 32 MB. Te zbędne zera zostaną usunięte, aby rozmiary plików obrazów były normalne. (I29837, b/288828159)
- Rozwiązaliśmy problem z nieprawidłowym uruchamianiem ponownej próby w przypadku niepowodzenia przechwytywania na problematycznych urządzeniach wymienionych w
CaptureFailedRetryQuirk. (I7b589)
Wersja 1.3.0-beta01
21 czerwca 2023 r.
Publikacja androidx.camera:camera-*:1.3.0-beta01 Wersja 1.3.0-beta01 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Zmieniono nazwę funkcji
ResolutionSelector.Builder#setHighResolutionEnabledFlag(int)nasetAllowedResolutionModeoraz nazwy stałychResolutionSelector#HIGH_RESOLUTION_FLAG_OFF/ONnaPREFER_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
DynamicRangereprezentuje zakres dynamiczny obrazów. Można go użyć do wybrania formatów High Dynamic Range jako danych wyjściowychVideoCapturedoVideoCapture.Builder#setDynamicRange(). (Ib0377) - Dodano interfejs API
isImageAnalysisSupporteddoExtensionsManager, dzięki któremu aplikacje mogą określić, czy przypadek użyciaImageAnalysismożna powiązać z podglądem iImageCapture, gdy rozszerzenia są włączone. (I1bc63) - Nowej klasy
VideoCapabilitiesuzyskanej zRecordermożna używać do wysyłania zapytań o obsługiwane zakresy dynamiczne i jakości nagrywania filmów na urządzeniu. MetodygetSupportedQualities()iisQualitySupported()interfejsuQualitySelectorsą wycofywane. Zamiast tego użyj metodgetSupportedQualities()iisQualitySupported()interfejsuVideoCapabilities. (I04014) - Nazwa
CameraController#setVideoCaptureTargetQuality()została zmieniona nasetVideoCaptureQualitySelectori przyjmuje argumentQualitySelector, co zapewnia większą elastyczność podczas konfigurowania jakości filmu. WartośćCameraController#getVideoCaptureTargetQuality()zostanie odpowiednio zmieniona nagetVideoCaptureQualitySelector. (I520ed) - Usunięto adnotację eksperymentalną 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 poprawić jakość zdjęć robionych przy słabym oświetleniu. (I6a022, b/286190938)
- Dodaj obsługę formatu
ImageFormat.JPEGdlaImageProxy.toBitmap(). Jeśli nie uda się zdekodować tablicy bajtów JPEG, zostanie wygenerowany błądUnsupportedOperationException. (I81958, b/282057603)
Wersja 1.3.0-alpha07
24 maja 2023 r.
Publikacja androidx.camera:camera-*:1.3.0-alpha07 Wersja 1.3.0-alpha07 zawiera te zatwierdzenia.
Nowe funkcje
- Nowy interfejs API
VideoCapture.Builder# setTargetFrameRate(Range)umożliwia nagrywanie filmów z inną liczbą klatek niż domyślna na urządzeniu. Dostępne liczby klatek na sekundę w nagraniach można sprawdzić za pomocą nowego interfejsu APICameraInfo#getSupportedFrameRates().
Zmiany w interfejsie API
- Zmieniono nazwy stałych
ResolutionSelector#HIGH_RESOLUTION_FLAG_OFF/ONnaALLOWED_RESOLUTIONS_NORMAL/SLOWoraz nazwę funkcji kreatorasetHighResolutionEnabledFlagnasetAllowedResolutionMode. (Iae817) CameraInfo#getSupportedFrameRateRanges()zwraca terazSetzamiastList, aby lepiej odzwierciedlić, że zakresy nie są uporządkowane. (I02f43)- Dodaj detektor błędów do
CameraEffect, aby obsługiwać nieodwracalne błędy (Ice471) - Dodanie konstruktora publicznego w
ResolutionInfow celu ułatwienia testowania (If6d1c) - Udostępniliśmy interfejs API
UseCase.snapToSurfaceRotation(int), który zastępujesetTargetRotationDegrees, i wycofaliśmy interfejsy APIImageAnalysis.setTargetRotationDegrees(int),ImageCapture.setTargetRotationDegrees(int)iVideoCapture.setTargetRotationDegrees(int). (Ia9010) - Dodano nowe interfejsy API
Preview#getTargetFrameRateiPreview.Builder#setTargetFrameRate, aby umożliwić ustawianie i pobieranie docelowej liczby klatek w przypadku podglądu (If4f22). VideoRecordEvent.Finalizebędzie teraz kończyć działanie z kodem błęduERROR_RECORDING_GARBAGE_COLLECTED, gdy obiektRecordingzostanie zatrzymany z powodu czyszczenia pamięci. (Iba974)
Poprawki błędów
- Naprawiono błąd
NullPointerException, gdy rozmiary danych wyjściowych w pamięci podręcznej wStreamConfigurationMapCompatmają wartość null. (Idf124, b/282025204) - Rozwiązaliśmy problem polegający na tym, że
Preview.setSurfaceProvider(null)nie wstrzymuje podglądu w rozszerzeniach (Ia903e). - Rozwiązaliśmy problem, który powodował, że podczas otwierania aparatu, gdy
VideoCapturejest powiązany, pojawiał się błądConcurrentModificationException. (Ic8ac4)
Wersja 1.3.0-alpha06
19 kwietnia 2023 r.
Publikacja androidx.camera:camera-*:1.3.0-alpha06 Wersja 1.3.0-alpha06 zawiera te zatwierdzenia.
Nowe funkcje
- Jednoczesne korzystanie z aparatów to nowa funkcja wprowadzona w Androidzie 11, która umożliwia jednoczesne przesyłanie strumieniowe z aparatów, np. pozwala na jednoczesne działanie przedniego i tylnego aparatu urządzenia. CameraX obsługuje obecnie tylko 2 aparaty jednocześnie, co umożliwia działanie 2 aparatów w tym samym czasie, przy czym każdy z nich może mieć maksymalnie 2 powiązane przypadki użycia ({@link UseCase}). Maksymalna rozdzielczość to 720p lub 1440p. Więcej informacji znajdziesz pod tym linkiem: CameraManager#getConcurrentCameraIds().
- Przedstawiamy nowy interfejs API
ResolutionSelector, który obejmuje te funkcje:- Aplikacje mogą określać strategie dotyczące formatu obrazu i rozdzielczości, aby wybrać najlepszą rozdzielczość dla swoich potrzeb.
- Wszystkie parametry rozmiaru i formatu obrazu są wyrażone we współrzędnych czujnika aparatu.
- Aplikacje mogą implementować niestandardowy filtr rozdzielczości, aby uporządkować obsługiwane rozmiary w żądanej kolejności.
- Aplikacje mogą też włączyć przechwytywanie w wysokiej rozdzielczości, aby uzyskiwać obrazy o wyższej rozdzielczości. Pamiętaj jednak, że użycie wysokiej rozdzielczości może wydłużyć czas przechwytywania.
- Dodano
VideoCaptureinterfejsy API powielania. Filmy nagrane przezVideoCapturenie są domyślnie odwracane. Domyślnie podgląd z aparatu jest jednak odwrócony w przypadku przedniego aparatu. Interfejsy API do odbicia lustrzanegoVideoCaptureumożliwiają dopasowanie do podglądu z aparatu podczas korzystania z przedniego aparatu. Są 3MirrorMode,OFF,ONiON_FRONT_ONLY. Aby dopasować obraz do podglądu z aparatu, zalecamy użycieON_FRONT_ONLY, co oznacza, że odbicie lustrzane nie jest włączone w przypadku tylnego aparatu, ale jest włączone w przypadku przedniego aparatu.
Zmiany w interfejsie API
- Udostępniono nowy interfejs API
ResolutionSelector. Aplikacje mogą określać strategie dotyczące formatu obrazu i rozdzielczości za pomocą reguł zastępczych lub niestandardowego filtra rozdzielczości, aby uzyskać pożądane wyniki. Aplikacje mogą określić flagę, aby włączyć przechwytywanie w wysokiej rozdzielczości. Dzięki temu CameraX będzie mógł wybierać wyższe rozdzielczości podczas robienia zdjęć i nagrywania filmów. Pamiętaj jednak, że użycie wysokiej rozdzielczości może wydłużyć czas przechwytywania. (Ibed95) - Zakresy liczby klatek na sekundę obsługiwane przez algorytm AE można teraz sprawdzać za pomocą
CameraInfo#getSupportedFrameRateRanges(). (Iaa67f) - Ujednolicenie nazw wszystkich metod związanych z liczbą klatek na sekundę, aby używały nazwy „FrameRate”. Popraw błąd w javadoc w
VideoCapture#getTargetFrameRate()(I83304) - Wycofano starsze interfejsy API
setTargetAspectRatioisetTargetResolution. Zamiast tego użyj nowego interfejsu APIResolutionSelector. (I542c3) - Dodaliśmy publiczne interfejsy API do jednoczesnego korzystania z obrazu z obu aparatów, w tym:
List<List<CameraInfo>> getAvailableConcurrentCameraInfos()ConcurrentCamera bindToLifecycle(@NonNull ConcurrentCameraConfig concurrentCameraConfig)boolean isConcurrentCameraModeOn()orazConcurrentCameraConfig,SingleCameraConfigiConcurrentCamera(Iab1c1)
- Ustawienie
ImageProcessor.Response#getOutputImagejako NonNull (Ib9c60) - Dodano interfejsy API powielania (
VideoCapture), w tymVideoCapture.Builder.setMirrorMode(int)iVideoCapture.getMirrorMode(). Interfejsy API są przydatne w przypadku aplikacji, które wymagają, aby nagrywanie wideo było zgodne z typowym zachowaniem podglądu z aparatu, tzn. podgląd z tylnego aparatu nie jest odbiciem lustrzanym, ale podgląd z przedniego aparatu jest odbiciem lustrzanym. (I713b6, b/194634656) - Dodaj interfejs API
setTargetFrameRate()wVideoCapture.Builderi interfejs APIgetTargetFramerate()wVideoCapture(I109d4) - Ustaw
SurfaceOutputjako rozszerzenie Closable i ukryj publiczny konstruktor SurfaceOutput.Event. (I60ea8) - Dodano
Recording.mute, aby dynamicznie wyciszać lub wyłączać wyciszenie nagrania w trakcie przetwarzania. Gdy nagranie w trakcie przetwarzania zostanie wyciszone,RecordingStatsbędzie zawieraćAudioStats.AUDIO_STATE_MUTED. (Ie17fc) - Parametr
#setEffects()nie może mieć wartości null. Dodaj interfejs API#clearEffects()do usuwania efektów. Aby usunąć efekty, aplikacja powinna wywołać funkcję#clearEffects(). (I4b4d9) - Dodanie drugiego konstruktora dla
ViewfinderSurfaceRequest.Builder, aby użyć kreatora dla konstruktora kopiującego (I621a7)
Poprawki błędów
- Rozwiązaliśmy problem, który powodował, że aplikacje wywołujące interfejs Extensions API mogły ulegać awarii podczas zamykania aparatu (Ib27e5).
- Rozwiązaliśmy problem, który powodował, że na niektórych urządzeniach funkcja
VideoCapturenie działała z przednim aparatem. Na przykład na telefonach Samsung Galaxy S23 i Xiaomi 2107113SG. (Ibec7e, b/270656244) - Rozwiązaliśmy problem, który powodował, że robienie zdjęć za pomocą aplikacji Pliki w folderze publicznym w pamięci zewnętrznej zawsze kończyło się niepowodzeniem na urządzeniach z Androidem 10 lub nowszym. Pamiętaj, że w Androidzie 10 robienie zdjęć za pomocą pliku w folderze publicznym pamięci zewnętrznej wymaga też ustawienia wartości
requestLegacyExternalStoragena „true” w tagu aplikacji. (I11b2c) - Naprawiono awarię
RejectedExecutionExceptionwDefaultSurfaceProcessor. Awaria może wystąpić, gdy usługaVideoCapturejest powiązana, a aktywność jest wstrzymana. (Idb46a, b/273713906)
Wersja 1.3.0-alpha05
22 marca 2023 r.
Publikacja androidx.camera:camera-*:1.3.0-alpha05 Wersja 1.3.0-alpha05 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Dodano interfejsy API rotacji
VideoCapture, w tymVideoCapture.Builder.setTargetRotation(int),VideoCapture.setTargetRotation(int),VideoCapture.setTargetRotationDegrees(int)iVideoCapture.getTargetRotation(). Interfejsy API są przydatne w przypadku aplikacji, które blokują orientację urządzenia. Dodano teżImageCapture.setTargetRotationDegrees(int)iImageAnalysis.setTargetRotationDegrees(int). (Id3ffe, b/205242781) - Zezwalaj na
VIDEO_CAPTUREiPREVIEW|VIDEO_CAPTUREjako cel efektów. Efekty kierowane naVIDEO_CAPTUREzostaną zastosowane do UseCaseVideoCapture. Efekty kierowane naPREVIEW|VIDEO_CAPTUREzostaną zastosowane do udostępnionego strumienia przed skopiowaniem do podglądu i strumieniaVideoCapture. (Iee6f3)
Poprawki błędów
- Aparat
1.2.2: rozwiązaliśmy problem, który powodował, że rozszerzenia CameraX nie działały prawidłowo, gdy na niektórych urządzeniach, takich jak Pixel, włączony był ProGuard (I90aa2). - Naprawiliśmy błąd w
PreviewView, który powodował, że jeśli aplikacja sama obsługiwała orientację ekranu, podgląd mógł ulec zniekształceniu po obróceniu. Dzieje się tak tylko na niektórych urządzeniach. Problem można odtworzyć na Pixelu 4a, Pixelu 5 i Pixelu 6a. (I14340, b/223488673)
Wersja 1.3.0-alpha04
22 lutego 2023 roku
Publikacja androidx.camera:camera-*:1.3.0-alpha04 Wersja 1.3.0-alpha04 zawiera te zatwierdzenia.
Nowe funkcje
Nowa funkcja obsługująca wcześniej nieobsługiwane kombinacje Surface przez udostępnianie jednego strumienia wielu UseCase.
- Wcześniej, gdy powiązano „Preview, VideoCapture, ImageAnalysis” na poziomie sprzętowym aparatu FULL i niższym lub „Preview, VideoCapture, ImageCapture” na poziomie sprzętowym LEGACY, CameraX zgłaszał błąd
IllegalArgumentException. - Nowe działanie polega na tym, że powiązania będą działać bez zgłaszania wyjątków. Zamiast tego CameraX używa OpenGL do kopiowania udostępnionego strumienia zarówno do podglądu, jak i do VideoCapture.
- W rezultacie aplikacja może odnotować wzrost opóźnienia i zużycia energii.
Zmiany w interfejsie API
- Dodaj interfejs API, aby przekonwertować
ImageProxynaBitmap. Obsługiwane formatyImageProxytoImageFormat.YUV_420_888iPixelFormat.RGBA_8888. Jeśli format jest nieprawidłowy, zostanie wygenerowany błądIllegalArgumentException. (Ic7110) - Dodaj
CoroutineCameraViewfinder, aby umożliwić konfigurowanie wizjera za pomocą funkcji zawieszania w Kotlinie. (I657bc) - Dodaj nowy konstruktor publiczny dla
ViewfinderSurfaceRequest. Zapewnia elastyczność, gdy użytkownik nie może podaćCameraCharacteristics. (Ie6549)
Poprawki błędów
- Naprawiliśmy błąd powodujący awarię rozszerzeń na niektórych urządzeniach Samsung, gdy aplikacja jest zbyt szybko wstrzymywana i wznawiana (Iaca26).
Wersja 1.3.0-alpha03
25 stycznia 2023 r.
Publikacja androidx.camera:camera-*:1.3.0-alpha03 Wersja 1.3.0-alpha03 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Dodano parametr
CameraInfo.getIntrinsicZoomRatio, aby podać informacje o kącie widzenia w odniesieniu do kamery domyślnej. (Ib300c) - Dodano
CameraInfo.getLensFacing, aby podać informacje o kierunku obiektywu. DodanoCameraSelector#LENS_FACING_EXTERNALjako funkcję eksperymentalną do wybierania kamer zewnętrznych. (Icaf3e) - Dodaj do
CameraControllerelement#setEffect(), który umożliwia dodawanie efektów do obrazu z kamery. (I1d21f) - Dodaj metodę
invalidate()doSurfaceRequest. Dostawca platformy może powiadomić, że wcześniej podana platforma nie jest już prawidłowa. (Idc649) - Dodaj interfejs API
ImageProcessor. Ten interfejs służy do wstrzykiwania efektów przetwarzania końcowego do potokuImageCapture. (I575c6) - Dodaliśmy interfejs API
Recorder.Builder.setAspectRatio(), który można połączyć zQualitySelector, aby obsługiwać więcej rozdzielczości wideo. (I8a082) - Dodano
Recorder.Builder#setTargetVideoEncodingBitRate, aby ustawić docelowe kodowanie wideoBitRate, iRecorder#getTargetVideoEncodingBitRate, aby uzyskać docelową szybkość transmisji bitów kodowania wideo. (I5984d)
Poprawki błędów
- Naprawiono błąd, który powodował, że funkcja
ImageCapturenie działała, gdy nie było lampy błyskowej, a tryb lampy błyskowej był włączony. (I9e8b4, b/263391112) - Rozwiązaliśmy problem z uszkodzeniem obrazu JPEG podczas zapisywania danych o lokalizacji Exif na niektórych urządzeniach Samsung z Androidem 12. (Ib7086, b/263747161, b/263289024)
- gdy ustawiasz priorytet latarki/powiększenia przed zakończeniem inicjowania aparatu, np. wywołując
CameraController#enableTorch, oczekujące działanie jest zapisywane w pamięci podręcznej i przesyłane po zakończeniu inicjowania. (I11e92, b/264157663)
Wersja 1.3.0-alpha02
7 grudnia 2022 r.
Publikacja androidx.camera:camera-*:1.3.0-alpha02 Wersja 1.3.0-alpha02 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- dodaj nowy interfejs API do stosowania efektu przetwarzania końcowego do danych wyjściowych podglądu. (Ic17d5)
- Zmieniono nazwę
OutputOptions.getDurationLimitnaOutputOptions.getDurationLimitMillisiOutputOptions.setDurationLimitnaOutputOptions.setDurationLimitMillis. (I91f0c) - Dodano klasę
AudioConfigdo obsługi ustawień związanych z dźwiękiem podczas nagrywania filmu. Adnotacja@RequiresPermissionzostała przeniesiona z funkcjistartRecordingdoAudioConfig, aby uniknąć niepotrzebnych próśb o uprawnienia w przypadkach, gdy dźwięk nie jest potrzebny. (I28755) - Usuń klasy Metadata,
OnVideoSavedCallback,OutputFileOptionsiOutputFileResults, które nie są już używane po zastosowaniu nowego interfejsu API do przechwytywania wideo. (I38cd8) - Zastosuj nowy interfejs API do przechwytywania wideo. Metody
getVideoCaptureTargetSizeisetVideoCaptureTargetSizezostały zastąpione odpowiednio metodamigetVideoCaptureTargetQualityisetVideoCaptureTargetQuality, ponieważ metodasetTargetResolutionnie jest już obsługiwana. (I2a1d5)
Poprawki błędów
- Usuń wycofany interfejs API
core.VideoCapture. (I531e0) - Rozwiązaliśmy problem polegający na tym, że wywołanie zwrotne
onErrornie jest wywoływane podczas robienia zdjęć bez uprawnień do pamięci (I936db, b/244807669). - Popraw jakość i niezawodność rozszerzeń aparatu. Rozszerzenia aparatu są wyłączone na urządzeniach Motorola z rozszerzeniami aparatu w wersji 1.1.0 lub starszej z powodu problemów z obsługą efektu bokeh, robieniem zdjęć i niewznawianiem podglądu. (Id3ce3)
- Naprawiliśmy błąd powodujący awarię systemową, gdy na starszych urządzeniach włączone było przycinanie filmu za pomocą
ViewPort. (I16b8a, b/251357665)
Wersja 1.3.0-alpha01
9 listopada 2022 r.
Publikacja androidx.camera:camera-*:1.3.0-alpha01 Wersja 1.3.0-alpha01 zawiera te zatwierdzenia.
Nowe funkcje
- Wskaźnik
Camera-viewfinderzostał oficjalnie opublikowany.Camera-viewfinderudostępnia podstawowy widżet wizjera, który może wyświetlać przekaz z kamery w przypadku Camera2. Przykład znajdziesz w przykładowym kodzie.
Zmiany w interfejsie API
- Dodano
OutputOptions.setDurationLimit, aby umożliwić ustawienie limitu czasu trwania filmu. Nagrywanie zostanie automatycznie zakończone po przekroczeniu określonego limitu czasu. (I902a0) - Dodaj stan błędu dźwięku nagrania wideo
AudioStats.AUDIO_STATE_SOURCE_ERROR. Wysyłane, gdy konfiguracja źródła dźwięku się nie powiedzie lub wystąpi błąd. (I37410)
Poprawki błędów
- Dodano obejście, które umożliwia niektórym problematycznym urządzeniom ponowne rozpoczęcie rejestrowania, gdy wystąpią błędy. (Id4795)
- Napraw problem z czarnym ekranem w implementacji
PreviewViewSurfaceViewna urządzeniuViewPager2. W ramach rozwiązania problemuPreviewViewbędzie ponownie używaćSurfaceView, jeśli żądana rozdzielczość nie zostanie zmieniona. (Ib3f27) - Obsługa przycinania filmów (funkcja WYSIWYG) w przypadku korzystania z interfejsu API
ViewPortlubCameraController. (Ifbba8, b/201085351) - Rozwiązaliśmy problem, który powodował, że nie można było nagrywać filmów przednim aparatem na urządzeniu Huawei P40 lite. (I87c57, b/250807400)
Wersja 1.2
Wersja 1.2.3
24 maja 2023 r.
Publikacja androidx.camera:camera-*:1.2.3 Wersja 1.2.3 zawiera te zatwierdzenia.
Poprawki błędów
- Rozwiązaliśmy problem, który powodował, że na niektórych urządzeniach funkcja
VideoCapturenie działała z przednim aparatem. Na przykład na telefonach Samsung Galaxy S23 i Xiaomi 2107113SG. (Ibec7e, b/270656244)
Wersja 1.2.2
22 marca 2023 r.
Publikacja androidx.camera:camera-*:1.2.2 Wersja 1.2.2 zawiera te zatwierdzenia.
Poprawki błędów
- Rozwiązaliśmy problem, który powodował, że rozszerzenia CameraX nie działały prawidłowo, gdy na niektórych urządzeniach, takich jak Pixel, włączony był ProGuard (I90aa2).
Wersja 1.2.1
25 stycznia 2023 r.
Publikacja androidx.camera:camera-*:1.2.1 Wersja 1.2.1 zawiera te zatwierdzenia.
Poprawki błędów
- Rozwiązaliśmy problem z uszkodzeniem obrazu JPEG podczas zapisywania danych o lokalizacji Exif na niektórych urządzeniach Samsung z Androidem 12. (b/263289024)
Wersja 1.2.0
7 grudnia 2022 r.
Publikacja androidx.camera:camera-*:1.2.0 Wersja 1.2.0 zawiera te zatwierdzenia.
Ważne zmiany od wersji 1.1.0
- Nowa biblioteka camera-mlkit-vision. Łatwa integracja CameraX z wieloma funkcjami MLKit, takimi jak skanowanie kodów kreskowych, wykrywanie twarzy, wykrywanie tekstu itp. Dodano
MLKitAnalyzerjako nowe interfejsy API. - Nowy eksperymentalny interfejs API Zero-Shutter Lag. Optymalizuje potok przechwytywania, aby zmniejszyć opóźnienie przy zachowaniu dobrej jakości obrazu. Gdy tryb przechwytywania jest ustawiony na
CAPTURE_MODE_ZERO_SHUTTER_LAG, opóźnienie między kliknięciem przycisku migawki a zrobieniem zdjęcia powinno być mniejsze niż w przypadku innych trybów przechwytywania. Na urządzeniach, które nie obsługująZERO_SHUTTER_LAG, zostanie użytyCAPTURE_MODE_MINIMIZE_LATENCY. - Wycofaj:
android.camera.core.VideoCapture. - Dodaliśmy
setStreamUseCase()jako publiczny interfejs APICamera2Interop. - Dodano wymaganie dotyczące poziomu interfejsu API dla:
setOutputImageRotationEnabled. - Zmieniono nazwę
ImageAnalysis.Analyzer#getTargetResolutionOverride()naImageAnalysis.Analyzer#getDefaultTargetResolution(). - Dodano interfejs API do ustawiania metadanych lokalizacji w zapisanym filmie.
- Naprawiliśmy problem z niską liczbą klatek na sekundę podczas korzystania z
VideoCapturei przypadków użycia podglądu w formacie obrazu 16:9. - Rozwiązaliśmy problem z czarnym podglądem, który występował, gdy na niektórych urządzeniach Samsung było włączone rozszerzenie BOKEH, a użytkownik przełączał aparaty.
- Rozwiązaliśmy problem z rozciągniętym obrazem
Preview/VideoCapturena urządzeniach Samsung J7 Prime (SM-G610M) i J7 (SM-J710MN) z interfejsem API na poziomie 27. - Wyłączono obejście problemu polegające na odwracaniu obszaru AF w poziomie w przypadku przednich aparatów na urządzeniach Samsung z Androidem T, ponieważ problem został rozwiązany.
Wersja 1.2.0-rc01
24 października 2022 r.
Publikacja androidx.camera:camera-*:1.2.0-rc01 Wersja 1.2.0-rc01 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Dodaj interfejs API
setStreamUseCasedla:OutputConfiguration. Użytkownik może określić przypadek użycia strumienia na potrzeby sesji strumieniowej, zastępując wewnętrzną logikę CameraX, aby wybrać przypadek użycia strumienia i zoptymalizować go zgodnie ze swoimi potrzebami. (Ib1a95)
Poprawki błędów
- Rozwiązaliśmy problem z rozciągniętym obrazem
Preview/VideoCapturena urządzeniach Samsung J7 Prime (SM-G610M) i J7 (SM-J710MN) z interfejsem API na poziomie 27. Rozdzielczość 1920 x 1080 powoduje rozciągnięcie obrazówPreview/VideoCapture. Dodano obejście, aby nie wybierać rozdzielczości 1920 x 1080 w przypadku podglądu lubVideoCapture, aby uniknąć problemu z rozciągniętym obrazem. (I0e04e) - Naprawiono błąd powodujący niską liczbę klatek na sekundę podczas korzystania z przypadków użycia
VideoCapturei podglądu w formacie obrazu 16:9 na niektórych urządzeniach Huawei. (If8c88, b/223643510) - Rozwiązaliśmy problem z otwieraniem kamery, gdy nie ustawiono
SurfaceProviderpodglądu. W ramach rozwiązania problemu podgląd bez ustawionego parametruSurfaceProvidernie będzie teraz konfigurowany w sesji przechwytywania obrazu z kamery. (I99681)
Wersja 1.2.0-beta02
21 września 2022 r.
Publikacja androidx.camera:camera-*:1.2.0-beta02 Wersja 1.2.0-beta02 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Dodano wymaganie dotyczące poziomu interfejsu API dla
setOutputImageRotationEnabled(I26e3e, b/240993561)
Poprawki błędów
- Wyłączono obejście problemu polegające na odwracaniu poziomo regionu AF przednich aparatów na urządzeniach Samsung z Androidem T, ponieważ problem został rozwiązany. (I05f69)
- Rozwiązaliśmy problem z czarnym podglądem, który występował, gdy na niektórych urządzeniach Samsung było włączone rozszerzenie
BOKEH, a użytkownik przełączał aparaty. (If6168)
Wersja 1.2.0-beta01
24 sierpnia 2022 r.
Publikacja androidx.camera:camera-*:1.2.0-beta01 Wersja 1.2.0-beta01 zawiera te zatwierdzenia.
Nowe funkcje
- Nowa biblioteka
camera-mlkit-vision. Łatwo integruj CameraX z wieloma funkcjami MLKit, takimi jak skanowanie kodów kreskowych, wykrywanie twarzy, wykrywanie tekstu itp. Przykładowy kod znajdziesz tutaj. - Nowy eksperymentalny interfejs API Zero-Shutter Lag. Optymalizuje potok przechwytywania, aby uzyskać mniejsze opóźnienie przy zachowaniu dobrej jakości obrazu. Gdy tryb przechwytywania jest ustawiony na CAPTURE_MODE_ZERO_SHUTTER_LAG, opóźnienie między kliknięciem przycisku migawki a zrobieniem zdjęcia powinno być mniejsze niż w przypadku innych trybów przechwytywania. Na urządzeniach, które nie obsługują trybu ZERO_SHUTTER_LAG, zostanie przywrócony tryb CAPTURE_MODE_MINIMIZE_LATENCY.
- Interfejsy
ImageAnalysis.AnalyzeriMLKitAnalyzerstały się oficjalnymi interfejsami API. - Udostępniono interfejs API do ustawiania metadanych lokalizacji w zapisanych filmach.
- Zmień nazwę
ImageAnalysis.Analyzer#getTargetResolutionOverride()naImageAnalysis.Analyzer#getDefaultTargetResolution().
Poprawki błędów
- Rozwiązaliśmy problem z robieniem zdjęć na urządzeniu Alps k61v1_basic_ref. Obrazy JPEG przechwycone z warstwy HAL mają nieprawidłowe metadane Exif. Metadane Exif nie zawierają tagu 0xffd9 ani 0xffda, który umożliwia usłudze
ExifInterfaceprawidłowe analizowanie atrybutów. Aby obejść ten problem, przechwyć obrazy w formacie YUV, a następnie skompresuj je do formatu JPEG. (I45abb)
Wersja 1.2.0-alpha04
27 lipca 2022 roku
Publikacja androidx.camera:camera-*:1.2.0-alpha04 Wersja 1.2.0-alpha04 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Zmień nazwę
ImageAnalysis.Analyzer#getTargetResolutionOverride()naImageAnalysis.Analyzer#getDefaultTargetResolution(). Zmieniliśmy też działanie, dzięki czemu wartość zwracaną przez tę metodę można zastąpić wartościąImageAnalysis#setTargetResolution(). (If1d36) - Udostępniliśmy interfejs API do ustawiania metadanych lokalizacji w zapisanym filmie. Obiekt
android.location.Locationmożna ustawić za pomocą nowego interfejsu APIandroidx.camera.video.OutputOptions.Builder.setLocation(Location). (I313a0, b/204197544)
Poprawki błędów
- Rozwiązaliśmy problem z robieniem zdjęć z odłączonym podglądem (Ie70b6, b/235119898).
- Naprawiliśmy błąd powodujący awarię aplikacji
Recorderpodczas próby nagrywania, gdy źródło dźwięku jest niedostępne. (I9f652)
Wersja 1.2.0-alpha03
29 czerwca 2022 r.
Publikacja androidx.camera:camera-*:1.2.0-alpha03 Wersja 1.2.0-alpha03 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Usunięto adnotację eksperymentalną dla:
ImageAnalysis.AnalyzeriMLKitAnalyzer. (I0ff22)
Poprawki błędów
- Dodano domyślny limit czasu automatycznego ustawiania ostrości wynoszący 5000 ms, który zakończy część AF z wartością
isFocusSuccessfulfalse, jeśliFocusMeteringActionnie zostanie anulowane, a część AF nie zostanie zbieżna w tym czasie. (Ibc2e3) - Rozwiązano problem z robieniem zdjęć z podglądem bez powiązania (I1d3a2, b/235119898).
- Włączono zaawansowaną implementację rozszerzenia i zaktualizowano wersję interfejsu rozszerzeń obsługi CameraX do 1.2 (I92256).
Wersja 1.2.0-alpha02
1 czerwca 2022 r.
Publikacja androidx.camera:camera-*:1.2.0-alpha02 Wersja 1.2.0-alpha02 zawiera te zatwierdzenia.
Nowe funkcje
- Udostępnienie interfejsu CameraX Zero-Shutter Lag API jako eksperymentalnego.
Zmiany w interfejsie API
- Dodaj nowy tryb przechwytywania
CAPTURE_MODE_ZERO_SHUTTER_LAGwImageCapturei dodajisZslSupportedwCameraInfo, aby wysłać zapytanie o możliwości urządzenia. TrybCAPTURE_MODE_ZERO_SHUTTER_LAGma na celu zapewnienie minimalnego opóźnienia podczas natychmiastowego robienia zdjęć. Jest on implementowany na podstawie bufora pierścieniowego, który zapisuje w pamięci podręcznej pośrednie wyniki przechwytywania, aby później je przetworzyć, gdy użytkownik naciśnie przyciski, aby zrobić zdjęcia. Jeśli {@link VideoCapture} jest powiązany, tryb lampy błyskowej nie jest wyłączony lub rozszerzenie OEM jest włączone, ten tryb zostanie automatycznie wyłączony. (I9ae74) - Metoda Add
ImageAnalysis.getBackgroundExecutor()(Icc945)
Poprawki błędów
- Naprawiliśmy błąd, który powodował, że metoda
ImageCapturetakePicture wyłączała latarkę na zgłoszonych urządzeniach. (Ib5eb5, b/228272227) - Naprawiono błąd, który powodował, że
AssertionErrornie był obsługiwany podczas pobierania charakterystykiCONTROL_ZOOM_RATIO_RANGE(/Ia248a, b/231701345).
Wersja 1.2.0-alpha01
18 maja 2022 r.
Publikacja androidx.camera:camera-*:1.2.0-alpha01 Wersja 1.2.0-alpha01 zawiera te zatwierdzenia.
Nowe funkcje
- Uruchomiono nową bibliotekę camera-mlkit-vision
Poprawki błędów
- Naprawiliśmy błąd
QualitySelector, który powodował, że nie można było nagrać filmu w UHD, gdy włączona była strategia zastępcza. Problem występuje, gdyVideoCapturejest powiązany zImageCapturei podglądem na urządzeniu z aparatem o poziomie sprzętowym FULL lub wyższym. Strategia zastępczaQualitySelectorpowoduje, żeVideoCapturenieprawidłowo uzyskuje rozdzielczość FHD. Rozdzielczość UHD jest obsługiwana w tym przypadku użycia i powinna zostać zastosowana. (I0e788, b/230651237) - Naprawiono
NullPointerExceptionw:ImageCapture.takePicture(). (I92366, b/230454568, b/229766155) - Poprawka dotycząca zachowania asynchronicznego wstrzymania w
androidx.camera.video.Recorder(Ia8ce8)
Camera-Camera2, Camera-Core, Camera-Lifecycle i Camera-Video w wersji 1.1.0
Wersja 1.1.0
29 czerwca 2022 r.
Publikacja androidx.camera:camera-*:1.1.0 Wersja 1.1.0 zawiera te zatwierdzenia.
Ważne zmiany od wersji 1.0.0
- Udostępniliśmy biblioteki Landed View, Extension i Video Capture w pierwszej wersji RC. Od wersji 1.1.0-beta01 wszystkie biblioteki CameraX będą miały ten sam numer wersji. Ułatwi to deweloperom śledzenie wersji i zmniejszy złożoność dużych macierzy zgodności wersji.
- Wprowadziliśmy nowe publiczne interfejsy API i funkcje, w tym:
- Dodaj oficjalną bibliotekę camera-video, aby obsługiwać przypadki użycia związane z nagrywaniem filmów.
- Możliwość konwersji YUV na RGB i obracania (
ImageAnalysis.Builder.setOutputImageRotationEnabledisetOutputImageFormat) - Obsługa trybu wielu okien przez umożliwienie aplikacjom CameraX wznowienia działania aparatu, gdy zostanie on przerwany przez inną aplikację i ponownie ustawiona zostanie ostrość.
- Zapewnia prawidłowe działanie CameraX na urządzeniach składanych dzięki rozwiązaniu niektórych problemów z podglądem.
- Dodaliśmy interfejs API
CameraState, który będzie udostępniany przez CameraInfo. - Dodano interfejs API
ProcessCameraProvider.getAvailableCameraInfos(), który umożliwia bezpośrednie pobieranie informacji o dostępnych kamerach. - Format wyjściowy JPEG dla
ImageCapture#OnImageCapturedCallback, gdy rozszerzenia są włączone. - Dodano interfejs API
isFocusMeteringSupportedwCameraInfo, który umożliwia aplikacjom sprawdzanie, czy danyFocusMeteringActionjest obsługiwany przez bieżący aparat. - Udostępniono interfejs API
getResolutionInfo, aby dostarczać informacje o rozdzielczości dla podglądu,ImageCaptureiImageAnalysis. - Dodano nowy interfejs API
ImageCapture.Builder#setJpegQuality, który umożliwia zmianę jakości kompresji obrazu JPEG podczas robienia zdjęć. - Dodaliśmy
CameraSelector#filterdo publicznego interfejsu API, aby filtrować listęCameraInfosna podstawieCameraSelector. - Dodaliśmy metodę
Camera2CameraControl.clearCaptureRequestOptionsdo czyszczenia istniejących opcji żądania przechwytywania. - Dodaliśmy eksperymentalny interfejs API do używania
CameraControllerz zewnętrznymi bibliotekami do przetwarzania obrazów, np. MLKit. - Dodano eksperymentalny interfejs API
CameraInfo#getCameraSelector(), który zwracaCameraSelectorunikalny dla kamery - Przekształcono kilka eksperymentalnych interfejsów API w oficjalne publiczne interfejsy API.
- Zastąpiono adnotację
@Experimentaladnotacją@RequiresOptInw eksperymentalnych interfejsach API. Do wywoływania eksperymentalnych interfejsów API używaj androidx.annotation.OptIn zamiast wycofanego androidx.annotation.experimental.UseExperimental. - Następujące eksperymentalne interfejsy API zostały przekształcone w oficjalne interfejsy API:
CameraXConfig.Builder#setAvailableCamerasLimiter(),CameraXConfig.Builder#setMinimumLoggingLevel(),CameraXconfig.Builder#setSchedulerHandler(),CameraXConfig#getAvailableCamerasLimiter(),CameraXConfig#getMinimumLoggingLevel(),CameraXConfig#getCameraExecutor(),CameraXConfig#getSchedulerHandler(), - Interfejsy API
@ExperimentalCameraFilter - eksperymentalne interfejsy API kompensacji ekspozycji.
- Przeniesiono eksperymentalny interfejs API
UseCaseGroupdla camera-core, camera-lifecycle i camera-video. DodanoViewPort#getLayoutDirection,ViewPort.Builder#setLayoutDirectioniViewPort.Builder#setScaleType, aby umożliwić dostosowywanie widocznego obszaru. - Przekształciliśmy
ExperimentalUseCaseGroupLifecyclew oficjalne publiczne interfejsy API. - Zmiany w dotychczasowych interfejsach API
Renamed MediaStoreOutputOptions.getCollectionużytkownikowiMediaStoreOutputOptions.getCollectionUri.- Nazwa
ActiveRecordingzostała zmieniona na „Nagrywanie”, aby była krótsza. - Zmieniono interfejs API do tworzenia
QualitySelectorna interfejs API oparty na listach
Poprawki błędów
- Rozwiązaliśmy problem z
YuvToJpegProcessorEOFException, gdy włączony jest tryb rozszerzenia i ustawiony jest trybImageCapture#CAPTURE_MODE_MAX_QUALITY. - Nie udało się naprawić konfiguracji kodeka, ponieważ nagrywanie filmu jest zamykane
- Naprawiliśmy problem z rozciągniętym podglądem i formatem obrazu podczas nagrywania w FHD.
- Rozwiązaliśmy problem z brakiem synchronizacji dźwięku i obrazu po wstrzymaniu i wznowieniu odtwarzania na niektórych urządzeniach.
- Rozwiązaliśmy problem polegający na tym, że lampa błyskowa była uruchamiana podczas ustawiania ostrości przez dotknięcie (
startFocusAndMetering), gdy tryb lampy błyskowej był ustawiony na automatyczny lub zawsze włączony w słabym oświetleniu.
Wersja 1.1.0-rc02
1 czerwca 2022 r.
Publikacja androidx.camera:camera-*:1.1.0-rc02 Wersja 1.1.0-rc02 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawiono
NullPointerExceptionw:ImageCapture.takePicture(). (I92366, b/230454568, b/229766155) - Naprawiliśmy błąd polegający na tym, że
AssertionErrornie był obsługiwany podczas pobierania charakterystykiCONTROL_ZOOM_RATIO_RANGE. (Ia248a, b/231701345)
Wersja 1.1.0-rc01
11 maja 2022 roku
Publikacja androidx.camera:camera-*:1.1.0-rc01 Wersja 1.1.0-rc01 zawiera te zatwierdzenia.
Nowe funkcje
- Wydanie pierwszej wersji RC dla camera-video, camera-view i camera-extension
Poprawki błędów
- Rozwiązaliśmy problem, który powodował, że kodek wideo nie był zwalniany, gdy
VideoCapture<Recorder>nie był powiązany, co powodowało, że kolejne użyciaVideoCapture<Recorder>nie działały podczas nagrywania zMediaCodec.CodecException, zwłaszcza na urządzeniach z interfejsem API 21–22. (Ie7f68) - Naprawiono błąd, który powodował, że zdjęcia zrobione w aplikacji
CameraExtensionsActivitynie były usuwane w aplikacjiImageCaptureTest
Wersja 1.1.0-beta03
6 kwietnia 2022 roku
Publikacja androidx.camera:camera-*:1.1.0-beta03 Wersja 1.1.0-beta03 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Konstruktor
CaptureRequestOptionsjest teraz ograniczony. (I261b6) - Dodaliśmy eksperymentalny interfejs API do używania
CameraControllerz zewnętrznymi bibliotekami do przetwarzania obrazów, np. MLKit (I4ea71).
Poprawki błędów
- Rozwiązaliśmy problem, który powodował, że podgląd w aplikacji
PreviewViewbył wyświetlany bokiem, gdy aktywność nie została ponownie uruchomiona po obróceniu urządzenia w trybie wielu okien. (I1ea36, b/223488673) - Rozwiązaliśmy problem z wieloma oknami, który powodował, że po powrocie do aplikacji nie udawało się wznowić działania aparatu, gdy (1) inna aplikacja o wysokim priorytecie otwierała inny aparat, (2) urządzenie było urządzeniem Samsung z Androidem 12. (I7e9f2)
- Dodano obejście problemu z urządzeniami, które ulegają awarii podczas sprawdzania dostępności lampy błyskowej. Na tych urządzeniach latarka nie będzie dostępna. (If26a3, b/216667482)
- Rozwiązaliśmy problem z
AbstractMethodError, który występował, gdy aplikacje używały rozszerzeń i włączały ProGuard. (I7cbaf, b/222726805) - Wymuś 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 i obrazu po wstrzymaniu i wznowieniu na niektórych urządzeniach Samsung z interfejsem API w wersji starszej niż 29. (I64622, b/202798609, b/202798572)
- Rozwiązaliśmy problem z brakiem synchronizacji dźwięku i obrazu po wstrzymaniu i wznowieniu odtwarzania na urządzeniu Sony G3125. (I2a1a5, b/202799148)
- Naprawiliśmy błąd, który powodował awarię, gdy Dyktafon napotkał
InvalidConfigException. To rozwiązanie zapobiega jednak tylko awariom aplikacji, ale nie eliminuje przyczyny błęduInvalidConfigException. Jeśli nadal nie można skonfigurowaćRecorder, aplikacje otrzymają wywołanie zwrotne błędu, gdy rozpocznie się nagrywanie. (I89c29, b/213617227)
Zewnętrzny wkład
- Zaktualizowano interfejs API :compose:ui:ui-test (updateApi) ze względu na migrację test-coroutines-lib (I3366d)
Wersja 1.1.0-beta02
23 lutego 2022 r.
Publikacja androidx.camera:camera-*:1.1.0-beta02 Wersja 1.1.0-beta02 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Dodanie możliwości określenia identyfikatora kamery fizycznej za pomocą Camera2Interop. (I5aed8)
Poprawki błędów
- Rozwiązaliśmy problem z rozciągniętym podglądem na urządzeniu Oppo Find N (I7d004).
- Rozwiązaliśmy problem z Galaxy J7 Prime, który powodował zniekształcenie podglądu. (I4c500)
- Użyj zgodnej szybkości transmisji bitów, aby znaleźć koder wideo. (d969052)
Wersja 1.1.0-beta01
26 stycznia 2022 r.
Publikacja androidx.camera:camera-*:1.1.0-beta01 Wersja 1.1.0-beta01 zawiera te zatwierdzenia.
Nowe funkcje
- Od wersji 1.1.0-beta01 wszystkie biblioteki CameraX będą miały ten sam numer wersji. Ułatwi to deweloperom śledzenie wersji i zmniejszy złożoność dużej macierzy zgodności wersji.
Zmiany w interfejsie API
- Dodano
Camera2CameraControl.clearCaptureRequestOptions, aby umożliwić czyszczenie istniejących opcji żądania przechwytywania. (Ifa07d)
Poprawki błędów
- Rozwiązaliśmy problem z awarią podczas nagrywania filmu na niektórych urządzeniach z Androidem w wersji starszej niż O(API 26). (I88fdf, b/212328261)
- Naprawiliśmy problem z nieprawidłowym regionem autofokusa podczas korzystania z
cameraControl#startFocusAndMetering()w aparacie przednim na urządzeniach Samsung (Ifbf59, b/210548792). - Używanie latarki jako lampy błyskowej na Pixelu 3a i Pixelu 3a XL w celu zwiększenia szybkości i poprawy jakości zdjęć robionych w ciemności (Ib12b6, b/211474332)
- Umożliwia aplikacjom wznowienie działania aparatu, gdy zostanie on przerwany przez inną aplikację o wyższym priorytecie w trybie wielu okien, a fokus zostanie ponownie przeniesiony na aplikację. Pamiętaj, że z powodu problemu z platformą może wystąpić pewne opóźnienie(od 1 sekundy do 10 sekund lub więcej) między zmianą ostrości a ponownym otwarciem aparatu. (I4d092)
Wersja 1.1.0-alpha12
15 grudnia 2021 roku
Publikacja androidx.camera:camera-*:1.1.0-alpha12 Wersja 1.1.0-alpha12 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Usunięto niepotrzebne adnotacje
@RequiresApi(21)z klas/interfejsów wewnętrznych. (I8e286, b/204917951) - Stałe jakości i stałe strategii zastępczej
QualitySelectorzostały zmienione, aby były reprezentowane przez obiekty klasy. Na przykładQualitySelector.QUALITY_HDzmienia się naQuality.HD, aQualitySelector.FALLBACK_STRATEGY_LOWERzmienia się na instancję zwracaną przezFallbackStrategy.lowerQualityOrHigherThan(Quality). Interfejs API używany do tworzeniaQualitySelectorzostał zmieniony na interfejs API oparty na listach. Nowy interfejs APIQualitySelector.fromOrderedList(List<Quality>)będzie odwoływać się do kolejności na liście jakości danych wejściowych, a nie do kolejności utworzonej przezQualitySelector.Procedure. ZajęciaQualitySelector.Procedurezostały usunięte. (I43343) - Metoda
PendingRecording.withEventListener()została usunięta, a detektor zdarzeń musi być teraz przekazywany do metodyPendingRecording.start(). Wymaganie dotyczące detektora zdarzeń ma na celu zachęcenie do obsługi błędów asynchronicznych, które są zgłaszane w zdarzeniuVideoRecordEvent.Finalize. (I1e71d) - Nazwa
ActiveRecordingzostała zmieniona naRecording, aby była bardziej zwięzła. (I77ceb)
Poprawki błędów
- Rozwiązaliśmy problem, który powodował, że zdjęcia zrobione w trybie
FLASH_AUTOw ciemnym otoczeniu na Pixelu 3a i Pixelu 3a XL były niedoświetlone (I13f19, b/205373142). - Zawsze używaj najnowszego rozmiaru wyświetlania, aby określić podgląd
Resolution. (I4a694) - Odfiltrowano kamery, które nie mają funkcji
REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE. Kamery zREQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLEmają minimalny zestaw funkcji obsługiwanych przez każde urządzenie z kamerą. Aparat bezREQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLEmoże być aparatem obsługującym funkcje specjalne i nie obsługuje standardowego wyjścia kolorów.CameraXnie obsługuje przypadków użyciaPreview,ImageCapture,ImageAnalysisaniVideoCapturew przypadku tych kamer. Dlatego należy odfiltrować te kamery, aby zapobiec nieprawidłowemu użyciu. (Ib8cda) CameraSelector#filternie zgłasza już błęduIllegalArgumentException, gdy zbiór wyników jest pusty. (I27804)- Do wybierania ustawień kodera na podstawie profili określonych przez OEM używane są teraz inteligentniejsze metody heurystyczne. (Iaeef0)
- Naprawiono błąd, który powodował, że po rozpoczęciu nagrywania filmu UHD na Pixelu 1 na podglądzie pojawiały się przeplatane kolorowe linie. (I833c6, b/205340278)
Wersja 1.1.0-alpha11
17 listopada 2021 r.
Publikacja androidx.camera:camera-*:1.1.0-alpha11 Wersja 1.1.0-alpha11 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Dodano CameraSelector#filter do publicznego interfejsu API, aby filtrować listę CameraInfos na podstawie CameraSelector. (I105d0)
Dodano interfejs API setOutputImageRotationEnabled do konfiguracji ImageAnalysis. Użytkownik może włączyć obracanie bufora obrazu YUV/RGB. Stopień obrotu to względny obrót obliczany na podstawie obrotu czujnika i obrotu docelowego, który pozwala utrzymać obraz z przodu.
Dodano interfejs API setOutputImageRotationEnabled do konfiguracji ImageAnalysis. Użytkownik może włączyć obracanie bufora obrazu YUV/RGB. Kąt obrotu to względny obrót obliczany na podstawie obrotu czujnika i obrotu docelowego, który pozwala utrzymać obraz z przodu.
Dodaj interfejs API
getSensorToBufferTransformMatrixw ImageInfo. Zwrócona macierz to mapowanie współrzędnych czujnika na współrzędne bufora, czyli od wartościCameraCharacteristics.SENSOR_INFO_ACTIVE_ARRAY_SIZEdo(0, 0, image.getWidth, image.getHeight). Macierz może służyć do mapowania współrzędnych z jednego {UseCase} na inny. Na przykład mapowanie współrzędnych twarzy wykrytych za pomocą ImageAnalysis na podgląd. (I9ff1e)Dodano nowy interfejs API ImageCapture.Builder#setJpegQuality, który umożliwia zmianę jakości kompresji wyjściowego obrazu JPEG podczas robienia zdjęcia. (I8dcf4)
Zmieniono nazwę metody MediaStoreOutputOptions.getCollection na MediaStoreOutputOptions.getCollectionUri. (I16639)
Poprawki błędów
- Rozwiązaliśmy problem polegający na tym, że lampa błyskowa była uruchamiana podczas ustawiania ostrości przez dotknięcie (startFocusAndMetering), gdy tryb lampy błyskowej był ustawiony na automatyczny lub zawsze włączony w warunkach słabego oświetlenia. (Id4c11)
- Wyłączono HDR+ na Pixelu 2 XL / Pixelu 3 XL w trybie MINIMIZE_LATENCY, aby zmniejszyć opóźnienie. (Ib6270, b/203505523)
Zewnętrzny wkład
Wersja 1.1.0-alpha10
13 października 2021 r.
Publikacja androidx.camera:camera-*:1.1.0-alpha10 Wersja 1.1.0-alpha10 zawiera te zatwierdzenia.
Nowe funkcje
- Oficjalnie opublikowano wersję
androidx.camera:camera-video:1.1.0-alpha10jako pierwszą wersję alfa Video. Istnieje kilka znanych problemów, które zostaną rozwiązane w późniejszych wersjach.
Zmiany w interfejsie API
- Dodano adnotację
@RequiresApi(21)do wszystkich klas CameraX i usunięto minSdkVersion z pliku AndroidManifest.xml. Umożliwi to łatwą integrację biblioteki camera-core z aplikacjami, które mają minSdkVersion poniżej 21, ale chcą warunkowo używać ścieżek kodu opartych na interfejsie API 21 lub nowszym. W przypadku aplikacji z minSdkVersion 21 lub nowszą ta zmiana nie wymaga żadnych działań. (Ie7f2e, b/200599470)
Poprawki błędów
- Zgłoś błąd InitializationException, aby aplikacja mogła prawidłowo obsłużyć błąd AssertionError, który wystąpił podczas tworzenia CameraCharacteristics. (Ibec79)
Wersja 1.1.0-alpha09
29 września 2021 r.
Wersje 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 opublikowane. Wersja 1.1.0-alpha09 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Adnotacja ExperimentalUseCaseGroup została usunięta, ponieważ interfejsy API nie są już eksperymentalne. (I01ef5)
Poprawki błędów
- Rozwiązanie problemu z rozmazanymi zdjęciami w trybie
MAXIMIZE_QUALITY. (I173a9, b/193823892) - Rozwiązaliśmy problem z Samsungiem Galaxy J5, który powodował, że aparat zacinał się po zrobieniu zdjęcia z lampą błyskową włączoną lub ustawioną na tryb automatyczny w ciemnym otoczeniu (I3aab9).
- Gdy w przypadku ImageCapture konieczne jest przycięcie, skompresuj przycięty obraz wyjściowy z określonym poziomem 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 wynosić 100. (Ieb37c, b/142856426)
Wersja 1.1.0-alpha08
18 sierpnia 2021 r.
Wersje 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 opublikowane. Wersja 1.1.0-alpha08 zawiera te zatwierdzenia.
Nowe funkcje
- Dodano interfejs API setOutputImageFormat do konfiguracji analizy obrazu. Użytkownik może wybrać ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888 lub ImageAnalysis.OUTPUT_IMAGE_FORMAT_RGBA_8888. Domyślnie wybrany będzie ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888. (I7902d)
Zmiany w interfejsie API
- Adnotacja ExperimentalUseCaseGroupLifecycle została usunięta, ponieważ interfejsy API nie są już eksperymentalne. (I17b85)
Poprawki błędów
- Naprawiliśmy błąd, który powodował, że ekran podglądu na telefonie Huawei P20 Lite był zbyt jasny. Ten problem występuje tylko wtedy, gdy używane są określone specjalne rozdzielczości podglądu wraz z dużą wartością powiększenia. (Idefce, b/192129158)
- Rozwiązaliśmy problem polegający na tym, że lampa błyskowa nie działała na niektórych urządzeniach, gdy tryb lampy błyskowej był ustawiony na FLASH_MODE_ON, a następnie robiono zdjęcia. (Ieb49b)
- Rozwiązaliśmy problem polegający na tym, że podgląd zatrzymywał się na chwilę podczas robienia zdjęć, gdy funkcje VideoCapture, ImageCapture i Preview były powiązane. (I56197, b/193864120)
- Zezwala ImageAnalysis na wybór rozdzielczości większej niż 1080p. Urządzenie o poziomie LIMITED może obsługiwać rozdzielczość RECORD dla ImageAnalysis, gdy jest ono powiązane z Preview i ImageCapture. W takim przypadku rozdzielczość wybrana dla ImageCapture również musi być rozdzielczością rozmiaru RECORD. Aby wybrać rozdzielczość rozmiaru RECORD dla ImageAnalysis, należy ustawić docelową rozdzielczość rozmiaru RECORD zarówno w ImageCapture, jak i ImageAnalysis. Oznacza to, że aplikacja wyraźnie rozumie kompromis i preferuje, aby ImageAnalysis miało większą rozdzielczość, a nie ImageCapture miało MAKSYMALNĄ rozdzielczość. Definicje rozmiarów RECORD i MAXIMUM oraz więcej informacji 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 aparatu, określonej przez CamcorderProfile. Rozmiar MAKSYMALNY odnosi się do maksymalnej rozdzielczości wyjściowej aparatu dla danego formatu lub celu z funkcji StreamConfigurationMap.getOutputSizes(int). (I1ee97, b/192911449)
- Dodaj informacje EXIF do zrobionego zdjęcia. (I01ff0, b/193342619)
- W ImageCapture zwróć identyfikator URI zapisanego obrazu, jeśli lokalizacja zapisu to Plik. (Ib5b49, b/149241379)
- Rozwiązaliśmy problem, który powodował, że zdjęcia zrobione z lampą błyskową były ciemne na wielu urządzeniach. (I4e510)
Wersja 1.1.0-alpha07
21 lipca 2021 r.
Wersje 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 opublikowane. Wersja 1.1.0-alpha07 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawiliśmy problem z Samsungiem Galaxy Note 5, który powodował, że aparat zawieszał się po zrobieniu zdjęcia z lampą błyskową włączoną lub ustawioną na tryb automatyczny w ciemnym otoczeniu (If6871).
- Naprawiliśmy błąd
YuvToJpegProcessorEOFException, który występował, gdy włączony był tryb rozszerzenia i ustawiony był trybImageCapture#CAPTURE_MODE_MAX_QUALITY. (I538bd, b/192017012)
Wersja 1.1.0-alpha06
30 czerwca 2021 r.
Wersje 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 opublikowane. Wersja 1.1.0-alpha06 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Promowanie eksperymentalnych interfejsów API kompensacji ekspozycji dla camera-core (I08ee8)
- Dodaliśmy interfejs API isFocusMeteringSupported w CameraInfo, który umożliwia aplikacjom sprawdzanie, czy dane działanie FocusMeteringAction jest obsługiwane przez bieżący aparat. (Ib45ae, b/188606490)
- Udostępniliśmy interfejs API getResolutionInfo, który dostarcza informacje o rozdzielczości na potrzeby funkcji Preview, ImageCapture i ImageAnalysis. (I2b613, b/188600718)
- Przekształcono te eksperymentalne interfejsy API w oficjalne interfejsy API: CameraXConfig.Builder#setAvailableCamerasLimiter(), CameraXConfig.Builder#setMinimumLoggingLevel(), CameraXconfig.Builder#setSchedulerHandler(), CameraXConfig#getAvailableCamerasLimiter(), CameraXConfig#getMinimumLoggingLevel(), CameraXConfig#getCameraExecutor(), CameraXConfig#getSchedulerHandler(). (I2ade2)
- Udostępniono interfejs CameraProvider, aby zapewnić dostęp do zestawu aparatów. (I1a7b1)
- Promowanie eksperymentalnego interfejsu UseCaseGroup API dla camera-core, camera-lifecycle i camera-video. Dodano
ViewPort#getLayoutDirection,ViewPort.Builder#setLayoutDirectioniViewPort.Builder#setScaleType, aby umożliwić dostosowywanie widocznego obszaru. (I7cee8)
Wersja 1.1.0-alpha05
2 czerwca 2021 r.
Wersje 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 opublikowane. Wersja 1.1.0-alpha05 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Usunięto klasę
Camera2CameraFilter. Sugerujemy wybór aparatu za pomocą CameraFilter i pobranie CameraCharacteristics lub innych informacji związanych z Camera2 za pomocą Camera2CameraInfo, jeśli jest to konieczne. (Ib887c) - Interfejsy API
ExperimentalCameraFilternie są już na etapie eksperymentalnym i stały się oficjalnymi interfejsami API. Można ich używać bez adnotacji OptIn. (I4bc94) - Dodaliśmy interfejs API stanu kamery, który jest dostępny przez
CameraInfo#getCameraState(). (Ia86b4) - Dodano eksperymentalny interfejs API
CameraInfo#getCameraSelector(), który zwraca selektor CameraSelector unikalny dla aparatu (I77f9f).
Poprawki błędów
- Rozwiązaliśmy problem, który powodował, że ListenableFuture zwracane w setZoomRatio i setLinearZoom nie mogło zostać ukończone na niektórych urządzeniach z Androidem 11 (I716d7).
- Przyspieszenie przełączania aparatu i zmniejszenie częstotliwości występowania błędów aparatu (I34c99)
- Zastąpiono ExperimentalUseCaseGroupLifecycle elementem ExperimentalUseCaseGroup. (I3b2ef, b/159033688)
Wersja 1.1.0-alpha04
21 kwietnia 2021 r.
Wersje 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 opublikowane. Wersja 1.1.0-alpha04 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawiliśmy wyciek pamięci spowodowany przez wiele wątków uzyskujących dostęp do tej samej kolekcji w tym samym czasie. Wyciek pamięci może spowodować, że aktywność lub fragment zostaną zachowane przez instancję podglądu. (I7b4b8)
- Zastąpiono adnotację
@Experimentaladnotacją@RequiresOptInw eksperymentalnych interfejsach API. Do wywoływania eksperymentalnych interfejsów API używajandroidx.annotation.OptInzamiast wycofanegoandroidx.annotation.experimental.UseExperimental. (Iff226) - Rozwiązaliśmy problem, który powodował, że funkcja ImageCapture z lampą błyskową ustawioną na „Włączona” lub „Automatyczna” robiła wyblakłe zdjęcia na telefonie Samsung Galaxy S7. (I30001)
- Dodano interfejs CameraState API, który będzie udostępniany przez CameraInfo. (I75392)
Wersja 1.1.0-alpha03
24 marca 2021 r.
Wersje 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 opublikowane. Wersja 1.1.0-alpha03 zawiera te zatwierdzenia.
Poprawki błędów
- Format wyjściowy JPEG dla
ImageCapture#OnImageCapturedCallback, gdy włączony jest tryb rozszerzeń. (I0d7b1) - Naprawiono błąd inicjowania na urządzeniach UMIDIGI BISON (I57d9e, b/180818665).
- Naprawiliśmy problem z rozciągniętym podglądem w PreviewView na urządzeniach Samsung A3. (Iacb30, b/180121821)
Wersja 1.1.0-alpha02
24 lutego 2021 r.
Wersje 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 opublikowane. Wersja 1.1.0-alpha02 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Dodaliśmy interfejs API
ProcessCameraProvider.getAvailableCameraInfos(), który umożliwia bezpośrednie pobieranie informacji o dostępnych aparatach. Mogą to być wszystkie aparaty na urządzeniu lub te wybrane przezCameraSelectorpodany wCameraXConfig.Builder.setAvailableCamerasLimiter(CameraSelector). (Ieac08)
Poprawki błędów
- CameraX próbuje teraz wymusić otwarcie aparatu przy pierwszej próbie. Może to spowodować, że CameraX przejmie aparat od innych klientów, gdy aplikacja ma wyższy priorytet. (Iab069, b/175820568)
- Naprawiliśmy błąd testu Robolectric, który występował, gdy w CameraXConfig użyto setAvailableCamerasLimiter. (Ice307)
- Ta zmiana powoduje przechwycenie wyjątku, gdy kolejka obrazów w ImageAnalysis jest zapełniona. Zamiast awarii możesz zauważyć, że inne przypadki użycia są zawieszone lub działają wolno, np. zawieszony lub wolno działający podgląd. (Ic12da, b/175851631)
- Naprawiliśmy błąd ExtensionsErrorListener, aby zgłaszał błędy, gdy powiązany jest tylko podgląd lub ImageCapture. (I5ae39)
- Naprawiono regresję wydajności ImageCapture przez usunięcie weryfikacji lokalizacji zapisu obrazu przed zrobieniem zdjęcia. Jeśli po wprowadzeniu tej zmiany miejsce zapisu będzie nieprawidłowe, uzyskanie odpowiedzi o błędzie zajmie więcej czasu, ponieważ po zrobieniu zdjęcia nastąpi próba jego zapisania. (I1fd4e, b/177061560)
- Naprawiliśmy błąd powodujący spadek wydajności ImageCapture w przypadku opcji OutputFileOptions typu „File”. (I5164a, b/177061560)
- Zaktualizowano dokumentację, aby odradzać używanie
ProcessCameraProvider.configureInstance(...)z kodu biblioteki. (Ib8a9f)
Wersja 1.1.0-alpha01
27 stycznia 2021 r.
Wersje 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 opublikowane. Wersja 1.1.0-alpha01 zawiera te zatwierdzenia.
Poprawki błędów
- Dodano obejście problemu z okresowo uszkodzonymi danymi obrazu w plikach JPEG z tylnego aparatu SM-G930T. (I52001, b/159831206)
- Rozwiązaliśmy problem z
IllegalArgumentException, który występował, gdy wszystkie obsługiwane rozmiary podglądu były mniejsze niż 640 × 480, a rozmiar wyświetlania był większy niż 640 × 480. (I2a63c, b/150506192) - Zasoby w bibliotekach bez wyraźnie zadeklarowanych zasobów publicznych (np. za pomocą pliku public.xml) są teraz domyślnie prywatne. (Ia1dcc, b/170882230)
Camera-Camera2, Camera-Core i Camera-Lifecycle w wersji 1.0.2
Wersja 1.0.2
29 września 2021 r.
Wersje androidx.camera:camera-camera2:1.0.2, androidx.camera:camera-core:1.0.2 i androidx.camera:camera-lifecycle:1.0.2 zostały opublikowane. Wersja 1.0.2 zawiera te zatwierdzenia.
Poprawki błędów
- Rozwiązanie problemu z rozmazanymi zdjęciami w trybie
MAXIMIZE_QUALITY. (I173a9, b/193823892) - Rozwiązaliśmy problem, który powodował, że na wielu urządzeniach zdjęcie zrobione z lampą błyskową było ciemne. (I4e510)
Camera-Camera2, Camera-Core i Camera-Lifecycle w wersji 1.0.1
Wersja 1.0.1
21 lipca 2021 r.
Wersje androidx.camera:camera-camera2:1.0.1, androidx.camera:camera-core:1.0.1 i androidx.camera:camera-lifecycle:1.0.1 zostały opublikowane. Wersja 1.0.1 zawiera te zatwierdzenia.
Poprawki błędów
Rozwiązaliśmy problem polegający na tym, że
ListenableFuturezwracany wsetZoomRatioisetLinearZoomnie może zostać ukończony na niektórych urządzeniach z Androidem 11 (I716d7).Rozwiązaliśmy problem, który powodował, że na niektórych urządzeniach aparat zacinał się w stanie zamykania, co powodowało czarny podgląd. (I34c99)
Camera-Camera2, Camera-Core i Camera-Lifecycle w wersji 1.0.0
Wersja 1.0.0
5 maja 2021 roku
Wersje androidx.camera:camera-camera2:1.0.0, androidx.camera:camera-core:1.0.0 i androidx.camera:camera-lifecycle:1.0.0 zostały opublikowane. Wersja 1.0.0 zawiera te zatwierdzenia.
Główne funkcje wersji 1.0.0
- CameraX obsługuje podgląd, robienie zdjęć i analizę.
- CameraX zarządza cyklem życia aparatu za pomocą łatwego w użyciu interfejsu API.
- CameraX ma na celu zapewnienie warstwy zgodności, która rozwiązuje wiele problemów w ekosystemie aparatu na Androidzie.
Znane problemy
- Zobacz listę znanych problemów.
Wersja 1.0.0-rc05
21 kwietnia 2021 r.
Wersje 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 opublikowane. Wersja 1.0.0-rc05 zawiera te zatwierdzenia.
Poprawki błędów
- Rozwiązaliśmy problem, który powodował, że funkcja ImageCapture z lampą błyskową ustawioną na „Włączona” lub „Automatyczna” robiła wyblakłe zdjęcia na telefonie Samsung Galaxy S7. (I30001)
Wersja 1.0.0-rc04
24 marca 2021 r.
Wersje 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 opublikowane. Wersja 1.0.0-rc04 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawiono błąd inicjowania na urządzeniach UMIDIGI BISON (I57d9e, b/180818665).
Wersja 1.0.0-rc03
24 lutego 2021 r.
Wersje 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 opublikowane. Wersja 1.0.0-rc03 zawiera te zatwierdzenia.
Poprawki błędów
- Napraw błąd formatu w dokumencie:
ProcessCameraProvider#getInstance - Rozwiązaliśmy problem z niepowodzeniem testu Robolectric, gdy w CameraXConfig użyto setAvailableCamerasLimiter.
- Naprawiono regresję wydajności ImageCapture przez usunięcie weryfikacji lokalizacji zapisu obrazu przed zrobieniem zdjęcia. Jeśli po wprowadzeniu tej zmiany miejsce zapisu będzie nieprawidłowe, uzyskanie odpowiedzi o błędzie potrwa dłużej, ponieważ system spróbuje zapisać obraz po zrobieniu zdjęcia.
- Ta zmiana przechwytuje wyjątek, gdy kolejka obrazów jest maksymalnie zapełniona w ImageAnalysis. Zamiast awarii możesz zauważyć, że inne przypadki użycia są zawieszone lub działają wolno, np. zawieszony lub wolno działający podgląd.
- Dodano obejście problemu z okresowo uszkodzonymi danymi obrazu w plikach JPEG z tylnego aparatu SM-G930T. (I52001, b/159831206)
- Ta zmiana przechwytuje wyjątek, gdy kolejka obrazów jest maksymalnie zapełniona w ImageAnalysis. Zamiast awarii możesz zauważyć, że inne przypadki użycia są zawieszone lub działają wolno, np. zawieszony lub wolno działający podgląd. (Ic12da, b/175851631)
- Naprawiliśmy błąd testu Robolectric, który występował, gdy w CameraXConfig użyto setAvailableCamerasLimiter. (Ice307)
- Naprawiono regresję wydajności ImageCapture przez usunięcie weryfikacji lokalizacji zapisu obrazu przed zrobieniem zdjęcia. Jeśli po wprowadzeniu tej zmiany miejsce zapisu będzie nieprawidłowe, uzyskanie odpowiedzi o błędzie zajmie więcej czasu, ponieważ po zrobieniu zdjęcia nastąpi próba jego zapisania. (I1fd4e, b/177061560)
- Naprawiliśmy błąd powodujący spadek wydajności ImageCapture w przypadku opcji OutputFileOptions typu „File”. (I5164a, b/177061560)
Wersja 1.0.0-rc02
27 stycznia 2021 r.
Wersje 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 opublikowane. Wersja 1.0.0-rc02 zawiera te zatwierdzenia.
Poprawki błędów
- Rozwiązaliśmy problem z IllegalArgumentException, który występował, gdy wszystkie obsługiwane rozmiary podglądu były mniejsze niż 640 x 480, a rozmiar wyświetlania był większy niż 640 x 480. (b/150506192)
Ogranicz liczbę prób ponownego otwarcia kamery. Podczas próby rozwiązania niektórych problemów z otwieraniem aparatu CameraX nie będzie już próbować otwierać go w nieskończoność, ale zatrzyma się po 10 sekundach.I435d2
Rozwiązaliśmy problem z
IllegalArgumentException, który występował, gdy wszystkie obsługiwane rozmiary podglądu były mniejsze niż 640 × 480, a rozmiar wyświetlania był większy niż 640 × 480. (I2a63c, b/150506192)
Wersja 1.0.0-rc01
16 grudnia 2020 roku
Wersje 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 opublikowane. Wersja 1.0.0-rc01 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Zmieniono CameraFilter i Camera2Filter, aby uwzględniały CameraInfo. (I6883d)
- Dodano eksperymentalną klasę Camera2CameraControl, która umożliwia dynamiczną współpracę z interfejsami API Camera2. (I45cf3)
- Zmieniono nazwę Camera2CameraInfo#fromCameraInfo na #from. (Ia2bd6)
- Dodaliśmy eksperymentalny interfejs API setAvailableCamerasLimiter do CameraXConfig, aby umożliwić aplikacjom optymalizację opóźnienia inicjowania przez unikanie inicjowania nieużywanych kamer. (I6cf88)
- Dodano eksperymentalną metodę
CameraXConfig.Builder#setMinimumLoggingLevel(), która umożliwia ustawienie minimalnego poziomu logowania w przypadku logów CameraX. Jeśli nie jest ustawiona, domyślnie przyjmuje wartośćLog#DEBUG. (Ic3245)
Poprawki błędów
- Dodano obejście problemu z okresowo uszkodzonymi danymi obrazu w plikach JPEG z tylnego aparatu SM-G930V. (I5aca5, b/159831206)
- Rozwiązaliśmy problem polegający na tym, że robienie zdjęć nie przynosiło rezultatów, gdy lampa błyskowa była zawsze włączona, a otoczenie było ciemne, na urządzeniach Samsung SM-A716. (If98b2, b/172036589)
- Rozwiązaliśmy problem polegający na tym, że nie można było zatrzymać podglądu przez wywołanie
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)
Camera Camera2, Core i Lifecycle w wersji 1.0.0-beta12
11 listopada 2020 roku
Wersje 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 opublikowane. Wersja 1.0.0-beta12 zawiera te zatwierdzenia.
Poprawki błędów
- Wyłączono automatyczną lampę błyskową na urządzeniach Samsung A3, aby rozwiązać problem z awarią podczas robienia zdjęcia z automatyczną lampą błyskową w trybie AE na tych urządzeniach. (Ia5fe3, b/157535165)
- Rozwiązaliśmy problem, który powodował, że podgląd był rozciągnięty na urządzeniach Nexus 4 z Androidem L (poziomy interfejsu API 21 i 22). (I4d407, b/158749159)
- Implementacja klasy bazowej
OnImageCapturedCallback#onCaptureSuccessnie zamyka już obrazu. Ma to na celu zapobieganie nieoczekiwanym zachowaniom u programistów. Deweloperzy nie powinni polegać na metodzie super.onCaptureSuccess do zamykania obrazu. (Ifbf9c) - Wariant androidx adnotacji Experimental został wycofany, aby zapewnić zgodność z Kotlinem. Została zastąpiona adnotacją RequiresOptIn, a linter dla Javy został zaktualizowany, aby obsługiwał zarówno nową adnotację Kotlin, jak i nowy wariant androidx. (I52495, b/151331381)
Camera-Camera2 w wersji 1.0.0-beta11
14 października 2020 r.
Publikacja androidx.camera:camera-camera2:1.0.0-beta11 Wersja 1.0.0-beta11 zawiera te zatwierdzenia.
Nowe funkcje
- Obsługuje interfejs API Androida 11
CONTROL_ZOOM_RATIOdo powiększania na urządzeniach z Androidem 11 lub nowszym, które zawierają prawidłowyCONTROL_ZOOM_RATIO_RANGE. (I62cc6)
Poprawki błędów
- Rozwiązaliśmy problem z błędem NumberFormatException, który występował, gdy identyfikator kamery nie był liczbą całkowitą. (Ib2228)
- Skróciliśmy czas oczekiwania na inicjalizację CameraX i bindToLifecycle (I61dc5).
- Utworzenie UseCases nie wymaga inicjalizacji CameraX. Wszystkie konfiguracje specyficzne dla implementacji są ustawiane w UseCase po dołączeniu do instancji Camera, która w przypadku publicznego interfejsu API to
ProcessCameraProvider.bindToLifecycle(). (Ia5411) <UseCase>.getTargetRotation()zwróciSurface.ROTATION_0, jeśli zostanie wywołana przed dołączeniem do instancji aparatu, chyba że w Builder lub UseCase ustawiono targetRotation. (I80fcd)
Camera-Core w wersji 1.0.0-beta11
14 października 2020 r.
Publikacja androidx.camera:camera-core:1.0.0-beta11 Wersja 1.0.0-beta11 zawiera te zatwierdzenia.
Nowe funkcje
– Obsługa interfejsu API Androida 11 CONTROL_ZOOM_RATIO na potrzeby powiększania na urządzeniach z Androidem 11 lub nowszym, które zawierają prawidłowy CONTROL_ZOOM_RATIO_RANGE. (I62cc6)
Poprawki błędów
- Rozwiązaliśmy problem z błędem NumberFormatException, który występował, gdy identyfikator kamery nie był liczbą całkowitą. (Ib2228)
- Tworzenie UseCases nie wymaga inicjowania CameraX. Wszystkie konfiguracje związane z implementacją są ustawiane w przypadku UseCase po dołączeniu do instancji Camera, która w przypadku publicznego interfejsu API to
ProcessCameraProvider.bindToLifecycle(). (Ia5411) <UseCase>.getTargetRotation()zwróciSurface.ROTATION_0, jeśli zostanie wywołana przed dołączeniem do instancji aparatu, chyba że w Builder lub UseCase ustawiono targetRotation. (I80fcd)
Camera-Core w wersji 1.0.0-beta10
23 września 2020 r.
Publikacja androidx.camera:camera-core:1.0.0-beta10 Wersja 1.0.0-beta10 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawiono błąd weryfikacji miejsca zapisu pliku w przypadku robienia zdjęć (I8c565, b/167697553).
Camera-Camera2 w wersji 1.0.0-beta10
23 września 2020 r.
Publikacja androidx.camera:camera-camera2:1.0.0-beta10 Wersja 1.0.0-beta10 zawiera te zatwierdzenia.
Poprawki błędów
- Wersja obsługująca Camera-Core 1.0.0-beta10
Camera-Camera2 w wersji 1.0.0-beta09
16 września 2020 roku
Publikacja androidx.camera:camera-camera2:1.0.0-beta09 Wersja 1.0.0-beta09 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Zamiast udostępniać metody statyczne, Camera2CameraInfo pobiera instancję CameraInfo podczas tworzenia, aby pobrać informacje związane z Camera2. (I5b844)
Poprawki błędów
- Rozwiązaliśmy problem z docelowym formatem obrazu 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ś błąd
InitializationException, aby aplikacja mogła prawidłowo obsłużyć błąd AssertionError, który wystąpił podczas tworzenia CameraCharacteristics. (I89c8c, b/160524721) - Dodano eksperymentalne interfejsy dla ExposureCompensation (If96c7)
Camera-Core w wersji 1.0.0-beta09
16 września 2020 roku
Publikacja androidx.camera:camera-core:1.0.0-beta09 Wersja 1.0.0-beta09 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Naprawiliśmy błąd, który powodował, że widoczny obszar był oznaczany jako niepusty w UseCaseGroup. Deweloperzy powinni mieć możliwość utworzenia widocznego obszaru bez ustawiania go. (Ie3d2e)
- Dodano eksperymentalne interfejsy dla
ExposureCompensation(If96c7). - Zezwalaj na dowolny obrót celu w podglądzie. Informacje o przekształceniu są obliczane i zwracane użytkownikowi na bieżąco za pomocą nowego wywołania zwrotnego
TranformationInfoListener. (I21470)
Poprawki błędów
- Rozwiązaliśmy problem polegający na tym, że na niektórych urządzeniach nie można było wyłączyć lampy błyskowej. Działo się tak, gdy tryb lampy błyskowej był ustawiony na
FLASH_MODE_ON, aby zrobić zdjęcie, i zmieniany naFLASH_MODE_OFF, gdy lampa błyskowa była uruchamiana. Objaw jest podobny do włączonego trybu latarki. (Ib4451, b/162568128) - Wymuszono używanie TextureView przez PreviewView, jeśli efekt rozszerzenia jest włączony, a implementacja biblioteki dostawcy wymaga wykonania specjalnego procesu na powierzchni wyjściowej. (I0c3cc)
- Naprawiliśmy wyciek aktywności/fragmentu, gdy kontekst aktywności/fragmentu jest przekazywany do
ProcessCameraProvider.getInstance(Context).
Znane problemy
- Gdy ustawiony jest ViewPort, prostokąt przycięcia ImageCapture może być nieprawidłowy na urządzeniach, które obracają bufor obrazu w HAL. Naprawimy to w kolejnej wersji.
Camera-Camera2 w wersji 1.0.0-beta08
19 sierpnia 2020 r.
Publikacja androidx.camera:camera-camera2:1.0.0-beta08 Wersja 1.0.0-beta08 zawiera te zatwierdzenia.
Poprawki błędów
- Zoptymalizowaliśmy metodę bindToLifecycle, aby działała szybko w głównym wątku. (I1d57e)
- DisplayOrientedMeteringPointFactory przyjmuje instancję CameraInfo zamiast CameraSelector, dzięki czemu istnieje bezpośrednie mapowanie na kamerę, dla której fabryka będzie generować punkty. Wszystkie klasy, które używają DisplayOrientedMeteringPointFactory, również przyjmują instancję CameraInfo zamiast CameraSelector. (I400c1)
- Rozwiązaliśmy problem z grupowaniem rozmiarów formatu obrazu automatycznej rozdzielczości, który powodował, że rozmiar 16:9 mod16 (864 x 480) był wybierany, gdy ustawienie rozdzielczości docelowej wynosiło 2016 x 1080, a obsługiwany był inny rozmiar 16:9 (1920 x 1080). (I53167, b/159363774)
- Rozwiązaliśmy problem z CameraControl, który uniemożliwiał działanie z powodu sytuacji wyścigu (I2279f, b/152333890, b/160714166).
Camera-Core w wersji 1.0.0-beta08
19 sierpnia 2020 r.
Publikacja androidx.camera:camera-core:1.0.0-beta08 Wersja 1.0.0-beta08 zawiera te zatwierdzenia.
Zmiany w interfejsie API
DisplayOrientedMeteringPointFactoryprzyjmuje instancjęCameraInfozamiastCameraSelector, więc istnieje bezpośrednie mapowanie na kamerę, dla której fabryka będzie generować punkty. Wszystkie klasy, które używająDisplayOrientedMeteringPointFactory, przyjmują też instancjęCameraInfozamiastCameraSelector. (I400c1)
Poprawki błędów
- W przypadku robienia zdjęć zastąp flagę odwrócenia w poziomie w metadanych na podstawie kierunku aparatu. (I28499)
- Inicjowanie nie powinno już powodować awarii, gdy używany jest obiekt Context, który nie zwraca obiektu Application z
Context.getApplicationContext(). (I3d3c9, b/160817073)
Camera-Camera2 w wersji 1.0.0-beta07
22 lipca 2020 r.
Publikacja androidx.camera:camera-camera2:1.0.0-beta07 Wersja 1.0.0-beta07 zawiera te zatwierdzenia.
Poprawki błędów
- Rozwiązaliśmy problem polegający na tym, że podgląd był rozciągnięty na starszych urządzeniach z Androidem 5.0. (I0c03a)
- Wykluczono niektóre obsługiwane rozmiary JPEG, które powodują problemy z WYSIWYG na niektórych urządzeniach. (Ib5128)
Camera-Core w wersji 1.0.0-beta07
22 lipca 2020 r.
Publikacja androidx.camera:camera-core:1.0.0-beta07 Wersja 1.0.0-beta07 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Scal styl dopasowania
FIT_CENTER,FIT_STARTiFIT_ENDzFIT.FIToznacza, że zwrócony prostokąt przycięcia będzie maksymalnym możliwym prostokątem czujnika. (Ia73c3) - Prostokąt przycięcia podglądu jest konfigurowany przez widoczny obszar. Użytkownicy powinni widzieć tylko obszar objęty prostokątem przycięcia. (I142a4)
Poprawki błędów
- Rozwiązaliśmy problem polegający na tym, że podgląd był rozciągnięty na starszym urządzeniu z Androidem 5.0. (I0c03a)
- Rozwiązaliśmy problem z wyjątkiem
ConcurrentModificationExceptionpodczas odłączania przypadków użycia. (I371c0)
Camera-Camera2 w wersji 1.0.0-beta06
24 czerwca 2020 r.
Publikacja androidx.camera:camera-camera2:1.0.0-beta06 Wersja 1.0.0-beta06 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Dodano eksperymentalne interfejsy do filtrowania kamer według identyfikatora i CameraCharacteristics. (I28f61)
Poprawki błędów
- Rozwiązaliśmy problem, który powodował, że funkcja startFocusAndMetering nie ustawiała ostrości na urządzeniu Samsung Galaxy S7. (If3be7, b/159039233)
- Rozwiązaliśmy problem polegający na tym, że po zamknięciu aplikacji nie można było wyłączyć aparatu (I7a7b3).
- Rozwiązanie problemu, który powodował, że wielokrotne przełączanie aparatu przerywało podgląd podczas korzystania z implementacji SurfaceView w PreviewView (I920ce)
- Metoda
CameraControl#startFocusAndMeteringzakończy się niepowodzeniem, jeśli żaden z określonych obiektów MeteringPoint nie będzie mógł wygenerować prawidłowych prostokątów pomiarowych. (Id53ce)
Camera-Core w wersji 1.0.0-beta06
24 czerwca 2020 r.
Publikacja androidx.camera:camera-core:1.0.0-beta06 Wersja 1.0.0-beta06 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Dodano eksperymentalne interfejsy do filtrowania kamer według identyfikatora i CameraCharacteristics. (I28f61)
Poprawki błędów
- Interfejs CameraX można teraz skonfigurować za pomocą
ProcessCameraProvider#configureInstance()przed wywołaniemProcessCameraProvider#getInstance(). Umożliwia to dostosowanieCameraXConfigbez konieczności implementowaniaCameraXConfig.Providerw klasie aplikacji. (Ia1a8d) - Jeśli żaden z określonych obiektów MeteringPoint nie może wygenerować prawidłowych prostokątów pomiarowych, metoda
CameraControl#startFocusAndMeteringzakończy się niepowodzeniem. (Id53ce)
Camera-Camera2 w wersji 1.0.0-beta05
10 czerwca 2020 r.
Publikacja androidx.camera:camera-camera2:1.0.0-beta05 Wersja 1.0.0-beta05 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawiliśmy błąd powodujący awarię aplikacji podczas uruchamiania, gdy CameraX jest inicjowany, gdy telefon jest w trybie Nie przeszkadzać.
InitializationExceptionzawieraCameraUnavailableException, który zostanie ustawiony naListenableFuturewyniku inicjowania, zamiast powodować awarię aplikacji. (I9909a, b/149413835) - Naprawiliśmy błąd powodujący awarię podczas wywoływania metody
startFocusAndMeteringna urządzeniach, na którychCONTROL_AF_STATEma wartość null. (Ife55e, b/157084254)
Camera-Core w wersji 1.0.0-beta05
10 czerwca 2020 r.
Publikacja androidx.camera:camera-core:1.0.0-beta05 Wersja 1.0.0-beta05 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Naprawiono błąd powodujący awarię podczas uruchamiania aplikacji, gdy CameraX jest inicjowana, gdy telefon jest w trybie Nie przeszkadzać. Zamiast awarii aplikacji
InitializationExceptionzawierającyCameraUnavailableExceptionzostanie ustawiony naListenableFuturewyniku inicjowania. (I9909a, b/149413835)
Poprawki błędów
- thought
Zaktualizowano dokumentację Javadoc dla
setTargetResolutionisetTargetRotation. (Iae16f)
Camera-Camera2 w wersji 1.0.0-beta04
27 maja 2020 r.
Publikacja androidx.camera:camera-camera2:1.0.0-beta04 Wersja 1.0.0-beta04 zawiera te zatwierdzenia.
Poprawki błędów
- Zezwolono aplikacjom na ustawianie dowolnych parametrów żądania przechwytywania camera2 za pomocą
Camera2Interopbez powodowania awarii. Pamiętaj, że jeśli pojawią się problemy wynikające z zastąpienia parametrów, Stabilność i działanie nie są gwarantowane, gdy parametry są zastępowane za pomocą Camera2Interop. (Ibe5a1, b/149103700) - Naprawiliśmy automatyczną inicjalizację podczas korzystania z aplikacji na urządzeniu, które używa pseudolokalizacji. (I3bef3, b/154767663)
- Przekonwertowano dziennik błędów związany z przypadkiem użycia odłączenia na dziennik debugowania w Camera2CameraImpl. (I1a565, b/154422490)
- Naprawiliśmy problem, który powodował, że zdjęcie było czasami zbyt ciemne, mimo że lampa błyskowa została uruchomiona. (I5d9fa, b/149729613)
- Naprawiono błąd, który powodował, że bufor w
ImageProxyzImageCapturenie był przewijany (I0c455, b/153249512). - Rozwiązaliśmy problemy, które występowały, gdy powiązana była tylko funkcja ImageCapture: (1) nie można było robić zdjęć w trybie MAX_QUALITY, (2) jakość obrazu była niska, ponieważ nie działała automatyczna ekspozycja. (I17782, b/145326998)
- Zwiększona niezawodność ponownego otwierania aparatu, gdy CameraX zostanie odłączony przez inny proces lub ścieżkę kodu, która przejmuje aparat (I1fbc3, b/153714651).
Camera-Core w wersji 1.0.0-beta04
27 maja 2020 r.
Publikacja androidx.camera:camera-core:1.0.0-beta04 Wersja 1.0.0-beta04 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Dodaje eksperymentalny interfejs API
CameraXConfig.Builder#setSchedulerHandler()do ustawiania modułu obsługi używanego wewnętrznie przez stos aparatu CameraX. Ten nowy interfejs API wraz zCameraXConfig.Builder#setCameraExecutor()powinien umożliwiać pełną kontrolę nad wątkami używanymi przez stos aparatu CameraX. (I7bf32, b/121160431)
Poprawki błędów
- Naprawiono błąd powodujący awarię w
ImageAnalysis, gdy dostęp doImageProxyjest uzyskiwany po zamknięciuImageReaderProxy. Oznacza to również, że wszystkieImageProxyotrzymane przezAnalyzermuszą zostać zamknięte, zanim zostanie zamkniętyImageReaderProxy. (I4b299, b/145956416, b/154155377, b/156357269) - Usunięto parametr
CameraInfoz funkcjiPreviewView#createSurfaceProvider(). FunkcjaPreviewViewpobiera go teraz wewnętrznie zSurfaceRequest. (If18f0, b/154652477) - Naprawiliśmy automatyczną inicjalizację podczas korzystania z aplikacji na urządzeniu, które używa pseudolokalizacji. (I3bef3, b/154767663)
- Naprawiliśmy problem, który powodował, że zdjęcie było czasami zbyt ciemne, mimo że lampa błyskowa została uruchomiona. (I5d9fa, b/149729613)
- Rozwiązaliśmy problem z
ImageAnalysis, który powodował, że wielokrotne wywołania funkcji setAnalyzer/clearAnalyzer uniemożliwiały analizatorowi odbieranie obrazów do analizy. (I6169f, b/151605317, b/153514544) - Naprawiono błąd, który powodował, że bufor w
ImageProxyzImageCapturenie był przewijany (I0c455, b/153249512). - Rozwiązaliśmy problem polegający na tym, że pierwsza kamera na liście obsługiwanych urządzeń
CameraManagernie zawsze była wybierana do użycia. (I4c624, b/153418028) - Rozwiązaliśmy problem, który powodował sporadyczne awarie, gdy ustawienie
Preview.SurfaceProvidernie zwalniało wcześniej żądanej powierzchni.“java.lang.IllegalStateException: Camera surface session should only fail with request cancellation”(I8e4e7, b/155936225)
Camera-Camera2 w wersji 1.0.0-beta03
15 kwietnia 2020 roku
Publikacja androidx.camera:camera-camera2:1.0.0-beta03 Wersja 1.0.0-beta03 zawiera te zatwierdzenia.
Poprawki błędów
- Poprawki obsługujące wydanie
camera-core
Camera-Core w wersji 1.0.0-beta03
15 kwietnia 2020 roku
Publikacja androidx.camera:camera-core:1.0.0-beta03 Wersja 1.0.0-beta03 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawiliśmy regresję z wersji beta03, w której wywołanie
bindToLifecycle()z zerową liczbąUseCasepowodowało zgłoszenie wyjątku. Uniemożliwiało to pobranieCamerabez powiązaniaUseCase.
Camera-Camera2 w wersji 1.0.0-beta02
1 kwietnia 2020 r.
Publikacja androidx.camera:camera-camera2:1.0.0-beta02 Wersja 1.0.0-beta02 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawiono
ImageInfo.getRotationDegrees()zImageProxywygenerowanego przezImageCapture, aby odpowiadał wartości obrotu orientacji EXIF. (Id4281, b/150802561) - Aby używać domyślnej implementacji CameraX/Camera2, nie trzeba już jawnie określać kolejności zależności CameraX w pliku
build.gradle. W przypadkach, gdy wymagane jest zadeklarowanie ścisłych zależności, wszystkie zależności CameraX można teraz uwzględnić w pliku kompilacji. (I46e88) - Rozwiązaliśmy problem z
IllegalArgumentExceptionna urządzeniach, na których rozmiar wyświetlacza jest mniejszy niż 640 x 480. (Ife3f2, b/150506192) - Naprawiliśmy błąd w
bindToLifecycle, aby UseCase był modyfikowany tylko wtedy, gdy zostanie pomyślnie powiązany. Wcześniej podczas wywoływaniabindToLifecyclew celu obliczenia rozdzielczości UseCase był aktualizowany. Teraz nie trzeba już aktualizować UseCase, aby wykonywać obliczenia (I78d9e).
Camera-Core w wersji 1.0.0-beta02
1 kwietnia 2020 r.
Publikacja androidx.camera:camera-core:1.0.0-beta02 Wersja 1.0.0-beta02 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawiono
ImageInfo.getRotationDegrees()zImageProxywygenerowanego przezImageCapture, aby odpowiadał wartości obrotu orientacji EXIF. (Id4281, b/150802561) - Naprawiliśmy błąd w
bindToLifecycle, aby UseCase był modyfikowany tylko wtedy, gdy zostanie pomyślnie powiązany. Wcześniej podczas wywoływaniabindToLifecyclew celu obliczenia rozdzielczości UseCase był aktualizowany. Teraz nie trzeba już aktualizować UseCase, aby wykonywać obliczenia (I78d9e). - Rozwiązaliśmy problem, który powodował, że sesja przechwytywania w przypadku użycia
Previewnie była aktualizowana, gdy powierzchnia podglądu zmieniała się po wielokrotnym wywołaniuPreview.setSurfaceProvider().
Camera-Camera2 w wersji 1.0.0-beta01
26 lutego 2020 r.
Publikacja androidx.camera:camera-camera2:1.0.0-beta01 Wersja 1.0.0-beta01 zawiera te zatwierdzenia.
Poprawki błędów
- Zmieniono nazwę
SurfaceRequest.setSurface(Surface)naSurfaceRequest.provideSurface(Surface), aSurfaceRequest.setWillNotComplete()naSurfaceRequest.willNotProvideSurface(). (I224fe) - Rozwiązaliśmy problem z nieprawidłowym formatem obrazu zapisanego po zmianie wartości obrotu docelowego za pomocą
ImageCapture.setTargetRotation(). (I474ea, b/148763432) - Naprawiliśmy inicjowanie wariantów aplikacji z włączonym ProGuardem przez zachowanie flagi, która ustawia domyślnego dostawcę
CameraXConfig. (I2d6c1)
Camera-Core w wersji 1.0.0-beta01
26 lutego 2020 r.
Publikacja androidx.camera:camera-core:1.0.0-beta01 Wersja 1.0.0-beta01 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Zastąpiono
ListenableFuturenaSurfaceRequest.provideSurface()przezExecutoriCallback. Upraszcza to interfejs API, ponieważ nie wymaga już obsługi wyjątków wprovideSurface()i wymusza, że wywołania zwrotnegoprovideSurface()nie można anulować. Ma to zapobiec awariom na starszych urządzeniach spowodowanym przedwczesnym zwalnianiem powierzchni. ObiektSurfaceRequest.Resultjest teraz używany do śledzenia, jakSurfaceRequestkorzysta z podanegoSurface. (I7854b) - Zmieniono nazwę
SurfaceRequest.setSurface(Surface)naSurfaceRequest.provideSurface(Surface), aSurfaceRequest.setWillNotComplete()naSurfaceRequest.willNotProvideSurface(). (I224fe)
Poprawki błędów
- Rozwiązaliśmy problem z nieprawidłowym formatem obrazu zapisanego po zmianie wartości obrotu docelowego za pomocą
ImageCapture.setTargetRotation(). (I474ea, b/148763432) - Naprawiliśmy inicjowanie wariantów aplikacji z włączonym ProGuardem przez zachowanie flagi, która ustawia domyślnego dostawcę
CameraXConfig. (I2d6c1) - Zaktualizowaliśmy dokumentację interfejsów API trybu lampy błyskowej, aby uwzględnić możliwe wartości. (I4a3ec)
Camera-Camera2 w wersji 1.0.0-alpha10
10 lutego 2020 r.
Publikacja androidx.camera:camera-camera2:1.0.0-alpha10 Wersja 1.0.0-alpha10 zawiera te zatwierdzenia.
Poprawki błędów
- Poprawiliśmy stabilność na urządzeniach
INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY, zapewniając, żeSurfacesą zachowywane tylko przez czas korzystania z aplikacji Camera2. (I9dac2) - Rozwiązaliśmy problem z niedoświetlonym podglądem na urządzeniach LEGACY przez odpowiednie dostosowanie
CONTROL_AE_TARGET_FPS_RANGE. (1224638)
Camera-Core w wersji 1.0.0-alpha10
10 lutego 2020 r.
Publikacja androidx.camera:camera-core:1.0.0-alpha10 Wersja 1.0.0-alpha10 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Zaktualizowaliśmy
ImageCapture, aby umożliwić zapisywanie obrazów w usługachUriiOutputStream. Połączono przeciążone metodytakePicturew jedną. Zaktualizowano aplikację testową, aby używałaUrijako przykładu kanonicznego. (Ia3bec) - Nazwę konta usługi
Preview.PreviewSurfaceProviderzmieniono naPreview.SurfaceProvider.SurfaceProvidernie wymagają już od deweloperów tworzenia własnychListenableFuture, a podawanieSurfaceodbywa się teraz za pomocą nowego obiektuSurfaceRequest. MetodaPreview.getPreviewSurfaceProvider()została usunięta, ponieważ może być nadużywana, gdy klasaPreviewjest sparowana z innymi klasami, takimi jakPreviewView. (I20105) - Dodano:
getTargetRotation()igetTargetName()do:Preview. (Iceee7) - Dodano
getTargetRotation(),getBackpressureStrategy()igetImageQueueDepth()w:ImageAnalysis. (I9d6d9) - Dodano:
getTargetRotation()igetCaptureMode()w:ImageCapture()(I5bc17) - Argumenty, które wcześniej były przekazywane w
ImageCapture.OnImageSavedCallback.onError()iImageCapture.OnImageCapturedCallback.onError(), zostały zastąpione pojedynczym argumentemImageCaptureException, który nadal zawiera wszystkie informacje, które były wcześniej przekazywane. - Argument pliku przekazany wcześniej w
ImageCapture.OnImageSavedCallback.onImageSaved()został usunięty. (I750d2) PreviewiImageCapturezajęcia są teraz oznaczone jako ostateczne. (I2500b)- Zaktualizowano interfejs API, scalając metody
getZoomRatio(),getMaxZoomRatio(),getMinZoomRatio()igetLinearZoom()interfejsuCameraInfowgetZoomState(), który zwraca instancjęZoomState. (Ib19fe) - Usunięto pola interfejsu API
OPTION_TARGET_CLASSiOPTION_TARGET_NAMEzCameraXConfig, ponieważ są one przeznaczone wyłącznie do użytku wewnętrznego biblioteki. Usunięto konstruktor dla:CameraXConfig.Builder. (I96912) - Usunięto wymaganie, zgodnie z którym aplikacja musi rozszerzać
Application, aby zainicjować CameraX. CameraX będzie teraz inicjowany z domyślną konfiguracją Camera2, o ile artefaktcamera-camera2jest uwzględniony w plikubuild.gradleaplikacji. (I58ff5) (b/146923574)
Camera-Camera2 w wersji 1.0.0-alpha09
22 stycznia 2020 r.
Publikacja androidx.camera:camera-camera2:1.0.0-alpha09 Wersja 1.0.0-alpha09 zawiera te zatwierdzenia.
Zmiany w interfejsie API
Dodaj ścieżkę interoperacyjności camera2, aby wyodrębnić identyfikator aparatu Camera2. Identyfikator kamery możesz wyodrębnić z
CameraInfoza pomocąCamera2CameraInfo.extractCameraId(). Poniższy przykładowy kod pokazuje, jak używać tej funkcji:Camera camera = provider.bindToLifecycle(...); String cameraId = Camera2CameraInfo.extractCameraId(camera.getCameraInfo());Klasa
Camera2CameraInfowymaga klasy markerClassExperimentalCamera2Interop.
Camera-Core w wersji 1.0.0-alpha09
22 stycznia 2020 r.
Publikacja androidx.camera:camera-core:1.0.0-alpha09 Wersja 1.0.0-alpha09 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Zmieniono nazwę parametru
useCaseForSurfacewSurfaceOrientedMeteringPointFactorynauseCaseForAspectRatioi rozszerzono dokumentację referencyjną. - Metody
FocusMeteringAction.Builder.from()zostały zastąpione przez konstruktoryFocusMeteringAction.Builder(). - Usunięto:
DisplayOrientedMeteringPointFactory(android.content.Context, androidx.camera.core.CameraSelector, float, float). Aplikacje powinny używać konstruktora, który przyjmuje parametrDisplayi przekazuje bieżący wyświetlacz. - Ulepszenia Javadoc dotyczące interfejsów API ostrości i pomiaru w odniesieniu do
MeteringModei flag 3A oraz użycia parametruDisplay. - Rozszerzyliśmy dokumentację referencyjną dotyczącą
setZoomRatioisetLinearZoom.
Poprawki błędów
- Rozwiązaliśmy problemy występujące podczas zamykania i otwierania kamer, które powodowały błąd sprawdzania warunku wstępnego.
- Naprawiliśmy błąd
ConcurrentModificationException, który mógł wystąpić podczas korzystania z interfejsów API latarki i powiększenia. - Rozwiązaliśmy problem, dzięki czemu teraz wybierane są rozdzielczości bliższe żądanej, gdy dostępny jest rozmiar wymiarów mod16.
- Interfejsy API
startFocusMeteringicancelFocusMeteringdziałają teraz zgodnie z dokumentacją, z prawidłowym czasem i potencjalnie zwracając błędy, gdy wystąpią. - Rozwiązaliśmy problem, który występował, gdy żądano określonej rozdzielczości docelowej z formatem obrazu przycięcia na urządzeniu, które nie obsługuje takich rozmiarów. Teraz, jeśli będzie to możliwe, zostanie wybrany nieprzycięty rozmiar o wystarczającej rozdzielczości, aby spełnić pierwotne żądanie.
Camera-Camera2 w wersji 1.0.0-alpha08
18 grudnia 2019 r.
Publikacja androidx.camera:camera-camera2:1.0.0-alpha08 Wersja 1.0.0-alpha08 zawiera te zatwierdzenia.
Znane problemy
- Nie wszystkie opcje żądania przechwytywania Camera2 działają podczas korzystania z interoperacyjności Camera2. Jeśli żądana opcja nie jest obsługiwana, sesja nie zostanie rozpoczęta i może wystąpić błąd, np.:
09-09 14:04:13.643 10117 26020 26036 E AndroidRuntime: java.lang.IllegalArgumentException: Unsupported session configuration combination
Poprawki błędów
- Rozwiązaliśmy problem, który powodował, że po obróceniu lub przełączeniu aparatu na poziomie interfejsu API 21 i 22 pojawiał się czarny ekran podglądu.
Zmiany w interfejsie API
- Eksperymentalna: dodano ścieżkę interoperacyjności camera2 do wyodrębniania identyfikatora aparatu.
Camera-Core w wersji 1.0.0-alpha08
18 grudnia 2019 r.
Publikacja androidx.camera:camera-core:1.0.0-alpha08 Wersja 1.0.0-alpha08 zawiera te zatwierdzenia.
Znane problemy
- Aplikacje korzystające z
PreviewViewlubCameraViewmogą mieć nieprawidłowy podgląd formatu obrazu. Dzieje się tak po wstrzymaniu lub wznowieniu na niektórych urządzeniach FULL, takich jak Pixel 2.
Poprawki błędów
- Zaktualizowaliśmy dokumentację dotyczącą
FocusMeteringActioniCameraControl. - Wdrożono
TorchControldla:enableTorch()igetTorchState().
Zmiany w interfejsie API
- Ukryliśmy IntDef i przenieśliśmy stałe IntDef poza definicję IntDef.
- Przeniesiono element
rotationDegreesz klasyOnImageCaptureCallbackdoImageInfo. - Przeniesiono element
rotationDegreesz klasyAnalyzerdoImageInfo.
Camera-Camera2 w wersji 1.0.0-alpha07
4 grudnia 2019 r.
Publikacja androidx.camera:camera-camera2:1.0.0-alpha07 Wersja 1.0.0-alpha07 pakietu camera-camera2 zawiera te zatwierdzenia
Camera2Configjest już dostępna do inicjowania i konfigurowania implementacji CameraX opartej na Camera2. Więcej informacji o tym, jak używać tej funkcji podczas inicjowania, znajdziesz w sekcji camera-core w informacjach o wersji.- Funkcja współdziałania camera2 jest teraz oznaczona jako eksperymentalna i została przeniesiona do osobnego pakietu
androidx.camera.camera2.interop.
Camera-Core w wersji 1.0.0-alpha07
4 grudnia 2019 r.
Publikacja androidx.camera:camera-core:1.0.0-alpha07 Wersja 1.0.0-alpha07 pakietu camera-core zawiera te zatwierdzenia
Pamiętaj, że w tej wersji alfa wprowadziliśmy kilka istotnych zmian, ponieważ przygotowujemy się do wersji beta. Zalecamy zapoznanie się ze zmianami i podzielenie się opinią na grupie dyskusyjnej Google CameraX. Deweloperom, którzy używają CameraX w aplikacjach dostępnych w Sklepie Play, zalecamy poczekanie na oficjalną wersję beta przed uaktualnieniem biblioteki w aplikacjach.
Zmiany w interfejsie API
Ważne: inicjowanie CameraX uległo zmianie. Aplikacje powinny implementować interfejs
CameraXConfig.Provideri używać domyślnego interfejsuCamera2Configudostępnianego przezandroidx.camera.camera2. Typowe zastosowanie: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(), które wcześniej były udostępniane przez wywołanie klasy CameraX, są teraz dostępne przezProcessCameraProvider.Instancja
ProcessCameraProviderdla każdego procesu jest uzyskiwana asynchronicznie za pomocą metody statycznejProcessCameraProvider.getInstance(), która zwraca obiekt listenable future, który po zakończeniu udostępniaProcessCameraProvider. Tutaj jest on wyświetlany wonCreate()w przypadku typowego użytkowania. Możesz wywołaćgetInstance()później w cyklu życia aktywności, aby opóźnić czas oczekiwania na inicjalizację (np. 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); }Detektor można dodać do
ListenableFuturezwracanego przezgetInstance(). Dzięki temu dostawcę aparatu można pobrać zFuturebez blokowania naFuture.get()cameraProviderFuture.addListener(Runnable { val cameraProvider = cameraProviderFuture.get() cameraProvider.bindToLifecycle(...) }, ContextCompat.getMainExecutor(this))Wybór aparatu jest teraz dokonywany przez selektor aparatu, a nie w zależności od przypadku użycia.
val cameraSelector = CameraSelector.Builder().requireLensFacing(LensFacing.BACK).build()CameraProvider.bindToLifecycleotrzymuje właściciela cyklu życia, selektor aparatu i przypadki użycia, które są następnie powiązane z danym właścicielem cyklu życia i uruchamiane w przypadku wybranego aparatu.cameraProvider.bindToLifecycle(this as LifecycleOwner, cameraSelector, preview, imageAnalysis)Usunięto klasy „Config” przypadków użycia. Zamiast tego twórz przypadki użycia bezpośrednio, ustawiając opcje w każdym kreatorze przypadków użycia. Przykład:
preview = Preview.Builder().setTargetAspectRatio(AspectRatio.RATIO_16_9).build()Przypadek użycia podglądu został zaktualizowany, aby akceptować platformę utworzoną przez aplikację i przez nią zarządzaną, co zapewnia zgodność ze sprawdzonymi metodami na Androidzie. Zdecydowanie zalecamy używanie klasy widoku
PreviewViewdostępnej w pakiecie camera-view.preview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)Zapoznaj się z dokumentacją dotyczącą dołączania platformy zarządzanej przez aplikację. W takich przypadkach aplikacja zarządza cyklem życia platformy.
Ważne: implementacja metody
ImageAnalysisAnalyzer musi wywoływać metodęimage.close()na otrzymanych obrazach, gdy zakończy się ich używanie. W przeciwnym razie nowe obrazy mogą nie być odbierane lub kamera może się zawiesić, w zależności od ustawienia przeciwciśnienia. Szczegółowe informacje znajdziesz w dokumentacji.Strategia
ImageAnalysis ImageReaderModezostała zmieniona na strategię backpressureintdef.ImageProxy.getImage()jest oznaczony jako eksperymentalny. Aplikacje powinny dodawać adnotacje dotyczące użycia, na przykład za pomocą@androidx.camera.core.ExperimentalGetImageWymóg adnotacji
UIThreaddlaAnalyzerzostał usunięty.Dodano funkcję
ImageAnalysis.clearAnalyzer(), która umożliwia usunięcie analizatora.Nazwy detektorów z więcej niż 1 metodą zostały zmienione na Callback:
ImageCapture.OnImageCapturedListenerto terazImageCapture.OnImageCapturedCallbackImageCapture.OnImageSavedListenerto terazImageCapture.OnImageSavedCallbackVideoCapture.OnVideoSavedListenerto terazVideoCapture.OnVideoSavedCallback
Typy wyliczeniowe zostały zmienione na IntDef
Dodaliśmy elementy sterujące powiększeniem:
CameraControl.setLinearZoom()CameraControl.setZoomRatio()CameraInfo.getLinearZoom()CameraInfo.getMaxZoomRatio()CameraInfo.getZoomRatio()
Dodano
CameraInfo.hasFlashUnit(), aby określić, czy urządzenie ma lampę błyskową lub latarkę.Usunięto
CameraInfo.isFlashAvailable(). Latarka zastępuje funkcję lampy błyskowej. Więcej informacji znajdziesz w dokumentacji referencyjnej.Pola
ImageCapture.Metadatasą zastępowane przez akcesory get/set/is.Metody
startFocusMeteringicancelFocusMeteringzwracają teraz obiektListenableFutures, który reprezentuje asynchroniczne działanie wywołania.MeteringPointsdziałają teraz jako uchwyty do działań związanych z pomiarem i są tworzone przez fabryki. Aplikacje powinny używać istniejących fabryk, a nie niestandardowych.
Rozwiązane problemy
- Rozwiązaliśmy problem z robieniem zdjęcia po wznowieniu (gdy po poprzednim wstrzymaniu zdjęcia oczekiwały na ukończenie).
- Znany problem: funkcja
CameraControl.enableTorch()działa, ale zwracana wartośćListenableFuture<Void>zawsze wskazuje na natychmiastową przyszłośćcomplete(success), nawet jeśli nie ma lampy błyskowej. W przyszłych wersjach zostanie to poprawione, aby działało w ten sposób: gdy nie ma lampy błyskowej,enableTorch(true)natychmiast kończy się niepowodzeniem (nie wysyła żądania doCaptureSession), aTorchStatepozostaje wyłączone. - Znany problem:
startFocusAndMeteringicancelFocusAndMeteringrozpoczynają i anulują pomiar ostrości, ale natychmiast zwracającompleted (success), co nie odpowiada udokumentowanemu działaniu.FocusMeteringResultzListenableFuture<FocusMeteringResult> CameraControl.startFocusAndMetering()to fałszywy wynik, któryisFocusSuccessful()i zawsze ma wartość „false”, co różni się od zamierzonego, udokumentowanego działania. - Znany problem: trwają prace nad fabryką punktów pomiarowych do użycia ze zdarzeniami dotknięcia
PreviewView. Na razie aplikacje łączące niestandardowe zarządzane interfejsy mogą używać istniejących fabryk punktów pomiarowych. W przeciwnym razie funkcja ustawiania ostrości dotykiem nie jest dostępna w przypadkuPreviewView.
Camera-Camera2 i Camera-Core w wersji 1.0.0-alpha06
9 października 2019 r.
Publikacja androidx.camera:camera-camera2:1.0.0-alpha06 i androidx.camera:camera-core:1.0.0-alpha06 Oto zatwierdzenia uwzględnione w wersji camera-camera2:1.0.0-alpha06 i zatwierdzenia uwzględnione w wersji camera-core:1.0.0-alpha06.
Nowe funkcje
Zmiany w ustawianiu formatu obrazu:
- Dodano
setTargetAspectRatioMode(), który akceptuje argument typu wyliczeniowego. Ustawia tryb formatu obrazu z opcjamiRATIO_4_3lubRATIO_16_9zamiast dowolnego formatu obrazu. Lepiej odzwierciedla to fakt, że aparat obsługuje tylko określone formaty obrazu, a nie dowolne.- Obecnie dostępne są tylko formaty 16:9 i 4:3. W przypadku formatu 1:1 tylko niektóre urządzenia mają tę opcję dostępną w aparacie i tylko w ograniczonych rozdzielczościach. Aplikacje, które projektują interfejs lub przetwarzanie w formacie 1:1, powinny używać bardziej elastycznych opcji 16:9 lub 4:3 i przycinać wyświetlany obraz lub przetwarzać podregion.
- Te formaty obrazu są zorientowane tak, aby wykorzystywać maksymalny obszar matrycy.
- Do interfejsów API konfiguracji przypadków użycia dodano metodę
getTargetAspectRatio(), która zwraca format obrazu, dla którego przeznaczony jest wynik przypadku użycia. - Metoda
setTargetAspectRatio(Rational aspectRatio)została zmieniona nasetTargetAspectRatioCustom(Rational aspectRatio)w przypadku ImageCapture. Po ustawieniu tej opcji dane wyjściowe ImageCapture są odpowiednio przycinane.
Interfejsy API wykonawcy
- Te funkcje akceptują parametr executor, który umożliwia aplikacji kontrolowanie, na którym wykonawcy funkcja jest uruchamiana.
- Interfejs API
Preview.setOnPreviewOutputUpdateListener(). Jeśli nie ma wykonawcy dla danej funkcji, jest ona wykonywana w głównym wątku. Preview.setOnPreviewOutputUpdateListenerFocusMeteringAction.Builder.setAutoFocusCallbackImageAnalysis.setAnalyzerImageCapture.takePictureCameraView.takePictureCameraView.startRecordingVideoCapture.startRecording
- Interfejs API
Dodano CameraInfo z interfejsami API do sprawdzania dostępności lampy błyskowej i obrotu czujnika
Dodano
CameraInfoi metodęgetCameraInfo, która umożliwia aplikacjom sprawdzanie, czy jest dostępny obiektyw skierowany w stronę CameraInfo i czy w tym aparacie jest dostępna lampa błyskowa. 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(). Zapewnia orientację czujnika aparatu względem naturalnej orientacji urządzenia lub, dla wygody, względem orientacji opisanej przez obrót powierzchni (który opisuje orientację względem naturalnej orientacji).
Zmiany w interfejsie API i poprawki błędów
- Formaty obrazu: w każdym przypadku użycia aplikacje powinny wywoływać tylko
setTargetResolution()lubsetTargetAspectRatio(). Wywołanie obu metod w tym samym kreatorze powoduje błąd.- Zwykle zalecamy użycie
setTargetAspectRatio()na podstawie projektu interfejsu aplikacji. Konkretne rozwiązania zależą od przypadku użycia. Na przykład podgląd jest zbliżony do rozdzielczości ekranu, a robienie zdjęć zapewnia zdjęcia w wysokiej rozdzielczości. Więcej informacji znajdziesz w tabeli automatycznych rozwiązań. - Używaj
setTargetResolution()w bardziej szczegółowych przypadkach, np. gdy wymagana jest minimalna (aby zaoszczędzić moc obliczeniową) lub maksymalna rozdzielczość (aby przetworzyć szczegóły).
- Zwykle zalecamy użycie
- Executor API: usunięto wywołanie
setCallbackHandler()z interfejsów API konfiguracji przypadków użycia. Zamiast tego aplikacje mogą ustawić executor jako parametr w różnych innych interfejsach API, które ustawiają wywołanie zwrotne. - Zaktualizowano adnotacje o wartościach null w różnych funkcjach.
- Rozwiązaliśmy problem, który powodował błąd
java.lang.IllegalStateException at Camera$StateCallback.onErrorpodczas otwierania aparatu. - Rozwiązaliśmy problem, który powodował, że gdy aplikacja żądała większych lub domyślnych rozdzielczości, wybierane były zbyt małe rozdzielczości (mniejsze niż 640 x 480), co powodowało, że podgląd obrazu był niewyraźny lub rozpikselowany. Aplikacje, które wymagają mniejszych rozdzielczości, mogą o nie poprosić.
- Rozwiązaliśmy problem, który powodował, że po powrocie z intencji uruchamiającej inną aplikację aparatu na ekranie pojawiał się czarny ekran (nie udało się uruchomić aparatu).
- Naprawiliśmy błąd, który powodował wyświetlanie tego błędu, gdy aplikacje były wielokrotnie uruchamiane lub zatrzymywane:
java.lang.IllegalArgumentException: CaptureRequest contains unconfigured Input/Output Surface! - Naprawiliśmy błąd, który występował podczas wyłączania ImageAnalysis:
java.lang.IllegalStateException: maxImages (4) has already been acquired, call #close before acquiring more. - Dodaliśmy dodatkowe testy procesu odłączania kamery.
- Zwiększyliśmy stabilność systemu testowego podczas przeprowadzania testów aparatu jeden po drugim.
Camera-Camera2 i Camera-Core w wersji 1.0.0-alpha05
5 września 2019 r.
Publikacja androidx.camera:camera-camera2:1.0.0-alpha05 i androidx.camera:camera-core:1.0.0-alpha05 Oto zmiany wprowadzone w camera-camera2:1.0.0-alpha05 i zmiany wprowadzone w camera-core:1.0.0-alpha05.
Zmiana interfejsu API: zmieniono nazwy zmiennych błędów przypadków użycia:
- Nazwa
ImageCapture.UseCaseErrorzostała zmieniona naImageCapture.ImageCaptureError - Nazwa
VideoCapture.UseCaseErrorzostała zmieniona naVideoCapture.VideoCaptureError
- Nazwa
Dodano interfejs API
CameraControlz interfejsami API ustawiania ostrości po dotknięciuDodano interfejs API do pobierania
CameraControlz CameraX dla aparatu wybranego na podstawie kierunku obiektywu:CameraX.getCameraControl(LensFacing lensFacing)Dodano
MeteringPointFactory,MeteringPoint,MeteringModeiFocusMeteringAction, aby uruchomić ustawianie ostrości po kliknięciu: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, który umożliwia rozpoczęcie i anulowanie pomiaru ostrości:getCameraControl(lensFacing).startFocusAndMetering(action);getCameraControl(lensFacing).cancelFocusAndMetering();Dodano interfejsy API dla fabryk punktów pomiarowych, które pomagają w przekształcaniu współrzędnych dotknię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 tych metod w głównym wątku (UI) i zgłaszaj błąd
IllegalStateException, gdy tak się nie dzieje. Przyszłe wersje będą umożliwiać korzystanie z innych wątków i zapewnią 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 pobierające mogą zwracać wartość null.
Rozwiązaliśmy problem występujący podczas testowania na emulatorach, które nie obsługują ustawień AF/AE/AWB.
Naprawiliśmy błąd powodujący awarię podczas obracania obrazu w trakcie jego analizy.
Naprawiliśmy błąd, który powodował, że podgląd był czarny na początku (brak danych z aparatu), po obróceniu lub po przełączeniu się między przednim a tylnym aparatem.
Usunięto testowanie wielu przypadków użycia analizy obrazów jednocześnie. Aby zapewnić zgodność, aplikacje powinny dołączać tylko 1 przypadek użycia analizy obrazu.
Dodaliśmy wstępne testy Robolectric dotyczące fałszywego aparatu w pakiecie testowym aparatu (w trakcie prac).
Usunięto test Camera2Inititalizer, ponieważ jego zakres był niejasny lub mylący.
Camera-Camera2 i Camera-Core w wersji 1.0.0-alpha04
7 sierpnia 2019 r.
Publikacja androidx.camera:camera-camera2:1.0.0-alpha04 i androidx.camera:camera-core:1.0.0-alpha04 Wersja 1.0.0-alpha04 zawiera te zatwierdzenia.
Nowe funkcje
Zmiany w wyborze formatu obrazu i rozdzielczości
Celem CameraX jest pomyślne zainicjowanie sesji aparatu. Oznacza to, że CameraX dostosowuje rozdzielczość i format obrazu do możliwości urządzenia, aby rozpocząć sesję przechwytywania jako pierwszy cel, więc dokładne żądania mogą nie zostać spełnione. Możliwe przyczyny:
- Urządzenia nieobsługujące żądanej rozdzielczości
- problemy ze zgodnością, np. na STARSZYCH urządzeniach, na których do prawidłowego działania wymagane są określone rozdzielczości;
- Na niektórych urządzeniach pewne formaty są dostępne tylko w określonych formatach obrazu.
- Preferencja „najbliższy mod16” w przypadku kodowania JPEG lub wideo. Zobacz:
CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP
Chociaż CameraX tworzy sesję i nią zarządza, zawsze sprawdzaj w kodzie rozmiary obrazów zwracane w przypadku użycia i odpowiednio je dostosowuj.
Wprowadziliśmy pewne zmiany w ustawieniach rozdzielczości i formatu obrazu, aby interfejs API był bardziej przejrzysty:
- Jeśli nie ustawiono żadnego formatu obrazu, w przypadku podglądu domyślnie stosowany jest format 4:3.
- Gdy CameraX wewnętrznie rozważa zmiany żądanych rozdzielczości i formatów obrazu na podstawie możliwości urządzenia, najpierw próbuje zachować ten sam format obrazu (określony przez wywołania
setTargetAspectRatiolubsetTargetResolution). - Wersja rozdzielczości „Najbliższa mod16” jest traktowana jako ten sam format obrazu.
Tryb nieblokujący ImageAnalysis
- Działanie
ImageReaderMode.ACQUIRE_LATEST_IMAGEnie jest już blokujące. Pobiera najnowszy obraz z kolejki, ale stale odrzuca nieużywane obrazy, aby uniknąć blokowania potoku kamery. - Analizator może przechowywać pojedynczy obraz bez ograniczeń czasowych, nie powodując zatrzymania potoku.
- Jeśli aplikacja udostępnia wykonawcę, który następnie blokuje, przypadek użycia ImageAnalysis blokuje.
- Domyślny executor ustawiony wewnętrznie działa jako executor nieblokujący.
Poprawki błędów
- Rozwiązaliśmy problemy z przekroczeniem limitu czasu oczekiwania na konwergencję 3A podczas robienia zdjęć na urządzeniach bez autofokusa, automatycznej ekspozycji i automatycznego balansu bieli.
- Rozwiązaliśmy problem występujący podczas szybkiego robienia zdjęć za pomocą ImageCapture. Naprawia błąd:
java.lang.IllegalStateException: maxImages (2) has already been acquired - Rozwiązaliśmy problem polegający na tym, że metoda
setLensFacingnie była wywoływana w przypadku zastosowania, co powodowało błądjava.lang.IllegalArgumentException: Unable to get camera ID for use case. - Rozwiązaliśmy problem, który powodował, że urządzenie LEGACY wymagało określonego formatu obrazu jako maksymalnej rozdzielczości JPEG.
- Rozwiązaliśmy problem, który występował, gdy aplikacja działała w tle podczas otwierania aparatu.
- Rozwiązano problem z interfejsem API < 25, usunięto błąd
checkAndUpdateEglState: invalid current EGLDisplay - Naprawiliśmy problem z odłączaniem podglądu po włączeniu i uruchomieniu rozszerzeń.
- Artefakty kompilacji dla widoku i rozszerzeń aparatu są teraz publikowane jako wersje alfa
Camera-Camera2 i Camera-Core w wersji 1.0.0-alpha03
2 lipca 2019 r.
Publikacja androidx.camera:camera-core:1.0.0-alpha03 i androidx.camera:camera-camera2:1.0.0-alpha03 Wersja 1.0.0-alpha03 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Dodano wyjaśnienie javadoc dotyczące „target” w wywołaniach konfiguracji setTarget.
Camera-Core
- Naprawiliśmy błąd powodujący awarię nieskonfigurowanej powierzchni wejściowej/wyjściowej podczas szybkiego otwierania/zamykania lub wiązania/odwiązywania.
- Przejście na nowe implementacje funkcji
- Poprawki testów zapewniające bardziej niezawodne testowanie
- Test integracji podstawowej pokazuje teraz czas wykonania zdjęć
- Opracowanie wewnętrznej klasy zgodności dla wykonawców
- Test czasu oczekiwania na zakończenie poprzedniego przechwytywania obrazów przez aplikację i poprawiona stabilność
Rozszerzenia
- Dodano testy obsługi wersji.
- Dodatkowe testy – wywołania zwrotne zdarzeń rozszerzenia
- Ulepszenia dotyczące wewnętrznie powiązanych obrazów i metadanych.
- Poprawki dotyczące przełączania trybów w aplikacji testowej
Camera-Camera2 i Camera-Core w wersji 1.0.0-alpha02
5 czerwca 2019 r.
Publikacja androidx.camera:camera-core:1.0.0-alpha02 i androidx.camera:camera-camera2:1.0.0-alpha02 Wersja 1.0.0-alpha02 zawiera te zatwierdzenia.
Poprawki błędów
- Rozwiązaliśmy problem z dzieleniem przez zero podczas korzystania z emulatora.
- Rozwiązaliśmy problem z błędem NullPointerException/Surface Abandoned, który występował na niektórych urządzeniach podczas szybkiego robienia zdjęć przy szybkim odłączaniu i ponownym podłączaniu przypadków użycia.
- Rozwiązaliśmy problem wewnętrzny, aby mieć pewność, że aktualizacje żądań przechwytywania będą miały spójny wpływ na wszystkie platformy.
- Ulepszenia stabilności podczas ponownego uruchamiania przypadków użycia w nowych instancjach aplikacji
- Zmiany w architekturze wewnętrznej w celu przygotowania do obsługi wykonawców w interfejsie API
- Dodatkowe wyjaśnienia w Javadoc dotyczące klasy CameraX i zarządzania cyklem życia.
- Dodano testy z instrumentacją w przypadku aplikacji do testowania wydajności Antelope
- Usunięcie konieczności używania „-keepattributes Signature” w konfiguracji Proguard aplikacji
Camera-Camera2 i Camera-Core 1.0.0-alpha01
7 maja 2019 r.
Publikacja androidx.camera:camera-core:1.0.0-alpha01 i androidx.camera:camera-camera2:1.0.0-alpha01 Wersja 1.0.0-alpha01 zawiera te zatwierdzenia.
Camera-Lifecycle w wersji 1.0.0-beta11
14 października 2020 r.
Publikacja androidx.camera:camera-lifecycle:1.0.0-beta11 Wersja 1.0.0-beta11 zawiera te zatwierdzenia.
Poprawki błędów
<UseCase>.getTargetRotation()zwróciSurface.ROTATION_0, jeśli zostanie wywołana przed dołączeniem do instancji aparatu, chyba że w Builder lub UseCase ustawiono targetRotation. (I80fcd)
Camera-Lifecycle w wersji 1.0.0-beta10
23 września 2020 r.
Publikacja androidx.camera:camera-lifecycle:1.0.0-beta10 Wersja 1.0.0-beta10 zawiera te zatwierdzenia.
Poprawki błędów
- Wersja obsługująca Camera-Core 1.0.0-beta10
Camera-Lifecycle w wersji 1.0.0-beta09
16 września 2020 roku
Publikacja androidx.camera:camera-lifecycle:1.0.0-beta09 Wersja 1.0.0-beta09 zawiera te zatwierdzenia.
Camera-Lifecycle w wersji 1.0.0-beta08
19 sierpnia 2020 r.
Publikacja androidx.camera:camera-lifecycle:1.0.0-beta08 Wersja 1.0.0-beta08 zawiera te zatwierdzenia.
Poprawki błędów
- Inicjowanie nie powinno już powodować awarii, gdy używany jest obiekt Context, który nie zwraca obiektu Application z
Context.getApplicationContext(). (I3d3c9, b/160817073)
Camera-Lifecycle w wersji 1.0.0-beta07
22 lipca 2020 r.
Publikacja androidx.camera:camera-lifecycle:1.0.0-beta07 Wersja 1.0.0-beta07 zawiera te zatwierdzenia.
Camera-Lifecycle w wersji 1.0.0-beta06
24 czerwca 2020 r.
Publikacja androidx.camera:camera-lifecycle:1.0.0-beta06 Wersja 1.0.0-beta06 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- CameraX można teraz skonfigurować za pomocą metody ProcessCameraProvider#configureInstance() przed wywołaniem metody ProcessCameraProvider#getInstance(). Umożliwia to dostosowanie CameraXConfig bez konieczności implementowania CameraXConfig.Provider w klasie Application aplikacji. (Ia1a8d)
Camera-Lifecycle w wersji 1.0.0-beta05
10 czerwca 2020 r.
Publikacja androidx.camera:camera-lifecycle:1.0.0-beta05 Wersja 1.0.0-beta05 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawiono błąd powodujący awarię podczas uruchamiania aplikacji, gdy CameraX jest inicjowana, gdy telefon jest w trybie Nie przeszkadzać. Zamiast awarii aplikacji
InitializationExceptionzawierającyCameraUnavailableExceptionzostanie ustawiony naListenableFuturewyniku inicjowania. (I9909a, b/149413835)
Camera-Lifecycle w wersji 1.0.0-beta04
27 maja 2020 r.
Publikacja androidx.camera:camera-lifecycle:1.0.0-beta04 Wersja 1.0.0-beta04 zawiera te zatwierdzenia.
Camera-Lifecycle w wersji 1.0.0-beta03
15 kwietnia 2020 roku
Publikacja androidx.camera:camera-lifecycle:1.0.0-beta03 Wersja 1.0.0-beta03 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawiliśmy regresję z wersji beta03, w której wywołanie
bindToLifecycle()z zerową liczbąUseCasepowodowało zgłoszenie wyjątku. Uniemożliwiało to pobranieCamerabez powiązaniaUseCase. - Poprawki obsługujące wydanie
camera-core
Camera-Lifecycle w wersji 1.0.0-beta01
26 lutego 2020 r.
Publikacja androidx.camera:camera-lifecycle:1.0.0-beta01 Wersja 1.0.0-beta01 zawiera te zatwierdzenia.
Poprawki błędów
- Poprawiliśmy dokumentację, aby zaznaczyć, że podczas uzyskiwania
ProcessCameraProviderpodczas inicjowania używana jest konfiguracja domyślna, a rozszerzanieApplicationjest opcjonalne. (I5e395)
Camera-Lifecycle w wersji 1.0.0-beta02
1 kwietnia 2020 r.
Publikacja androidx.camera:camera-lifecycle:1.0.0-beta02 Wersja 1.0.0-beta02 zawiera te zatwierdzenia.
Poprawki błędów
- Zaktualizowano, aby obsługiwać poprawki błędów w artefaktach
camera-camera2:1.0.0-beta02icamera-core:1.0.0-beta02.
Camera-Lifecycle w wersji 1.0.0-alpha10
10 lutego 2020 r.
Publikacja androidx.camera:camera-lifecycle:1.0.0-alpha10 Wersja 1.0.0-alpha10 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Dodano adnotację
@MainThreaddo metod BindToLifecycle, unbind i unbindAll. (I990d2)
Camera-Lifecycle w wersji 1.0.0-alpha03
22 stycznia 2020 r.
Publikacja androidx.camera:camera-lifecycle:1.0.0-alpha03 Wersja 1.0.0-alpha03 zawiera te zatwierdzenia.
Aktualizacje
- Różne poprawki i aktualizacje związane ze zmianami w Camera Core i Camera2.
Camera-Lifecycle w wersji 1.0.0-alpha02
18 grudnia 2019 r.
Publikacja androidx.camera:camera-lifecycle:1.0.0-alpha02 Wersja 1.0.0-alpha02 zawiera te zatwierdzenia.
Zmiany w zależnościach
- Zaktualizowano, aby używać funkcji
androidx.camera:camera-core:1.0.0-alpha08.
Camera-Lifecycle w wersji 1.0.0-alpha01
4 grudnia 2019 r.
Publikacja androidx.camera:camera-lifecycle:1.0.0-alpha01 Wersja 1.0.0-alpha01 biblioteki camera-lifecycle zawiera te zatwierdzenia
Uwagi dotyczące interfejsu API
- Dodano artefakt camera-lifecycle, który udostępnia interfejs
LifeCycleCameraProvideri implementację o nazwieProcessCameraProvider. Udostępnia ona wiele funkcji poprzedniej klasy CameraX w podstawie i jest uzyskiwana za pomocą metodygetInstance(). - Aby korzystać z CameraX, aplikacje powinny zawierać bibliotekę camera-lifecycle.
- W sekcji camera-core znajdziesz informacje o tym, jak przeprowadzić inicjowanie CameraX za pomocą
ProcessCameraProvider.
Camera-Extensions i Camera-View w wersji 1.0.0
Wersja 1.0.0-alpha32
15 grudnia 2021 roku
Publikacja androidx.camera:camera-extensions:1.0.0-alpha32 i androidx.camera:camera-view:1.0.0-alpha32 Wersja 1.0.0-alpha32 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Usunięto niepotrzebne adnotacje
@RequiresApi(21)z klas/interfejsów wewnętrznych. (I8e286, b/204917951) - Zaktualizuj pliki interfejsu API dla artefaktu camera-extensions. (If683a, b/161377155)
Poprawki błędów
- Nie zezwalaj aplikacji na włączanie trybów rozszerzenia podczas wiązania
VideoCapture. Rozszerzenia CameraX obsługują tylko te tryby:ImageCaptureiPreview.VideoCapturenie jest jeszcze obsługiwany. Jeśli aplikacja wiążeVideoCapturei włącza dowolny tryb rozszerzenia, zostanie wygenerowany błądIllegalArgumentException. (I0d87b) CameraSelector#filternie zgłasza już błęduIllegalArgumentException, gdy zbiór wyników jest pusty. (I27804)- Zmieniliśmy nazwę interfejsu API
ExtensionsManager#getInstancenagetInstanceAsync, ponieważ zwraca onListenableFuture. Sufiks Async w nazwie funkcji może wyraźnie wskazywać, że jest to funkcja asynchroniczna. (I279d2) - Usuń parametr rozdzielczości z interfejsu API
ExtensionsManager#getEstimatedCaptureLatencyRange, ponieważ użytkownicy nie mogą wiedzieć, które rozmiary są obsługiwane w przypadku zastosowaniaImageCapture, i nie mogą odróżnić, czy zwrócone informacje o opóźnieniu dotyczą maksymalnego rozmiaru wyjściowego przechwytywania czy parametru rozdzielczości wejściowej. (I74bb2) - Przenieś parametr
CameraProviderfunkcjiExtensionsManagerdo interfejsu APIgetInstance(). Dzięki temu użytkownicy nie muszą wpisywać parametruCameraProviderza każdym razem, gdy wywołują funkcjeExtensionsManager. (Ic7e48)
Wersja 1.0.0-alpha31
17 listopada 2021 r.
Publikacja androidx.camera:camera-extensions:1.0.0-alpha31 i androidx.camera:camera-view:1.0.0-alpha31 Wersja 1.0.0-alpha31 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Do publicznego interfejsu API dodano metodę CameraSelector#filter, która umożliwia filtrowanie listy CameraInfos na podstawie CameraSelector. (I105d0)
Poprawki błędów
- Rozwiązaliśmy problem z awarią występującą podczas szybkiego przełączania trybu rozszerzeń na niektórych urządzeniach. (Iebbef)
Wersja 1.0.0-alpha30
13 października 2021 r.
Publikacja androidx.camera:camera-extensions:1.0.0-alpha30 i androidx.camera:camera-view:1.0.0-alpha30 Wersja 1.0.0-alpha30 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Dodano adnotację @RequiresApi(21) do wszystkich klas CameraX i usunięto minSdkVersion z pliku AndroidManifest.xml. Umożliwi to łatwą integrację biblioteki camera-core z aplikacjami, które mają minSdkVersion poniżej 21, ale chcą warunkowo używać ścieżek kodu opartych na interfejsie API 21 lub nowszym. W przypadku aplikacji z minSdkVersion 21 lub nowszą 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, gdy włączony jest ProGuard. (Iae468, b/201177844)
Wersja 1.0.0-alpha29
29 września 2021 r.
Publikacja androidx.camera:camera-extensions:1.0.0-alpha29 i androidx.camera:camera-view:1.0.0-alpha29 Wersja 1.0.0-alpha29 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Adnotacja ExperimentalUseCaseGroup została usunięta, ponieważ interfejsy API nie są już eksperymentalne. (I01ef5)
- usuń
RotationProvider#removeAllListeners(). Zamiast niej używaj zasadyRotationProvider#removeListener(...). (Id9d4a) - Zaktualizowano klasę RotationReceiver: zmieniono set/clear Listener na add/remove/removeAll, usunięto odmianę setListener, która domyślnie używa wątku głównego, i dodano adnotacje metod. (Ib1669)
Poprawki błędów
- Zmieniono nazwę ExtensionMode#BEAUTY na FACE_RETOUCH, aby prawidłowo odzwierciedlić działanie trybu rozszerzenia. (I61f54, b/198515274)
- Rozwiązaliśmy problem polegający na tym, że aparat nieoczekiwanie się zamykał, gdy w jednej aktywności używano wielu obiektów CameraController i PreviewView. (Ibfd18, b/197539358)
Wersja 1.0.0-alpha28
18 sierpnia 2021 r.
Publikacja androidx.camera:camera-extensions:1.0.0-alpha28 i androidx.camera:camera-view:1.0.0-alpha28 Wersja 1.0.0-alpha28 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Adnotacja ExperimentalUseCaseGroupLifecycle została usunięta, ponieważ interfejsy API nie są już eksperymentalne. (I17b85)
- Zrefaktoryzowano interfejs RotationListener i zmieniono jego nazwę na RotationProvider. Nadal zapewnia tę samą funkcję, 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. Ustawienie OutputSize jako final (I099fa)
Poprawki błędów
- Usunięto wycofane klasy
<EffectName><UseCase>Extender, ExtensionsErrorListener i powiązane interfejsy API ExtensionsManager. (I3b8c3)
Wersja 1.0.0-alpha27
21 lipca 2021 r.
Publikacja androidx.camera:camera-extensions:1.0.0-alpha27 i androidx.camera:camera-view:1.0.0-alpha27 Wersja 1.0.0-alpha27 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Interfejs Viewport API nie jest już eksperymentalny. Usuń eksperymentalną adnotację interfejsu API. (I717ea)
- Zmieniono nazwę
CoordinateTransform#getTransformnaCoordinateTransform#transformi zaktualizowano JavaDoc (I864ae)
Poprawki błędów
- Rozwiązaliśmy problem z rozciąganiem w trybie
PreviewView PERFORMANCEpodczas korzystania z interfejsu Compose. (Ie1137, b/183864890)
Wersja 1.0.0-alpha26
30 czerwca 2021 r.
Publikacja androidx.camera:camera-extensions:1.0.0-alpha26 i androidx.camera:camera-view:1.0.0-alpha26 Wersja 1.0.0-alpha26 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- dodaj nową metodę
CameraController#getTapToFocusState(), która udostępnia najnowszy wynik ustawiania ostrości po dotknięciu. (Iaccb0) - dodanie do CameraController większej liczby głównych funkcji aparatu: getterów/setterów dla docelowego formatu obrazu, docelowej rozdzielczości, trybu przechwytywania, CameraControl i niestandardowych obiektów wykonujących. (Iea8f2)
- dodaj klasę RotationReceiver, która odbiera zmiany obrotu powierzchni. Można go użyć do ustawienia docelowego obrotu, gdy urządzenie jest w trybie stałym pionowym lub poziomym. (Ib278f)
- Udostępniliśmy nowe publiczne interfejsy API getEstimatedCaptureLatencyRange w klasie ExtensionsManager. (I6a8ec)
- Wycofany interfejs ExtensionsErrorListener. Obecnie ten interfejs służy tylko do sprawdzania, czy podczas włączania trybów rozszerzeń brakuje podglądu lub przechwytywania obrazu. CameraX automatycznie doda dodatkowy podgląd lub przechwytywanie obrazu, aby funkcje rozszerzenia działały prawidłowo. Po tym czasie nie będą zgłaszane żadne błędy za pomocą tego interfejsu. (I47d9e)
- Udostępniliśmy nowe publiczne interfejsy API ExtensionsManager getInstance, isExtensionAvailable i getExtensionEnabledCameraSelector oraz wycofaliśmy stare klasy
<EffectName><UseCase>Extenderi powiązane interfejsy API. (I329e6)
Wersja 1.0.0-alpha25
2 czerwca 2021 r.
Publikacja androidx.camera:camera-extensions:1.0.0-alpha25 i androidx.camera:camera-view:1.0.0-alpha25 Wersja 1.0.0-alpha25 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Interfejsy ExperimentalCameraFilter API nie są już na etapie eksperymentalnym i stały się oficjalnymi interfejsami API. Można ich używać bez adnotacji OptIn. (I4bc94)
- Dodaj narzędzie, które przekształca współrzędne między przypadkami użycia. Przykładowe zastosowanie: przekształcanie współrzędnych wykrytych w przypadku użycia ImageAnalysis i wyróżnianie wykrytego obiektu w podglądzie. (I63ab1, b/137515129)
- Kontakt
CameraViewzostał usunięty.CameraViewzastępujeCameraController. Informacje o tym, jak przeprowadzić migrację, znajdziesz w przewodniku po migracji. (Id5005)
Poprawki błędów
ExperimentalUseCaseGroupLifecyclezastąpiono tekstemExperimentalUseCaseGroup. (I3b2ef, b/159033688)
Wersja 1.0.0-alpha24
21 kwietnia 2021 r.
Publikacja androidx.camera:camera-extensions:1.0.0-alpha24 i androidx.camera:camera-view:1.0.0-alpha24 Wersja 1.0.0-alpha24 zawiera te zatwierdzenia.
Poprawki błędów
- Zastąpiono adnotację
@Experimentaladnotacją@RequiresOptInw eksperymentalnych interfejsach API. Do wywoływania eksperymentalnych interfejsów API używajandroidx.annotation.OptInzamiast wycofanegoandroidx.annotation.experimental.UseExperimental. (Iff226) - Rozwiązaliśmy problem z rozciągniętym widokiem PreviewView na urządzeniu Samsung J5 Prime (Ib10b6).
Rozszerzenia i widok aparatu w wersji 1.0.0-alpha23
24 marca 2021 r.
Publikacja androidx.camera:camera-extensions:1.0.0-alpha23 i androidx.camera:camera-view:1.0.0-alpha23 Wersja 1.0.0-alpha23 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Widok z kamery jest wycofywany. Zamiast niej użyj zasady
LifecycleCameraController. Zobacz przewodnik po migracji (Idac2c). - Dodano adnotację FloatRange do metody setLinearZoom() (I69971).
Poprawki błędów
- thought Przypięto zależności widoku kamery, aby korzystać z artefaktów w wersji 1.0.0. Zależność od camera-view nie będzie już powodować automatycznego uaktualniania przez mechanizm rozwiązywania zależności Gradle artefaktów camera-core, camera-camera2 i camera-lifecycle do najnowszych wersji 1.1.0, chociaż camera-view nadal jest zgodny z tymi artefaktami, jeśli są one jawnie ustawione na używanie wersji 1.1.0. (Ic8fa1, b/181599852)
- Naprawiliśmy problem z rozciągniętym podglądem w PreviewView na urządzeniach Samsung A3. (Iacb30, b/180121821)
- Rozwiązaliśmy problem, który powodował, że nie można było ustawić selektora kamery przed jej zainicjowaniem. (Ic8bd0)
Rozszerzenia i widok aparatu w wersji 1.0.0-alpha22
24 lutego 2021 r.
Publikacja androidx.camera:camera-extensions:1.0.0-alpha22 i androidx.camera:camera-view:1.0.0-alpha22 Wersja 1.0.0-alpha22 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- dodaj funkcję pobierającą CameraInfo do CameraController. (Ib8138, b/178251727)
Poprawki błędów
- Naprawiliśmy błąd ExtensionsErrorListener, który powodował zgłaszanie błędów, gdy powiązany był tylko podgląd lub przechwytywanie obrazu. (I5ae39)
Camera Extensions & View w wersji 1.0.0-alpha21
27 stycznia 2021 r.
Publikacja androidx.camera:camera-extensions:1.0.0-alpha21 i androidx.camera:camera-view:1.0.0-alpha21 Wersja 1.0.0-alpha21 zawiera te zatwierdzenia.
Wydanie obsługujące inne artefakty biblioteki aparatu.
Rozszerzenia i widok aparatu w wersji 1.0.0-alpha20
16 grudnia 2020 roku
Publikacja androidx.camera:camera-extensions:1.0.0-alpha20 i androidx.camera:camera-view:1.0.0-alpha20 Wersja 1.0.0-alpha20 zawiera te zatwierdzenia.
Wydanie obsługujące inne artefakty biblioteki aparatu.
Camera-Extensions i Camera-View w wersji 1.0.0-alpha19
11 listopada 2020 roku
Publikacja androidx.camera:camera-extensions:1.0.0-alpha19 i androidx.camera:camera-view:1.0.0-alpha19 Wersja 1.0.0-alpha19 zawiera te zatwierdzenia.
Poprawki błędów
- W widoku kamery pojawiła się adnotacja
@ExperimentalVideo. Ta adnotacja oznacza interfejsy API, które udostępniają eksperymentalne funkcje wideo. Mogą one ulec zmianie, gdy funkcje zostaną w pełni rozwinięte. Każda metoda korzystająca z tych interfejsów API powinna używać adnotacji@UseExperimentalzExperimentalVideojakomarkerClass. (I6d729)
Camera-Extensions w wersji 1.0.0-alpha18
14 października 2020 r.
Publikacja androidx.camera:camera-extensions:1.0.0-alpha18 Wersja 1.0.0-alpha18 zawiera te zatwierdzenia.
Poprawki błędów
- Skróciliśmy czas oczekiwania na inicjalizację CameraX i bindToLifecycle (I61dc5).
<UseCase>.getTargetRotation()zwróciSurface.ROTATION_0, jeśli zostanie wywołana przed dołączeniem do instancji Camera, chyba że w Builder lub UseCase ustawiono targetRotation. (I80fcd)
Camera-View w wersji 1.0.0-alpha18
14 października 2020 r.
Publikacja androidx.camera:camera-view:1.0.0-alpha18 Wersja 1.0.0-alpha18 zawiera te zatwierdzenia.
Wydanie obsługujące inne artefakty biblioteki aparatu.
Camera-Extensions w wersji 1.0.0-alpha17
23 września 2020 r.
Publikacja androidx.camera:camera-extensions:1.0.0-alpha17 Wersja 1.0.0-alpha17 zawiera te zatwierdzenia.
Poprawki błędów
- Wersja obsługująca Camera-Core 1.0.0-beta10
Camera-View w wersji 1.0.0-alpha17
23 września 2020 r.
Publikacja androidx.camera:camera-view:1.0.0-alpha17 Wersja 1.0.0-alpha17 zawiera te zatwierdzenia.
Poprawki błędów
- Wersja obsługująca Camera-Core 1.0.0-beta10
Camera-Extensions w wersji 1.0.0-alpha16
16 września 2020 roku
Publikacja androidx.camera:camera-extensions:1.0.0-alpha16 Wersja 1.0.0-alpha16 zawiera te zatwierdzenia.
Poprawki błędów
- Dodano metodę w
ExtensionsManager, która umożliwia pobranie obiektuExtensionsużywanego do włączania i wykonywania zapytań dotyczących rozszerzeń w instancjach aparatu (I4fb7e).
Camera-View w wersji 1.0.0-alpha16
16 września 2020 roku
Publikacja androidx.camera:camera-view:1.0.0-alpha16 Wersja 1.0.0-alpha16 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Usunięto:
PreviewView#setDeviceRotationForRemoteDisplayMode()iPreviewView#getDeviceRotationForRemoteDisplayMode(). Te 2 metody służą do dostosowywania obrotu podglądu, gdy pożądany obrót nie jest obrotem wyświetlacza, np. w przypadku wyświetlacza zdalnego. Aby teraz obsłużyć obrót podglądu bez wyświetlania, ustaw żądany obrót za pomocąPreview#setTargetRotation()i nowo dodanegoPreviewView#getViewPort(targetRotation). (Ib62cc) - Zmieniono nazwę
createSurfaceProvider()nagetSurfaceProvider(). Metoda zawsze zwraca tę samą instancję Preview.SurfaceProvider. (Iff83c)
Poprawki błędów
- Wymuszono używanie TextureView przez PreviewView, jeśli efekt rozszerzenia jest włączony, a implementacja biblioteki dostawcy wymaga wykonania specjalnego procesu na powierzchni wyjściowej. (I0c3cc)
- Zezwalaj na dowolny obrót celu w podglądzie. Informacje o przekształceniu są obliczane i zwracane użytkownikowi na bieżąco za pomocą nowego wywołania zwrotnego
TranformationInfoListener. (I21470)
Znane problemy
- W PreviewView funkcja
OnClickListener#onClick()nie jest wywoływana, gdy użytkownik kliknie PreviewView. Zdarzenie dotknięcia jest błędnie wykorzystywane przez PreviewView#onTouchEvent(). Problem zostanie rozwiązany w następnej wersji. - Punkt pomiarowy uzyskany z
PreviewView#getMeteringPointFactory()może być nieprawidłowy, jeśli ViewPort jest używany z PreviewView.
Camera-Extensions w wersji 1.0.0-alpha15
19 sierpnia 2020 r.
Publikacja androidx.camera:camera-extensions:1.0.0-alpha15 Wersja 1.0.0-alpha15 zawiera te zatwierdzenia.
Poprawki błędów
- Metoda
ExtensionsManager.init()przyjmuje teraz jako parametr obiekt Context, a nie 0 argumentów. (Ife754) Inicjowanie nie powinno już powodować awarii, gdy używany jest kontekst, który nie zwraca obiektu aplikacji z
Context.getApplicationContext(). (I3d3c9, b/160817073)Camera-View w wersji 1.0.0-alpha15
19 sierpnia 2020 r.
Publikacja androidx.camera:camera-view:1.0.0-alpha15 Wersja 1.0.0-alpha15 zawiera te zatwierdzenia.
Poprawki błędów
DisplayOrientedMeteringPointFactoryprzyjmuje instancjęCameraInfozamiastCameraSelector, więc istnieje bezpośrednie mapowanie na kamerę, dla której fabryka będzie generować punkty. Wszystkie klasy, które używająDisplayOrientedMeteringPointFactory, przyjmują też instancjęCameraInfozamiastCameraSelector. (I400c1)- Kontakt
TextureViewMeteringPointFactoryzostał usunięty.PreviewViewudostępnia publiczny interfejs API (createMeteringPointFactory()) do tworzenia fabryki punktów pomiarowych niezależnie od tego, czy używaTextureView, czySurfaceView. (Ide693) - Zmieniliśmy nazwy trybów implementacji
SURFACE_VIEW/TEXTURE_VIEWklasy PreviewView naPERFORMANCE/COMPATIBLE.PERFORMANCEto stary trybSURFACE_VIEW, aCOMPATIBLEto stary trybTEXTURE_VIEW. (I0edc2) - W przypadku robienia zdjęć zastąp flagę odwrócenia w poziomie w metadanych na podstawie kierunku aparatu. (I28499)
Camera-Extensions w wersji 1.0.0-alpha14
22 lipca 2020 r.
Publikacja androidx.camera:camera-extensions:1.0.0-alpha14 Wersja 1.0.0-alpha14 zawiera te zatwierdzenia.
Camera-View w wersji 1.0.0-alpha14
22 lipca 2020 r.
Publikacja androidx.camera:camera-view:1.0.0-alpha14 Wersja 1.0.0-alpha14 zawiera te zatwierdzenia.
Camera-Extensions w wersji 1.0.0-alpha13
24 czerwca 2020 r.
Publikacja androidx.camera:camera-extensions:1.0.0-alpha13 Wersja 1.0.0-alpha13 zawiera te zatwierdzenia.
Poprawki błędów
- Dodano eksperymentalne interfejsy do filtrowania kamer według identyfikatora i CameraCharacteristics. (I28f61)
Camera-View w wersji 1.0.0-alpha13
24 czerwca 2020 r.
Publikacja androidx.camera:camera-view:1.0.0-alpha13 Wersja 1.0.0-alpha13 zawiera te zatwierdzenia.
Poprawki błędów
- CameraView nie ulega już awarii z powodu błędu IllegalArgumentException podczas wiązania z LifecycleOwner, którego cykl życia przechodzi w stan DESTROYED krótko po powiązaniu. Cykle życia powiązań w stanie DESTROYED nie będą próbowały otworzyć aparatu. (I7c2b8)
- Stan strumienia PreviewView jest teraz dostępny za pomocą CameraView.getPreviewStreamState() (I21a2b)
Camera-Extensions w wersji 1.0.0-alpha12
10 czerwca 2020 r.
Publikacja androidx.camera:camera-extensions:1.0.0-alpha12 Wersja 1.0.0-alpha12 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawiono błąd powodujący awarię podczas uruchamiania aplikacji, gdy CameraX jest inicjowana, gdy telefon jest w trybie Nie przeszkadzać. Zamiast awarii aplikacji
InitializationExceptionzawierającyCameraUnavailableExceptionzostanie ustawiony naListenableFuturewyniku inicjowania. (I9909a, b/149413835)
Camera-View w wersji 1.0.0-alpha12
10 czerwca 2020 r.
Publikacja androidx.camera:camera-view:1.0.0-alpha12 Wersja 1.0.0-alpha12 zawiera te zatwierdzenia.
Poprawki błędów
- Dodano interfejs API
PreviewView#getBitmap(), który zwraca reprezentację bitmapową treści wyświetlanych na powierzchni podglądu. (I9b500, b/157659818)
Camera-Extensions w wersji 1.0.0-alpha11
27 maja 2020 r.
Publikacja androidx.camera:camera-extensions:1.0.0-alpha11 Wersja 1.0.0-alpha11 zawiera te zatwierdzenia.
Camera-View w wersji 1.0.0-alpha12
10 czerwca 2020 r.
Publikacja androidx.camera:camera-view:1.0.0-alpha12 Wersja 1.0.0-alpha12 zawiera te zatwierdzenia.
Nowe funkcje
Zmiany w interfejsie API
Poprawki błędów
- Dodano interfejs API
PreviewView#getBitmap(), który zwraca reprezentację bitmapową treści wyświetlanych na powierzchni podglądu. (I9b500, b/157659818)
Camera-View w wersji 1.0.0-alpha11
27 maja 2020 r.
Publikacja androidx.camera:camera-view:1.0.0-alpha11 Wersja 1.0.0-alpha11 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Dodaj interfejs API
PreviewView#getPreviewStreamState, który umożliwia aplikacjom sprawdzanie, czy podgląd jest przesyłany strumieniowo. Gdy PreviewView jest w trybie TEXTURE_VIEW, stan STREAMING gwarantuje też, że obraz podglądu jest widoczny. (Ic0906, b/154652477) - Dodano interfejs API
PreviewView#setDeviceRotationForRemoteDisplayMode(), który umożliwia obracanie urządzenia na potrzeby obliczeń przekształceń, gdy aplikacja działa w trybie wyświetlacza zdalnego. (I59b95, b/153514525)
Poprawki błędów
- Rozwiązaliśmy problem ze zniekształceniem podglądu w przypadku kamer
FULL/LIMITED/LEVEL_3z Androidem 7.0 lub starszym. Wymuszony trybImplementationMode#TEXTURE_VIEW, gdy wersja Androida to 7.0 lub starsza. (I83e30, b/155085307) - Usunięto parametr
CameraInfoz funkcjiPreviewView#createSurfaceProvider(). FunkcjaPreviewViewpobiera go teraz wewnętrznie zSurfaceRequest. (If18f0, b/154652477) - Naprawiliśmy domyślny format obrazu VideoCapture, który w CameraView wynosi 16:9. (Ie6a7b, b/153237864)
- Rozwiązaliśmy problem z czarnym ekranem w
PreviewView, który występował po przesunięciu fragmentuPreviewi ponownym przesunięciu w ViewPager2. Rozwiązaliśmy też problem, który występował, gdyremoveView(previewview), a następnieaddView(previewView). (Iab555, b/149877652, b/147354615) - Zaktualizuj interfejs API
CameraView#takePicture(), aby umożliwić zapisywanie obrazów w usługachUriiOutputStream. Zaktualizuj aplikację testową, aby używaćUrijako przykładu kanonicznego. (Ia2459, b/153607583) - Typ skali PreviewView możesz ustawić w układzie XML, ustawiając atrybut
ScaleType. (I08565, b/153015659) - Usunięto
CameraView.ScaleType. Zamiast tego użyjPreviewView.ScaleType, aby ustawić lub pobrać typ skali za pomocą CameraView. (Ia8974, b/153014831) - Jeśli element
PreviewViewnie ma koloru tła, domyślnie nadaj mu kolor tła. Dzięki temu treści za nim nie będą widoczne przed rozpoczęciem transmisji podglądu. (I09fad)
Camera-Extensions w wersji 1.0.0-alpha10
15 kwietnia 2020 roku
Publikacja androidx.camera:camera-extensions:1.0.0-alpha10 Wersja 1.0.0-alpha10 zawiera te zatwierdzenia.
Poprawki błędów
- Poprawki obsługujące wprowadzenie Camera-Core
Camera-View w wersji 1.0.0-alpha10
15 kwietnia 2020 roku
Publikacja androidx.camera:camera-view:1.0.0-alpha010 Wersja 1.0.0-alpha010 zawiera te zatwierdzenia.
Poprawki błędów
- Rozwiązuje poprzedni znany problem, w którym implementacja surfaceView w
PreviewViewnie działała prawidłowo na niektórych urządzeniach i powodowała awarię aplikacji po wznowieniu podglądu. (I5ed6b)
Camera-Extensions w wersji 1.0.0-alpha09
1 kwietnia 2020 r.
Publikacja androidx.camera:camera-extensions:1.0.0-alpha09 Wersja 1.0.0-alpha09 zawiera te zatwierdzenia.
Poprawki błędów
- Zaktualizowano, aby obsługiwać poprawki błędów w artefaktach
camera-camera2:1.0.0-beta02,camera-core:1.0.0-beta02icamera-lifecycle:1.0.0-beta02
Camera-View w wersji 1.0.0-alpha09
1 kwietnia 2020 r.
Publikacja androidx.camera:camera-view:1.0.0-alpha09 Wersja 1.0.0-alpha09 zawiera te zatwierdzenia.
Znane problemy
- Używanie
ImplementationMode.SURFACE_VIEWzPreviewViewmoże nie działać dobrze na niektórych urządzeniach, ponieważSurfaceViewużywany do podglądu unieważnia swoją powierzchnię, gdy cykl życia okna, w którym się znajduje, zostanie zatrzymany. Po ponownym uruchomieniu aparat jest ponownie otwierany i może próbować wznowić podgląd, zanim powierzchniaSurfaceViewbędzie ponownie prawidłowa. Na razie używajImplementationMode.TEXTURE_VIEW.
Zmiany w interfejsie API
- Zmieniono nazwę
PreviewView.setImplementationMode()naPreviewView.setPreferredImplementationMode(). - Zmieniono nazwę
PreviewView.getImplementationMode()naPreviewView.getPreferredImplementationMode(). - Zastąpiono
PreviewView.getSurfaceProvider()przezPreviewView.createSurfaceProvider(CameraInfo), który przyjmuje instancjęCameraInfoz możliwością wartości null, używaną do optymalizacji podglądu przez użycieImplementationMode.SURFACE_VIEW, gdy tylko jest to możliwe. Jeśli przekazana zostanie instancja o wartości null lub jeśli ustawisz preferowany tryb implementacji naImplementationMode.TEXTURE_VIEW, wewnętrznie będzie używany trybImplementationMode.TEXTURE_VIEW. Poniższy przykładowy kod pokazuje, jak wcześniej używano przypadku użycia podglądu z PreviewView.
preview.setSurfaceProvider(previewView.previewSurfaceProvider) cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview)Obecnie możesz pisać:
val camera = cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview) previewView.preferredImplementationMode = ImplementationMode.TEXTURE_VIEW preview.setSurfaceProvider(previewView.createSurfaceProvider(camera.cameraInfo))Do
PreviewView.getSurfaceProvider()dodano adnotację@UiThread, co oznacza, że musi być wywoływana z wątku głównego. (I192f3)Dodano
PreviewView.setScaleType(), który umożliwia ustawienie typu skali podglądu. Może mieć jedną z wartości wPreviewView.ScaleType, a domyślnie jest toPreviewView.ScaleType.FILL_CENTER.Dodano:
PreviewView.getScaleType().Usunęliśmy obsługę ustawiania trybu implementacji dla
PreviewVieww układzie XML za pomocą atrybutuimplementationMode.Dodaj interfejs API
createMeteringPointFactory()do PreviewView, aby umożliwić konwersję (x, y) wPreviewViewnaMeteringPoint. (Ib36d7)
Poprawki błędów
- Naprawiliśmy błędy, które powodowały wyświetlanie nieprawidłowego podglądu po zmianie rozmiaru elementu
PreviewView. (I71101)
Camera-Extensions w wersji 1.0.0-alpha08
26 lutego 2020 r.
Publikacja androidx.camera:camera-extensions:1.0.0-alpha08 Wersja 1.0.0-alpha08 zawiera te zatwierdzenia.
Camera-View w wersji 1.0.0-alpha08
26 lutego 2020 r.
Publikacja androidx.camera:camera-view:1.0.0-alpha08 Wersja 1.0.0-alpha08 zawiera te zatwierdzenia.
Poprawki błędów
- Zastąpiono
ListenableFuturenaSurfaceRequest.provideSurface()przezExecutoriCallback. Upraszcza to interfejs API, ponieważ nie wymaga już obsługi wyjątków wprovideSurface()i wymusza, że wywołania zwrotnegoprovideSurface()nie można anulować. Ma to zapobiec awariom na starszych urządzeniach spowodowanym przedwczesnym zwalnianiem powierzchni. ObiektSurfaceRequest.Resultjest teraz używany do śledzenia, jakSurfaceRequestkorzysta z podanegoSurface. (I7854b) - Zmieniono nazwę
SurfaceRequest.setSurface(Surface)naSurfaceRequest.provideSurface(Surface), aSurfaceRequest.setWillNotComplete()naSurfaceRequest.willNotProvideSurface(). (I224fe) - Naprawiliśmy inicjowanie wariantów aplikacji z włączonym ProGuardem przez zachowanie flagi, która ustawia domyślnego dostawcę
CameraXConfig. (I2d6c1)
Camera-Extensions w wersji 1.0.0-alpha07
10 lutego 2020 r.
Publikacja androidx.camera:camera-extensions:1.0.0-alpha07 Wersja 1.0.0-alpha07 zawiera te zatwierdzenia.
Poprawki błędów
- Argumenty, które wcześniej były przekazywane w
ImageCapture.OnImageSavedCallback.onError()iImageCapture.OnImageCapturedCallback.onError(), zostały zastąpione pojedynczym argumentemImageCaptureException, który nadal zawiera wszystkie informacje, które były wcześniej przekazywane. - Argument pliku przekazany wcześniej w
ImageCapture.OnImageSavedCallback.onImageSaved()został usunięty. (I750d2)
Camera-View w wersji 1.0.0-alpha07
10 lutego 2020 r.
Publikacja androidx.camera:camera-view:1.0.0-alpha07 Wersja 1.0.0-alpha07 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Implementacja
TextureViewwPreviewViewustawia teraz rozmiarTextureViewna rozmiar wyjściowy czujnika aparatu, zanim przeskaluje go, aby wypełnić nadrzędnyPreviewView. Jeśli chcesz, aby podgląd z kamery wypełniał całą część interfejsu (na przykład cały ekran), nie ustawiaj rozmiaru elementuPreviewViewna stałą wartość ani nie ustawiaj zawijania treści (na przykład za pomocą atrybutu „wrap_content”). Może to spowodować, że podgląd z kamery będzie wypełniał tylko część elementuPreviewView(jeśli rozmiar wyjściowy czujnika kamery jest mniejszy). Zamiast tego ustawPreviewViewna tak duży jak jego element nadrzędny (na przykład za pomocą atrybutu „match_parent”). (1204869)
Poprawki błędów
- Zaktualizowaliśmy
ImageCapture, aby umożliwić zapisywanie obrazów w usługachUriiOutputStream. Połączono przeciążone metodytakePicturew jedną. Zaktualizowano aplikację testową, aby używałaUrijako przykładu kanonicznego. (Ia3bec) - Nazwę konta usługi
Preview.PreviewSurfaceProviderzmieniono naPreview.SurfaceProvider.SurfaceProvidernie wymagają już od deweloperów tworzenia własnychListenableFuture, a podawanieSurfaceodbywa się teraz za pomocą nowego obiektuSurfaceRequest. MetodaPreview.getPreviewSurfaceProvider()została usunięta, ponieważ może być nadużywana, gdy klasaPreviewjest sparowana z innymi klasami, takimi jakPreviewView. (I20105) - Argumenty, które wcześniej były przekazywane w
ImageCapture.OnImageSavedCallback.onError()iImageCapture.OnImageCapturedCallback.onError(), zostały zastąpione pojedynczym argumentemImageCaptureException, który nadal zawiera wszystkie informacje, które były wcześniej przekazywane. - Argument pliku przekazany wcześniej w
ImageCapture.OnImageSavedCallback.onImageSaved()został usunięty. (I750d2) - Zaktualizowano interfejs API, scalając metody
getZoomRatio(),getMaxZoomRatio(),getMinZoomRatio()igetLinearZoom()interfejsuCameraInfow metodęgetZoomState(), która zwraca instancjęZoomState. (Ib19fe)
Camera-Extensions w wersji 1.0.0-alpha06
22 stycznia 2020 r.
Publikacja androidx.camera:camera-extensions:1.0.0-alpha06 Wersja 1.0.0-alpha06 zawiera te zatwierdzenia.
Aktualizacje
- Różne poprawki i aktualizacje związane ze zmianami w Camera Core i Camera2.
Camera-View w wersji 1.0.0-alpha06
22 stycznia 2020 r.
Publikacja androidx.camera:camera-view:1.0.0-alpha06 Wersja 1.0.0-alpha06 zawiera te zatwierdzenia.
Aktualizacje
- Różne poprawki i aktualizacje związane ze zmianami w Camera Core i Camera2.
Camera-Extensions w wersji 1.0.0-alpha05
18 grudnia 2019 r.
Publikacja androidx.camera:camera-extensions:1.0.0-alpha05 Wersja 1.0.0-alpha05 zawiera te zatwierdzenia.
Poprawki błędów
- Zaktualizowano, aby dopasować do wewnętrznych interfejsów API Camera Core.
Camera-View w wersji 1.0.0-alpha05
18 grudnia 2019 r.
Publikacja androidx.camera:camera-view:1.0.0-alpha05 Wersja 1.0.0-alpha05 zawiera te zatwierdzenia.
Znane problemy
- Podczas korzystania z PreviewView 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 użyciem przez aparat powierzchni TextureView.
Camera-Extensions w wersji 1.0.0-alpha04
4 grudnia 2019 r.
Publikacja androidx.camera:camera-extensions:1.0.0-alpha04 Wersja 1.0.0-alpha04 rozszerzeń aparatu zawiera te zatwierdzenia
Zmiany w interfejsie API
Sprawdzanie dostępności i włączanie rozszerzenia wymaga teraz podania parametru wejściowego
CameraSelector. Musi to być ten samCameraSelector, który jest używany do powią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() )
Camera-View w wersji 1.0.0-alpha04
4 grudnia 2019 r.
Publikacja androidx.camera:camera-view:1.0.0-alpha04 Wersja 1.0.0-alpha04 pakietu camera-view zawiera te zatwierdzenia
Zmiany w interfejsie API
- Dostępna jest klasa
PreviewView, która ułatwia wyświetlanie danych wyjściowych z przypadku użycia podglądu w aplikacji. W układzie można uwzględnić te elementy:
PreviewView<androidx.camera.view.PreviewView android:id="@+id/preview_view" … />PreviewViewudostępniaPreviewSurfaceProvider, który ułatwia połączenie przypadku użycia wersji testowejpreview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)W nazewnictwie interfejsu API „
ZoomLevel” to teraz „ZoomRatio”Zmieniono dopuszczalność wartości null przez niektóre parametry metody
Camera-Extensions i Camera-View w wersji 1.0.0-alpha03
9 października 2019 r.
Publikacja androidx.camera:camera-extensions:1.0.0-alpha03 i androidx.camera:camera-view:1.0.0-alpha03 Oto zatwierdzenia uwzględnione w wersji camera-extensions:1.0.0-alpha03 i zatwierdzenia uwzględnione w wersji camera-view:1.0.0-alpha03.
Nowe funkcje
- Dodano inicjator kontekstu dla rozszerzeń. Wersja rozszerzeń została zwiększona do 1.1.0
Camera-Extensions i Camera-View w wersji 1.0.0-alpha02
5 września 2019 r.
Publikacja androidx.camera:camera-extensions:1.0.0-alpha02 i androidx.camera:camera-view:1.0.0-alpha02 Oto zatwierdzenia uwzględnione w camera-extensions:1.0.0-alpha02, a oto zatwierdzenia uwzględnione w camera-view:1.0.0-alpha02.
- Dodano testy sprawdzające, czy w
PreviewImageProcessorImplprawidłowo zaimplementowano sygnatury czasowe. - Napraw błąd testu
ExtensionTestna urządzeniu Nexus 5 (poziom interfejsu API 21) i upewnij się, że podgląd jest dostępny.
Camera-Extensions i Camera-View w wersji 1.0.0-alpha01
7 sierpnia 2019 r.
Publikacja androidx.camera:camera-extensions:1.0.0-alpha01 i androidx.camera:camera-view:1.0.0-alpha01
Oto zatwierdzenia uwzględnione w camera-extensions:1.0.0-alpha01, a oto zatwierdzenia uwzględnione w camera-view:1.0.0-alpha01.
- Nowa biblioteka dla przyszłych rozszerzeń aparatu, która umożliwia dostęp do efektów na obsługiwanych urządzeniach. Ta biblioteka jest w trakcie opracowywania.
- Nowa klasa widoku kamery. Ta biblioteka jest w trakcie opracowywania.