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.5.1 | - | - | 1.6.0-alpha01 |
| camera-core | 1.5.1 | - | - | 1.6.0-alpha01 |
| camera-compose | 1.5.1 | - | - | 1.6.0-alpha01 |
| efekty-kamery | 1.5.1 | - | - | 1.6.0-alpha01 |
| camera-extensions | 1.5.1 | - | - | 1.6.0-alpha01 |
| camera-feature-combination-query | - | - | - | 1.5.0-alpha06 |
| camera-feature-combination-query-play-services | - | - | - | 1.5.0-alpha06 |
| camera-lifecycle | 1.5.1 | - | - | 1.6.0-alpha01 |
| camera-mlkit-vision | 1.5.1 | - | - | 1.6.0-alpha01 |
| widok z kamery | 1.5.1 | - | - | 1.6.0-alpha01 |
| wizjer aparatu, | - | - | 1.3.0-beta02 | 1.4.0-alpha07 |
| kamera-wideo | 1.5.1 | - | - | 1.6.0-alpha01 |
Testowanie urządzeń
CameraX jest testowana na wielu urządzeniach w naszym laboratorium. Listę urządzeń, które są obecnie w laboratorium, znajdziesz w artykule Urządzenia testowane w laboratorium CameraX.
Deklarowanie zależności
Aby dodać zależność od CameraX, musisz dodać do projektu repozytorium Google Maven. Więcej informacji znajdziesz w artykule Repozytorium Maven Google.
Dodaj zależności dotyczące potrzebnych artefaktów w pliku build.gradle aplikacji lub modułu:
Groovy
dependencies { // CameraX core library using the camera2 implementation def camerax_version = "1.6.0-alpha01" // 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.6.0-alpha01" // The following line is optional, as the core library is included indirectly by camera-camera2 implementation("androidx.camera:camera-core:${camerax_version}") implementation("androidx.camera:camera-camera2:${camerax_version}") // If you want to additionally use the CameraX Lifecycle library implementation("androidx.camera:camera-lifecycle:${camerax_version}") // If you want to additionally use the CameraX VideoCapture library implementation("androidx.camera:camera-video:${camerax_version}") // If you want to additionally use the CameraX View class implementation("androidx.camera:camera-view:${camerax_version}") // If you want to additionally add CameraX ML Kit Vision Integration implementation("androidx.camera:camera-mlkit-vision:${camerax_version}") // If you want to additionally use the CameraX Extensions library implementation("androidx.camera:camera-extensions:${camerax_version}") }
Opinia
Twoja opinia pomoże nam ulepszyć Jetpacka. Jeśli odkryjesz nowe problemy lub masz pomysły na ulepszenie tej biblioteki, daj nam znać. Zanim utworzysz nowy problem, 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.
Camera Viewfinder 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 zmiany.
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 zmiany.
Nowe funkcje
- Nowa biblioteka. Ta biblioteka wprowadza komponent Viewfinder, który można używać z bibliotekami CameraX i Camera2. Komponent Viewfinder obsługuje różne proporcje obrazu i obsługę zdarzeń dotykowych.
Camera Viewfinder w wersji 1.4
Wersja 1.4.0-alpha07
12 czerwca 2024 r.
Publikacje 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 zmiany.
Wersja 1.4.0-alpha06
14 maja 2024 r.
Publikacje 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
- Zmieniamy nazwy
ViewfinderImplementationModeEnum, aby lepiej odzwierciedlały implementacje bazowe, i dodajemy stałe stałe dlaTransformationInfo.sourceRotation. (Ic6149) - Dodano
ZoomGestureDetector.ZoomEvent, aby obejmować stany gestu powiększenia. (I84cdf)
Aparat w wersji 1.6
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 zmiany.
Nowe funkcje
- CameraX została przeniesiona do ujednoliconego, wydajnego stosu aparatu, który jest również używany przez aplikację Aparat na Pixela. Ten nowy stos, znany jako
CameraPipe, jest wynikiem współpracy zespołów CameraX i Aparatu na Pixela. Dzięki temu wszystkie ulepszenia są udostępniane, co przynosi korzyści zarówno użytkownikom CameraX, jak i aplikacji Aparat na Pixela.
Zmiany w interfejsie API
- Dodano nowe interfejsy API do dynamicznego wykrywania dodawania i usuwania kamer. Więcej informacji znajdziesz w dokumentacji interfejsu
CameraPresenceListenerAPI. (I41ead, b/427182232, b/419441394)
Poprawki błędów
- Interfejs Feature Group API zapewnia teraz spójne wyniki, gdy
PREVIEW_STABILIZATIONjest używany z parametremVideoCapture. Naprawiliśmy błąd, który powodował niespójne wyniki, gdy nie był aktywny przypadek użyciaPreview. (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)
- Naprawiono usterkę w wynikach wideo na telefonie Samsung Galaxy S6. (I612d9, b/235127608)
- Rozwiązaliśmy problem, który powodował, że funkcja
CameraInfo#isFeatureGroupSupportedmogła nieprawidłowo zwracać wartość „prawda” dla funkcjiPREVIEW_STABILIZATION, jeśli funkcjaSessionConfigw zapytaniu była już skonfigurowana z innymi funkcjami. (I2c355c, b/437816469)
Aparat w wersji 1.5
Wersja 1.5.1
8 października 2025 r.
Publikacja androidx.camera:camera-*:1.5.1 Wersja 1.5.1 zawiera te zmiany.
Poprawki błędów
- Obsługa
CameraEffectw trybie kompozycji z jednoczesnym użyciem kamery. Efekt zostanie zastosowany do danych wyjściowych kompozycji. Pamiętaj, żemirrorModewVideoCapturezostanie zignorowane, gdy efekt jest ustawiony w trybie kompozycji kamery równoczesnej. (If3d00, b/425565129) - Rozwiązaliśmy problem polegający na tym, że w trybie kompozycji z jednoczesnym użyciem kamer
mirrorModenie był prawidłowo stosowany do kamery dodatkowej. (I686cd, b/446430827) - Obsługa łączenia
Preview,ImageCaptureiVideoCapturew trybie jednoczesnego działania kamery bez kompozycji. (Ib410a, b/443009871) - Rozwiązaliśmy problem, który powodował utratę informacji o docelowym obrocie w przypadku ponownego utworzenia przypadków użycia, takich jak
ImageCaptureiVideoCapture. Może to spowodować nieprawidłową orientację obrazów lub filmów, jeśli po obróceniu urządzenia zmieniono ustawienie, np.imageCaptureMode. (I477c8, b/444734537) - Rozwiązaliśmy problem, który uniemożliwiał wybieranie w podglądzie rozdzielczości 16:9 i nagrywanie w jakości QUALITY_1080P.
VideoCaptureTen problem wystąpił podczas korzystania z domyślnej konfiguracji rozdzielczości podglądu, gdy aktywna była wewnętrzna funkcjaStreamSharing(np. gdy jednocześnie powiązane były 4 obszary zastosowań). (I493cb, b/440364875) - Naprawiono problem z zawieszaniem się aplikacji podczas aktywowania efektu po wyłączeniu
SurfaceProcessor(I2c450, b/414150174) - Naprawiliśmy błąd w
CameraController, który powodowałIllegalStateException, 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 urządzenia Nokia 7 Plus, które powodują problem z cichym błędem bez zgłaszania komunikatów o błędach. (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ę to zdarzyć podczas wysyłania zapytań za pomocąSessionConfig, które zostało już skonfigurowane z innymi funkcjami. (I2c355, b/437816469) - Poprawiliśmy stabilność
CameraXViewfinderna starszych poziomach interfejsu API i na urządzeniach z problemami zSurfaceView, ustawiając w takich przypadkach domyślnieTextureView. Ten mechanizm rezerwowy jest nowym ustawieniem domyślnym, ale można go zastąpić programowo. (Ieb476, b/437496463) - Naprawiono wyciek pamięci w
PreviewView, który mógł uniemożliwiać odzyskiwanie pamięci przez aktywność. Dzieje się tak, gdy nowySurfaceRequestdotrze, zanim poprzedni zostanie obsłużony. (I4aa0b,b/443112512) - Rozwiązaliśmy problem z nieudanym nagrywaniem w zwolnionym tempie 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 zmiany.
Ważne zmiany od wersji 1.4.0:
- Nagrywanie w zwolnionym tempie i z dużą liczbą klatek na sekundę: łatwo zintegruj nagrywanie wideo z dużą liczbą klatek na sekundę (120/240 kl./s) i w zwolnionym tempie przy użyciu minimalnej ilości kodu. Więcej informacji znajdziesz w sekcjach
Recorder#getHighSpeedVideoCapabilities(CameraInfo)iHighSpeedVideoSessionConfig. - Interfejsy
SessionConfigiFeatureGroupAPI: nowy interfejsSessionConfigAPI umożliwia bezpieczne konfigurowanie sesji aparatu i włączanie 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 mogła określić optymalną obsługiwaną kombinację. Więcej informacji znajdziesz w artykułachSessionConfig.Builder#setPreferredFeatureGroup,SessionConfig.Builder#setRequiredFeatureGroupiCameraInfo#isFeatureGroupSupported(SessionConfig). - Interfejs Deterministic Frame Rate API: rozwiązuje poprzednie ograniczenia związane z
setTargetFrameRate, umożliwiając używanieCameraInfo.getSupportedFrameRateRanges(sessionConfig)do wysyłania zapytań iSessionConfig.setExpectedFrameRateRangedo ustawiania precyzyjnych i obsługiwanych wartości liczby klatek na sekundę. - Rozszerzenia aparatu: format UltraHDR jest teraz obsługiwany przez rozszerzenia. Sprawdź
ImageCapture.getImageCaptureCapabilities(cameraInfo).getSupportedOutputFormats()i włącz go wImageCapture.Builder.setOutputFormat. Gdy rozszerzenia są włączone, odzwierciedlane są teraz współczynnik powiększenia i możliwości stabilizacji podglądu. - Siła latarki: dostosuj siłę latarki za pomocą ikony
CameraControl.setTorchStrengthLevel. - Tryb doświetlania przy słabym oświetleniu: możesz włączyć tryb doświetlania przy słabym oświetleniu(
CONTROL_AE_MODE_ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY) za pomocą tych interfejsów API:CameraInfo#isLowLightBoostSupported,CameraInfo#getLowLightBoostStateiCameraControl#enableLowLightBoostAsync. - Nagrywanie wideo:
VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGEjest teraz wywoływane w przypadku braku miejsca podczas nagrywania.PendingRecording.withAudioEnabled(boolean initialMuted)umożliwia kontrolowanie początkowego stanu wyciszenia nagrywania dźwięku. - Przechwytywanie obrazu: obsługa formatów DNG (RAW) i JPEG + DNG (RAW) w
ImageCapture. Sprawdź, czy format RAW jest obsługiwany na stronieImageCaptureCapabilities(CameraInfo).getSupportedOutputFormats(). Używaj przeciążonych interfejsów APItakePicturez wielomaOutputFileOptionsdo rejestrowania obrazów w formacie 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 zmiany.
Poprawki błędów
- Przeniesienie domyślnego minSdk z API 21 na API 23 (Ibdfca, b/380448311, b/435705964, b/435705223)
- Usunięto ograniczenie 10-bitowego wyjścia w trybie automatycznego ustawiania ekspozycji przy słabym oświetleniu. Aplikacje mogą teraz jednocześnie włączać obie te funkcje na obsługiwanych urządzeniach. (I5a638)
- Rozwiązaliśmy problem, który powodował zawieszanie się urządzeń z chipsetami
UniSocpodczas robienia zdjęć. Problem wystąpił, gdyVideoCapture,PreviewiImageCapturebyły używane jednocześnie, a wszystkie strumienie były ustawione na rozdzielczość 1280 x 720. (Ia00c4, b/380802479) - Rozwiązaliśmy problem z czarnym ekranem podglądu, który występował, gdy podczas nagrywania w trybie szybkiego tempa/zwolnionego tempa nie ustawiono wysokiej liczby klatek na sekundę. (cdf0ff2e9)
- Ulepszona obsługa błędów i logowanie 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 zmiany.
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 w połączeniu na wszystkich urządzeniach.
SessionConfigzawiera teraz nowe interfejsy API, które pozwalają oznaczać grupę funkcji jako wymagane lub preferowane. InterfejsCameraInfo.isFeatureGroupSupportedAPI umożliwia sprawdzenie, czy grupa funkcji jest obsługiwana przed powiązaniemSessionConfig.SessionConfigumożliwia też ustawienie odbiornika, który będzie informować o tym, które funkcje zostały ostatecznie wybrane po powiązaniu konfiguracji sesji. (Ie4d60) - Dodaliśmy 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 na sekundę ograniczone przez konkretny parametrSessionConfig, a następnie stosowanie liczby klatek na sekundę w parametrzeSessionConfig. (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ę aparatu, konfiguruje ją za pomocą określonych przypadków użycia i parametrów sesji oraz stosuje wyznaczoneCameraEffectiViewPort. Podczas aktualizowania nowegoSessionConfigdo tego samegoLifecycleOwnermożesz po prostu powiązać nowySessionconfigbez konieczności wywoływania najpierw funkcji odłączania lubunbindAll. (Iedfc3) - Dodano nowe interfejsy API do nagrywania filmów w zwolnionym tempie i w wysokiej rozdzielczości. Więcej informacji znajdziesz w
HighSpeedVideoSessionConfigAPI. (Ia16f3)
Poprawki błędów
- Naprawiono błąd, w którym interfejs
ImageCaptureCapabilities#getSupportedOutputFormats()API zgłaszał obsługę formatów RAW na niektórych urządzeniach, które w rzeczywistości nie mają takiej możliwości. (Ibcadb) - Naprawiono wyciek pamięci, który występuje, gdy używana jest funkcja
PreviewView, włączona jest funkcjaCameraEffectlub powiązane są 4 przypadki użycia(udostępnianie strumienia) (I87468). - Naprawiono błąd nagrywania wideo spowodowany przez
AssertionError: Nieprawidłowy wewnętrzny stan dźwięku: IDLING. (I38d4b, b/414259796) - Rozwiązano problem z rozciąganiem lub obracaniem podglądu w
PreviewView, gdy aplikacja jest uruchomiona na zewnętrznym wyświetlaczu, a urządzenie jest w orientacji poziomej (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 VideoCapture.(I5430e)
CameraXViewfinderteraz prawidłowo obsługuje zastępowanie powierzchni wViewfinder. Dotyczy to sytuacji, w którychEXTERNALwizjer na poziomie interfejsu API 28 lub niższym zniknie z ekranu lub gdyCameraXViewfinder(z dowolnymImplementationMode) jest częściąmoveableContentOf(). Jeśli nie można utrzymać działania podstawowegoViewfinderSurfaceSession,CameraXViewfinderunieważni bieżącySurfaceRequestCameraX, co umożliwi CameraX korzystanie z nowegoSurface. (I79432)- Rozwiązuje problem na Androidzie 10/11, w którym
EXTERNALCameraXViewfindermogło być rozciągnięte lub nieprawidłowe z powodu zbyt wczesnego zastosowania operacji przekształcenia (takich jak skalowanie lub przesuwanie). System czeka teraz na utworzenie obiektu Surface, zanim zastosuje te przekształcenia w fazie układu, co zapewnia prawidłowe dane wyjściowe. (Icc77c) - Funkcja
CameraXViewfinderdziała teraz prawidłowo z funkcjąPagerw Compose. Ta zmiana zapewnia możliwość prawidłowego zresetowania komponentu kompozycyjnego przez zaimplementowanie wywołania zwrotnegoonResetfunkcjiAndroidView, które obsługuje implementacjeEMBEDDEDiEXTERNAL. (I0d9be) - Rozwiązaliśmy problem z wyciekiem właściciela cyklu życia, który występował podczas odłączania przypadków użycia 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 zmiany.
Zmiany w interfejsie API
- Projekty wydane w Kotlinie 2.0 wymagają do użycia KGP 2.0.0 lub nowszego (Idb6b5).
ContentScalei Wyrównanie 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 elementów Viewfinder bez żadnychTransformationInfo, które domyślnie będą miały obrót źródła o 0, bez odzwierciedlania źródła i bez prostokąta przycinania. (I2b1b2)- Dodano
LifecycleCameraProvider, czyli dostawcę aparatu, którego można utworzyć z różnymi konfiguracjami funkcji, np. dostępu do aparatu urządzenia wirtualnego przez skonfigurowanie go za pomocą 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) - Rozwiązaliśmy problem z trybem NOCNYM rozszerzeń
AssertErrorna 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 używania
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) - Dodaliśmy nowy interfejs API
CameraController#setTapToFocusAutoCancelDuration, dzięki któremu użytkownicy mogą kontrolować automatyczne anulowanie zdarzeńPreviewViewdotknięcia w celu ustawienia ostrości. Domyślnie CameraX anuluje zdarzenia związane z ostrością po 5 sekundach (tzn. ostrość aparatu jest resetowana), a ten interfejs API umożliwia modyfikowanie tego czasu trwania lub całkowite wyłączenie automatycznego anulowania. (Icf59a) FLASH_STATE_READYzmieniono naNOT_FIRED, a pozostałe nazwy stałychFlashStateuproszczono, aby były bardziej czytelne. (I8771d)- Udostępniony interfejs Low Light Boost API. Urządzenia z Androidem 15 lub nowszym mogą obsługiwać funkcję wzmocnienia przy słabym oświetleniu. Ta funkcja może automatycznie dostosowywać jasność podglądu, strumieni analizy wideo lub obrazu przy słabym oświetleniu. Aplikacje mogą używać nowego interfejsu API do: Aby sprawdzić dostępność funkcji, użyj
CameraInfo#isLowLightBoostSupported. 2. Użyj ikonyCameraControl#enableLowLightBoostAsync, aby włączyć ten tryb, jeśli urządzenia go obsługują. 3. UżyjCameraInfo#getLowLightBoostState, aby monitorować stan wzmocnienia przy słabym oświetleniu. (I937ed) - Dodaj klasy zgodności, aby umożliwić szybsze wysyłanie zapytań innych niż camera2 w zapytaniu dotyczącym kombinacji funkcji aparatu. (Ie97ee)
- W przypadku
CameraControllerzdarzeń dotknięcia w celu ustawienia ostrości nowy interfejs APIgetTapToFocusInfoState()udostępnia teraz również odpowiednią pozycję dotknięcia, zwracającLiveDataklasyTapToFocusInfo. 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)
- Rozwiązanie problemu polegającego na tym, że zdarzenie stanu ostrości
CameraControllernie wracało do stanuTAP_TO_FOCUS_NOT_STARTED, gdy CameraX automatycznie anulował zdarzenie ostrości, które domyślnie występuje po 5 sekundach. (I31954) - Rozwiązanie problemu z zawieszaniem się podglądu podczas korzystania z funkcji Zero Shutter Lag (ZSL) po wykonaniu wielu zdjęć z powodu niezwolnionych zasobów obrazu. (Ic3c2a)
- Rozwiązaliśmy problem, który powodował, że na niektórych urządzeniach filmy w rozdzielczości UHD miały czerwony odcień, gdy ścieżka obejmowała
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 zmiany.
Zmiany w interfejsie API
- Dodaj
VideoCapture.getSelectedQuality(), aby poznać wybraną jakość na podstawieQualitySelector. (I70508, b/204288986) - Gdy przechwytywanie obrazu jest wywoływane za pomocą interfejsu
ImageCapture.OnImageCapturedCallbackAPI, obiekt ImageInfo w zwróconym obiekcieImageProxymoże teraz służyć do sprawdzania, czy lampa błyskowa została uruchomiona za pomocą nowego interfejsuImageInfo.getFlashState()API. (Id2c61, b/380527406) - Dodaliśmy obsługę formatu wyjściowego
OUTPUT_IMAGE_FORMAT_NV21dlaImageAnalysis. (I484ab) - Usunięto eksperymentalną adnotację artefaktu
featurecombinationquery(I4427f) - Dostosuj zakres współczynnika powiększenia dozwolony dla
CameraControlwedług charakterystyki specyficznej dla rozszerzeń, gdy włączony jest tryb rozszerzeń. (I85af1)
Poprawki błędów
- Zaktualizowano
compileSdkdo 35 na potrzeby korzystania z interfejsu API związanego z Androidem 15. Aplikacje korzystające z bibliotek CameraX będą też musiały uaktualnićcompileSdkustawienie konfiguracji. (Ic80cd) - Ta biblioteka korzysta teraz z adnotacji o wartości null JSpecify, które są używane w typie. Deweloperzy Kotlin powinni używać tego argumentu kompilatora, aby wymusić prawidłowe użycie:
-Xjspecify-annotations=strict(jest to domyślne ustawienie 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 zmiany.
Zmiany w interfejsie API
- Udostępniono interfejsy API
ImageCapture.Builder#setOutputFormatiImageCaptureCapabilities#getSupportedOutputFormatsjako stabilne interfejsy API (Ieb04a). - Dodaj
VideoCapture.getResolutionInfo(), aby uzyskać informacje o rozdzielczości, gdyVideoCapturejest powiązany z cyklem życia. (Icb478) - Udostępniliśmy interfejsy API
PreviewView.getScreenFlashiPreviewView.setScreenFlashOverlayColorjako stabilne. (I74fee)
Poprawki błędów
- Rozwiązaliśmy problem z nieudanym robieniem zdjęć na urządzeniu Vivo 1610 z lampą błyskową w ciemności. (I366f4)
- Rozwiązaliśmy problem z nieoczekiwanym wyłączaniem latarki po zrobieniu zdjęcia na Redmi Note 6 Pro. (I2e0e8, b/377144569)
- Rozwiązaliśmy problem na urządzeniach Pixel z Androidem 15, który powodował, że tryb NOCNY w rozszerzeniach nie rejestrował zdjęć, dopóki aparat nie ustawił ostrości na pobliskim obiekcie. (I228d4)
- Rozwiązaliśmy problem z nieprawidłowym działaniem funkcji przechwytywania obrazu statycznego, gdy włączone są rozszerzenia i
VideoCapturejest powiązane. (I5c745) - Włączono
UltraHDRobsługę przechwytywania obrazów statycznych w przypadku rozszerzeń, jeśli urządzenie ją obsługuje. (I48300) - Rozwiązaliśmy problem z synchronizacją błysku lampy błyskowej podczas robienia zdjęć z użyciem funkcji
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 zmiany.
Zmiany w interfejsie API
- Dodano interfejsy API formatu wyjściowego dla formatów RAW i RAW + JPEG
ImageCapture. Sprawdzanie możliwości urządzenia jest dostępne wImageCaptureCapabilities#getSupportedOutputFormats.OUTPUT_FORMAT_RAWsłuży do rejestrowania obrazów RAW w formacie Adobe DNG, aOUTPUT_FORMAT_RAW_JPEG– do jednoczesnego rejestrowania obrazów RAW i JPEG. Nowy interfejsImageCapture#takePictureAPI służy do jednoczesnego rejestrowania obrazów i musi udostępniać 2OutputFileOptions. Pierwszy z nich służy do obsługi obrazu RAW, a drugi – obrazu JPEG. (Ib0f3d)
Poprawki błędów
- Rozwiązaliśmy problem z niedostateczną ekspozycją 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 funkcji
startFocusMeteringz parametremPreviewView.getMeteringPointFactorynie zwracało prawidłowych współrzędnych czujnika, gdy efekt był włączony lub gdy powiązane były 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 podczas nagrywania filmu, gdy było za mało miejsca na urządzeniu. (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 zmiany.
Nowe funkcje
- Nowe interfejsy API do wysyłania zapytań o funkcje aparatu obsługiwane przez urządzenie. Możesz na przykład sprawdzić, czy HDR i 60 klatek na sekundę można włączyć jednocześnie. Obejmuje 2 artefakty: camera-feature-combination-query i camera-feature-combination-query-play-services.
Jest to zgodna wersja interfejsu
CameraManager#getCameraDeviceSetup#isSessionConfigurationSupportedAPI Camera2 z dodatkowymi danymi dostarczanymi przez Usługi Google Play.
Poprawki błędów
- Rozwiązaliśmy problem z docelową liczbą klatek
Preview/VideoCapturena urządzeniach na poziomie LEGACY. Docelowa liczba klatek na sekundę ustawiona za pomocą interfejsu APIsetTargetFrameRatelubCamera2Interopbyła zawsze zastępowana wartością podaną przez interfejsAeFpsRangeLegacyQuirk. Dzięki tej poprawce biblioteka CameraX będzie uwzględniać wartość ustawioną za pomocą interfejsu APIsetTargetFrameRatelubCamera2Interop. (Ie2d32) - Dodano funkcje lampy błyskowej/latarki/3A do robienia zdjęć za pomocą
CameraEffect. Zdjęcia zrobione z użyciemCameraEffectpowinny teraz mieć takie same procesy przed i po zrobieniu zdjęcia (np. wyzwalanie lampy błyskowej, konwergencja 3A itp., w stosownych przypadkach) jak zdjęcia zrobione bezCameraEffect. (I5ff30) - Wykluczono problematyczne rozmiary wyjściowe dla
ImageAnalysisna urządzeniu Samsung SM-A057G. GdyImageAnalysisużywa rozdzielczości większej lub równej 1920 x 1440, powoduje to problem z czarnym podglądem. ZastosowanoExcludedSupportedSizesQuirkna urządzeniu SM-A057G, aby uniknąć problemu. (I63dfe, b/365877975) - Rozwiązaliśmy problem z
Preview/VideoCapturedocelową liczbą klatek, gdy mechanizm udostępniania strumienia jest włączony wewnętrznie w celu udostępniania strumienia naPreviewiVideoCapture. (I4fdac) - Włączyliśmy obejście, które rozwiązuje problem z nieprawidłowymi metadanymi obrazów JPEG na urządzeniach Samsung S10e i S10+. Po wprowadzeniu poprawki CameraX może zapisywać obraz JPEG lub zwracać poprawne obiekty Bitmap podczas wywoływania funkcji
ImageProxy.toBitmap()na tych urządzeniach, 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 natywne, a konfigurowanie sesji przechwytywania może się nie udać w przypadku trybów BOKEH i FACE_RETOUCH. (I03ec9, b/364152642)
- Naprawiliśmy błąd polegający na tym, że zdarzenie
VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGEnie było wywoływane podczas nagrywania filmu, gdy było za mało miejsca na urządzeniu. (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 zmiany.
Nowe funkcje
- Nowy artefakt
camera-composejest udostępniany dla adaptera CameraX Viewfinder Compose, który wyświetla strumień podglądu zSurfaceRequestCameraX zcamera-core. (I8666e) - Dodaliśmy nowy komponent
CameraXViewfinder, który działa jako idiomatyczny komponent dostosowujący komponentySurfaceRequestCameraX do komponentuViewfinder. (I4770f)
Zmiany w interfejsie API
- Udostępnianie interfejsu API do ustawiania kompozycji podczas nagrywania wideo z dwóch kamer jednocześnie. Ustawienia obejmują wartość alfa mieszania, przesunięcie we współrzędnych x i y oraz skalę szerokości i wysokości okna wyświetlania klatki kamery. Przesunięcie, szerokość i wysokość są podane w znormalizowanych współrzędnych urządzenia. (Ia2b8a)
- Udostępniono
CameraProvider.getCameraInfojako oficjalny 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 awarię, która występowała, gdy funkcja
bindToLifecyclebyła wywoływana z usuniętym obiektemLifecycleOwner. (I6e6d8) - Rozwiązaliśmy problem z czarnym ekranem podglądu w przypadku przedniego aparatu podczas łączenia z
VideoCapturena urządzeniu Motorola Edge 20 Fusion. (I1fe88) - Zoptymalizowaliśmy konfigurację wykrywania gestów powiększania w
PreviewView, aby zwiększyć 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 zmiany.
Poprawki błędów
- Rozwiązaliśmy problem z zawieszaniem się podglądu podczas korzystania z
ImageAnalysisz innym strumieniem, który używaTEMPLATE_RECORDna Samsungu 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 zmiany.
Poprawki błędów
- Rozwiązaliśmy problem na urządzeniach Pixel z Androidem 15, który powodował, że tryb NOCNY w rozszerzeniach nie rejestrował zdjęć, dopóki aparat nie ustawił ostrości na pobliskim obiekcie. (I228d4)
- Rozwiązaliśmy problem z nieprawidłowym działaniem znaku
ImageCapture#takePicture, gdy rozszerzenia są włączone, a znakVideoCapturejest 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 zmiany.
Ważne zmiany od wersji 1.3.0
Wersja CameraX 1.4.0 zawiera wiele ciekawych nowości. Podsumowanie:
Najważniejsza 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 HDR i sprawdzaj możliwości urządzenia.
- Działa z obrazami
UltraHDRi filmami HDR na coraz większej liczbie urządzeń.
Inne ciekawe funkcje:
- Rozszerzenia Kotlina: dodano funkcje zawieszające
takePictureiawaitInstance. - Efekty w czasie rzeczywistym: stosuj efekty, takie jak znaki wodne i wyróżnianie obiektów.
- Interfejs CameraController API: nowe ustawienia konfiguracji nagrywania wideo.
- Stabilizacja podglądu: sprawdzanie możliwości urządzenia i włączanie stabilizacji.
- 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. - Interfejs Shutter Sound API: łatwe sprawdzanie wymagań dotyczących dźwięku migawki w poszczególnych regionach.
- Błysk ekranu: lepsze zdjęcia w słabym oświetleniu robione przednim aparatem.
- Interfejsy API metadanych rozszerzeń aparatu: interfejsy API obsługujące dostosowywanie siły rozszerzeń i otrzymywanie powiadomień o bieżącym trybie rozszerzeń w
ExtensionMode#AUTO. Więcej informacji o poprawkach błędów znajdziesz w naszych 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 zmiany.
Poprawki błędów
- Rozwiązaliśmy problem, który powodował, że wywołanie funkcji
startFocusMeteringz parametremPreviewView.getMeteringPointFactorynie zwracało prawidłowych współrzędnych czujnika, gdy efekt był włączony lub gdy powiązane były 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 zmiany.
Poprawki błędów
- Dodano funkcje lampy błyskowej/latarki/3A do robienia zdjęć za pomocą
CameraEffect. Zdjęcia zrobione z użyciemCameraEffectpowinny teraz mieć takie same procesy przed i po zrobieniu zdjęcia (np. wyzwalanie lampy błyskowej, konwergencja 3A itp., w stosownych przypadkach) jak zdjęcia zrobione bezCameraEffect. (I5ff30) - Poprawiono płynność powiększania za pomocą gestu uszczypnięcia w
PreviewView(I04ffc). - Oddzielenie 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 zmiany.
Poprawki błędów
- Naprawiliśmy awarię, która występowała, gdy funkcja
bindToLifecyclebyła wywoływana z usuniętym obiektemLifecycleOwner. (I6e6d8) - Dodaliśmy animację widoczności w
ScreenFlashViewdlaScreenFlash#apply, która naprawia też błędy spowodowane asynchronicznym zakończeniem zmiany jasności po pewnym czasie. (I37cdb) - Poprawiona płynność powiększania dzięki zastąpieniu 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 zmiany.
Nowe funkcje
- Dodano eksperymentalny symbol
CameraInfo.getCameraInfo, aby podawać 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 przypadku, gdy elementScreenFlashViewnie jest dodawany wprost. (I43945)
Poprawki błędów
- Rozwiązaliśmy problemy z ekspozycją i odcieniem kolorów podczas robienia zdjęć z włączoną lampą błyskową przy słabym oświetleniu, gdy używany był przypadek użycia VideoCapture. (Ic9814)
- Rozwiązaliśmy problem polegający na tym, że przerwanie żądania
takePicturez włączonymi rozszerzeniami mogło uniemożliwić uzyskanie wyniku, a kolejne żądanietakePicturemogło przestać działać. (Iae78f) - Rozwiązaliśmy problem z wyciekiem pamięci, który występował po włączeniu rozszerzeń. (Iab276)
- Rozwiązano problem z nieprawidłowym działaniem rozszerzeń CameraX na urządzeniach takich jak Pixel 7/8 i Samsung Galaxy S24. Problem, który wynikał z
Camera2OutputConfigImplw trybie wersji, pojawił się po uaktualnieniu AGP do wersji 8.5.1 i włączeniu minimalizacji. (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 zmiany.
Zmiany w interfejsie API
- Podobnie jak w przypadku
VideoCapture, dodajsetMirrorModew przypadku podglądu. Będzie obsługiwać tryb lustrzany WŁĄCZONY i WYŁĄCZONY w przypadku strumienia podglądu za pomocąOutputConfiguration.setMirrorModeod interfejsu API 33 i nowszych. W przypadku starszych interfejsów API nie będzie działać. (I821f4)
Poprawki błędów
- Naprawiono problem polegający na tym, że aplikacje nie mogą robić zdjęć na urządzeniu Samsung Tab A8, gdy użytkownik wybierze rozdzielczość 1920x1080 w kombinacji
Preview+VideoCapture+ImageCaptureUseCase.ImageCapture(I5a463, b/336925549) - Ciągłe nagrywanie może nie być kontynuowane po przełączeniu kamery. (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 zmiany.
Zmiany w interfejsie API
- Dodano
ZoomGestureDetector.ZoomEvent, aby obejmować stany gestu powiększenia. (I84cdf)
Poprawki błędów
- Naprawiono błąd polegający na tym, że funkcja przechwytywania i dotykowego ustawiania ostrości nie korzystała z wartości FPS/trybu stabilizacji powtarzającego się żądania, co mogło powodować ponowne tworzenie sesji przechwytywania i problemy z opóźnieniami lub zawieszanie podglądu na niektórych urządzeniach. (I7dc0b)
- Naprawiliśmy błąd, który powodował, że na niektórych urządzeniach nie można było wybrać wysokiej rozdzielczości, gdy włączona była funkcja
CameraEffect. (np. 4000 x 3000 na Samsungu A32 5G). (Ie3ed3, b/337336152) - Rozwiązaliśmy problem z awarią podczas robienia zdjęć w podglądzie, gdy przyciski
ImageCaptureiVideoCapture(UHD)są powiązane na Pixelu 4XL API29. (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
- Przekształcono
ProcessCameraProviderw implementację w języku Kotlin. (I46d4f) - Dodano
ImageCapture.takePicturefunkcje zawieszania, aby można było je wywoływać w sposób zgodny z językiem Kotlin. (I920be)
Zmiany w interfejsie API
- Dodano interfejsy API formatu wyjściowego do
ImageCapturei metodęgetSupportedOutputFormatsdoImageCaptureCapabilitiesdo sprawdzania możliwości urządzenia. Domyślna wartość formatu wyjściowego toOUTPUT_FORMAT_JPEG, która umożliwia zapisywanie obrazów SDR w formacie JPEG. Gdy urządzenie obsługuje ultra HDR, a format wyjściowy jest ustawiony naOUTPUT_FORMAT_JPEG_ULTRA_HDR, CameraX będzie rejestrować skompresowane obrazy ultra HDR w formacie JPEG/R. Format ten jest wstecznie zgodny z formatem SDR JPEG i obsługuje renderowanie treści w HDR. Oznacza to, że w starszych aplikacjach lub na starszych urządzeniach obrazy będą wyświetlane bezproblemowo 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 będą wyświetlane w trybie HDR. (I5de50) - Dodaj
PhysicalCameraInfowCameraInfo, aby wysyłać zapytania o informacje o fizycznym aparacie, oraz dodaj funkcje ustawiające i pobierające identyfikator fizycznego aparatu wCameraSelector(Ic5b90). - Zastąp
CameraController#COORDINATE_SYSTEM_VIEW_REFERENCEDtekstemImageAnalysis#COORDINATE_SYSTEM_VIEW_REFERENCED. Wartość stałej pozostaje bez zmian. Umożliwia to zebranie wszystkich stałych w jednym miejscu. (I890bb) - Nowy interfejs API
RetryPolicyumożliwia deweloperom dostosowywanie sposobu ponawiania inicjowania CameraX. (I36dd2) - Włącz tworzenie obiektu
ImageCaptureLatencyEstimate, aby ułatwić testowanie (Iaba99). - Dodaj
ImageAnalysis#COORDINATE_SYSTEM_SENSOR. Gdy jest używana, funkcjaMlKitAnalyzerzwraca 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 wersję
ProcessCameraProvider.awaitInstance, która jest wersją zawieszającąProcessCameraProvider.getInstance(Ib22b9) - Dodaj interfejs API
PreviewView#getSensorToViewTransform(). Macierz reprezentuje przekształcenie współrzędnych z matrycy aparatu na współrzędnePreviewView. Można go użyć do przekształcenia współrzędnych z jednegoUseCasena inny. Na przykład przekształcanie współrzędnych wykrytych obiektów w nakładceImageAnalysisna nakładkęPreviewView. (I947ab) - Uogólnienie interfejsu
camera-viewfinder-coreAPI, aby można było go używać w przypadkucamera-viewfindericamera-viewfinder-compose. (I1e295) - Dodaj funkcję
getSurfacedoViewfinderSurfaceRequest. (I781a0) - Użyj
camera-viewfinder-corewcamera-viewfinderi wycofajViewfinderSurfaceRequestorazCameraViewfinder. (I6198c) - Dodano
ZoomGestureDetector, który interpretuje gesty skalowania skonfigurowane specjalnie do powiększania za pomocą gestu uszczypnięcia. (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 ustawiona na 640x480, nawet jeśli aplikacje miały inne ustawienie domyślnej rozdzielczości analizatora. Jeśli aplikacje napotykają ten problem (1.3.0–1.3.2) i nie mogą przejść na nowsze wersje, które zawierają rozwiązanie, można go obejść, bezpośrednio ustawiającResolutionSelectorz preferowaną rozdzielczością i pasującymAspectRatioStrategydoImageAnalysisUseCase. (I81f72, b/330091012) - Rozwiązaliśmy problem, który powodował, że żądanie
takePicturew kolejce mogło nie zostać uruchomione, jeśli bieżące żądanie się nie powiodło. (Ie0801) - Wprowadzono sprawdzanie nieprawidłowych danych JPEG na urządzeniach Vivo X60 i X60 Pro. Może to rozwiązać problem z nieprawidłowo dużymi obrazami na tych urządzeniach. (I82247, b/288828159)
- Naprawiliśmy problem z nieprawidłowymi metadanymi obrazów JPEG na urządzeniach Samsung A24. Dzięki tej poprawce CameraX może zapisywać obraz JPEG lub zwracać prawidłowe obiekty Bitmap podczas wywoływania funkcji
ImageProxy.toBitmap()na urządzeniach Samsung A24. (I8d6eb, b/309005680) - Sprawdzanie nieprawidłowych danych JPEG na wszystkich urządzeniach Samsung, jeśli zrobione zdjęcie ma rozmiar większy niż 10 MB. Może to rozwiązać problem z nieprawidłowo dużymi obrazami na urządzeniach Samsung. (Ic2a65, b/288828159)
- Usunięto obsługę
ImageAnalysisw rozszerzeniach CameraX, ponieważ implementacje rozszerzeń wielu producentów OEM nie działają dobrze zImageAnalysisi mogą powodować niespójne problemy. (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 interfejsuCameraEffectAPI, który skutecznie przetwarza dane wyjściowe z kamery. OverlayEffect: do rysowania nakładek za pomocą interfejsu Canvas API na Androidzie. Dzięki temu aplikacja może nakładać znak wodny lub wyróżniać wykryte obiekty na obrazach z kamery.DynamicRangeInterfejsy API dla przypadku użycia podglądu: zakres dynamiczny można teraz ustawić w przypadku użycia 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. WCameraInfodostępne są też nowe interfejsy API, które umożliwiają sprawdzanie, jakie zakresy dynamiczne obsługuje każdy 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 każdy aparat. 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) - Nazwa
getMirroring()została zmieniona 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 szacunkowy czas wykonania zdjęcia. Szacunek uwzględnia bieżące warunki otoczenia, stan aparatu i czas przetwarzania żądań przechwytywania wielu klatek oraz dodatkowy czas kodowania przetworzonych buforów, jeśli jest to konieczne. (I05c3a)
- Zmieniono nazwy
ScreenFlashUiControlnaScreenFlash,ScreenFlashUiControl#applyScreenFlashUinaScreenFlash#applyiScreenFlashUiControl#clearScreenFlashUinaScreenFlash#clearoraz dodano metodęgetScreenFlashUiApplyTimeoutSecondszamiast bezpośredniego udostępnianiaSCREEN_FLASH_UI_APPLY_TIMEOUT_SECONDS. (Iccdd0)
Poprawki błędów
- Rozwiązaliśmy problem z wyciekiem pamięci, który powodował, że działania lub fragmenty nie były zwalniane, gdy włączone były rozszerzenia (I14215).
- Rozwiązaliśmy problem polegający na tym, że w przypadku zastosowania rosnącego współczynnika powiększenia funkcja
getZoomRationieprawidłowo zwracała mniejszą wartość. (I4aa0d, b/317543616) - Zdarzenie
ImageCapture#ScreenFlash#clearjest wywoływane natychmiast po odłączeniuImageCapturelub zamknięciu kamery. Rozwiązuje też niektóre błędy, w których zdarzenie nigdy nie jest wywoływane, ponieważ w tych scenariuszach przechwytywanie nie jest prawidłowo kończone. (If99f9) - Rozwiązaliśmy problem z awarią, która występuje, gdy cykl życia zostaje zatrzymany przed zakończeniem żądania
takePicture(Idf017, b/306202751). - Rozwiązaliśmy problem polegający na tym, że podgląd z kamery stawał się czarny, gdy na niektórych urządzeniach włączone były rozszerzenia (I1ffd0).
- Naprawiono nieprawidłowy czas trwania nagrywania filmów na urządzeniach z układem Snapdragon 778G. (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ć informację o tym, czy zgodnie z ograniczeniami regionalnymi musi być odtwarzany dźwięk migawki. (Ifda84) - Dodano
OnImageCapturedCallback.onCaptureStartediOnImageSavedCallback.onCaptureStarted, aby powiadamiać o rozpoczęciu ekspozycji klatki przez kamerę. W tym momencie zalecamy odtworzenie dźwięku migawki lub animacji migawki. (Ic49b3) - Dodaliśmy obsługę funkcji błysku ekranu w CameraX do robienia zdjęć przednim aparatem. CameraX zajmie się obsługą interfejsu API po stronie platformy i w razie potrzeby zsynchronizuje czas z zmianami interfejsu aplikacji (np. wyzwalanie wstępnego przechwytywania AE po zmianie koloru lub jasności ekranu aplikacji). Aplikacje będą musiały dodać implementacje po stronie interfejsu w interfejsie
ScreenFlashUiControludostępnionym CameraX. (I8ae84) - Dodano obsługę implementacji interfejsu funkcji błysku na ekranie w CameraX. Aplikacje będą mogły uzyskać podstawową implementację
ImageCapture.ScreenFlashUiControlzPreviewViewlub nowo dodanegoScreenFlashView, który doda widok nakładki w jednym kolorze i zmaksymalizuje jasność ekranu podczas robienia zdjęć z błyskiem na ekranie. (I1810e)
Zmiany w interfejsie API
- Obsługa nowych funkcji rozszerzeń(postview i postęp procesu przechwytywania): dodano interfejsy API
ImageCapture#getImageCaptureCapabilities(), które umożliwiają aplikacjom sprawdzanie możliwości wywołania zwrotnego postview i postępu procesu przechwytywania. Aplikacje mogą włączyć widok po kliknięciu za pomocą interfejsuImageCapture.Builder#setPostviewEnabled(). Rozmiar po wyświetleniu można wybrać za pomocą ikonyImageCapture.Builder#setPostviewResolutionSelector(). Podczas wywoływania funkcjitakePicture(),onPostviewBitmapAvailableionCaptureProcessProgressedmożna zaimplementować wOnImageSavedCallbacklubOnImageCapturedCallback, aby w razie potrzeby otrzymywać powiadomienia o postępach w przetwarzaniu i wyświetlaniu po kliknięciu. (I5cd88) - Interfejsy API do obliczania transformacji współrzędnych z czujnika do bieżącego bufora z flagą wskazującą, czy powierzchnia zawiera informacje o orientacji kamery. (I59096)
- Udostępnij interfejs API do wysyłania zapytań do
PreviewCapabitlityw podglądzieUseCase. (Ie5b6c) - Dodano interfejsy API obsługujące więcej jakości dla
VideoCapture.Recorder.Builder#setVideoCapabilitiesSource(int)można używać zVIDEO_CAPABILITIES_SOURCE_CODEC_CAPABILITIESdo tworzenia instancjiRecorder, która obsługuje więcej jakości niżVIDEO_CAPABILITIES_SOURCE_CAMCORDER_PROFILE. Częstym przypadkiem użycia jest sytuacja, w której aplikacja stara się nagrywać filmy w jakości UHD, gdy tylko jest to możliwe, aleCamcorderProfileurządzenia nie zawiera ustawień UHD, mimo że kodek jest w stanie nagrywać filmy w jakości UHD. (Iedbe2, b/263961771) - Dodaj do klasy
CameraControllerfunkcję pobierania i ustawiania formatu wyjściowegoImageAnalysis. (I9a96c, b/308240643)
Poprawki błędów
- Aparat
1.3.1: poprawionoProcessCameraProvider#bindToLifecycle(). Główna zmiana polega na optymalizacji procesu identyfikowania najbardziej odpowiednich kombinacji rozmiarów dlaUseCases. 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 używanie
VideoCapture, gdy rozszerzenia są włączone. (I91f32) - Rozwiązano problem z dużymi zdjęciami JPEG na urządzeniach z serii Samsung A71 i M51. Zapisane obrazy JPEG zawierają nadmiarowe dane dopełniające w postaci zer w segmencie skompresowanych danych JFIF. Powoduje to, że zapisane obrazy mają bardzo duży rozmiar pliku. Te nadmiarowe zera wypełniające dane zostaną usunięte, aby przechwycone obrazy miały normalne rozmiary plików. (I01afc, b/288828159)
- Wyłącz obsługę
ImageAnalysisna urządzeniach Pixel, aby uniknąć błędu, który powoduje, że na urządzeniach Pixel przypadkowo zwracane są 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 Snapdragona 480 do
CameraUseInconsistentTimebaseQuirk. Rozwiązuje to problem na urządzeniach z Androidem 12, które korzystają z tego chipsetu. Polega on na tym, że dźwięk w nagraniach jest przesunięty o czas, w którym 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) - Dodano interfejsy API do wysyłania zapytań o możliwości urządzenia i włączania stabilizacji wideo lub podglądu. (I87544)
- Udostępnij interfejs API, aby dostosować maksymalny czas oczekiwania na ponowne otwarcie aparatu. (I0c642)
- Udostępniliśmy
ProcessCameraProvider.shutdownAsyncjako publiczny interfejs API do testowania, aby umożliwić korzystanie z dostawcy aparatu procesowego w pakietach testowych, 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 lustrzanego podczas nagrywania wideo. (Ifb8f7)
- Wycofaj
OutputSizei zastąp goResolutionSelector.ResolutionSelectorto bardziej kompleksowy sposób wybierania rozdzielczości, który jest zgodny z interfejsem Camera Core API. (I93abd, b/286801438)
Poprawki błędów
- Rozwiązano 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 rozciąganiem podglądu i
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
- Dodanie nowego interfejsu API, który umożliwia dostęp do informacji o amplitudzie dźwięku podczas nagrywania. (Id4925)
Poprawki błędów
- Popraw stabilność rozszerzeń, dbając o to, aby zdarzenia inicjowania i deinicjowania były wywoływane we właściwej kolejności. (Ib3b8e)
- Naprawiono błąd konfiguracji sesji przechwytywania stałego obrazu spowodowany przekroczeniem obsługiwanej kombinacji powierzchni z powodu wewnętrznego dodania dodatkowej powtarzającej się powierzchni. (Id718c)
- Rozwiązano problem z dużymi zdjęciami JPEG na urządzeniu Vivo S16. Zapisane obrazy JPEG zawierają nadmiarowe dane dopełniające w postaci zer w segmencie skompresowanych danych JFIF. Powoduje to, że zapisane obrazy mają duże rozmiary plików. Te nadmiarowe zera wypełniające dane zostaną usunięte, aby przechwycone obrazy miały normalne rozmiary plików. (I79505, b/299069235)
- Rozwiązanie problemu polegającego na tym, że
ImageAnalysisnie można było powiązać zImageCapturei podglądem, gdy na niektórych urządzeniach włączone były niektóre tryby rozszerzenia. Poprawka zwróci prawidłową wartość, gdy aplikacje będą wysyłać zapytania o dostępnośćImageAnalysisza pomocąExtensionsManager#isImageAnalysisSupported(). (I7d538) - Zaktualizuj dokumentację JavaDoc, aby odzwierciedlała działanie. Zamiast natychmiastowego zakończenia działania funkcje
#setZoomRatio,#setLinearZoomi#enableTorchczekają, aż kamera będzie gotowa. Dodaliśmy też informacje o tym, jak uzyskać maksymalne pole widzenia za pomocą interfejsu#takePictureAPI. (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 zmiany.
Poprawki błędów
- Rozwiązaliśmy problem polegający na tym, że w przypadku zastosowania rosnącego współczynnika powiększenia funkcja
getZoomRationieprawidłowo zwracała mniejszą wartość. (I4aa0d, b/317543616) - Naprawiono problem z wykonywaniem zdjęć i dotykowym ustawianiem ostrości, które nie korzystały z wartości FPS/trybu stabilizacji powtarzającego się żądania, co mogło powodować ponowne tworzenie sesji przechwytywania i problemy z opóźnieniami lub zawieszanie podglądu na niektórych urządzeniach. (I7dc0b)
- Rozwiązaliśmy problem, który powodował, że podczas wywoływania funkcji
setTargetFrameRatez parametremFRAME_RATE_RANGE_UNSPECIFIEDliczba klatek na sekundę była ustawiana na niższą wartość. (I78c61)
Wersja 1.3.3
17 kwietnia 2024 r.
Publikacja androidx.camera:camera-*:1.3.3 Wersja 1.3.3 zawiera te zmiany.
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 ustawiona na 640x480, nawet jeśli aplikacje miały inne ustawienie domyślnej rozdzielczości analizatora. Jeśli aplikacje napotykają ten problem (1.3.0–1.3.2) i nie mogą przejść na nowsze wersje, które zawierają rozwiązanie, można go obejść, bezpośrednio ustawiającResolutionSelectorz preferowaną rozdzielczością i pasującą wartościąAspectRatioStrategydoImageAnalysisUseCase. (I81f72, b/330091012)
Wersja 1.3.2
6 marca 2024 roku
Publikacja androidx.camera:camera-*:1.3.2 Wersja 1.3.2 zawiera te zmiany.
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) - Usunięto opcję rozdzielczości 9280x6944 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 ProcessCameraProvider#bindToLifecycle() wydajność. 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 wyniki referencyjne dla różnych scenariuszy:
Cztery
UseCases:Preview+ImageCapture+ImageAnalysis+VideoCapture- Google Pixel 7: od około 430 ms do 60 ms
- Samsung Galaxy S23 Ultra: około 540 ms do 45 ms
- Samsung A53 5G: około 115 ms do 70 ms
Trzy
UseCases:Preview+ImageCapture+ImageAnalysis- Google Pixel 7: około 9 ms do 7 ms
- Samsung Galaxy S23 Ultra: około 6 ms do 5 ms
- Samsung Galaxy A53 5G: około 32 ms do 12 ms
Dodano Snapdragona 480 do
CameraUseInconsistentTimebaseQuirk. Rozwiązuje to problem na urządzeniach z Androidem 12, które korzystają z tego chipsetu. Polega on na tym, że dźwięk w nagraniach jest przesunięty o czas, w którym 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, w tym 10-bitowy HDR, kadrowanie, odbicie lustrzane/bez odbicia, wyciszanie/wyłączanie wyciszenia, ustawianie liczby klatek na sekundę i inne.
- Podwójny aparat działający jednocześnie
- Biblioteka efektów
- Selektor rozdzielczości
- Wybór aparatu ultraszerokokątnego i teleobiektywu
- Przełączanie aparatu 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
- Popraw stabilność rozszerzeń, dbając o to, aby zdarzenia inicjowania i deinicjowania były wywoływane we właściwej kolejności. Rozwiązaliśmy problem z czarnym podglądem podczas przełączania trybów rozszerzeń lub kamer. (Iddaac)
- Rozwiązanie problemu polegającego na tym, że
ImageAnalysisnie można było powiązać zImageCapturei podglądem, gdy na niektórych urządzeniach włączone były niektóre tryby rozszerzenia. Poprawka zwróci prawidłową wartość, gdy aplikacje będą wysyłać zapytania o dostępnośćImageAnalysisza pomocąExtensionsManager#isImageAnalysisSupported(). (I7d538) - Rozwiązaliśmy problem polegający na tym, że w przypadku włączenia trybu dublowania na urządzeniu Xiaomi Poco X3 NFC nagrany dźwięk i obraz wideo były niesynchronizowane. (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 przymocowany jest rejestrator, zostanie ponownie połączony. (I517c6)
Poprawki błędów
- Naprawiliśmy awarię, która występowała, gdy transmisja była udostępniana zarówno w
VideoCapture, jak i w wersji podglądowej. Naprawiono też problem z czarnym ekranem na urządzeniach LEGACY, gdy włączone jest udostępnianie strumienia. - Rozwiązaliśmy problem z dużymi zapisanymi obrazami JPEG na urządzeniach z serii Samsung S7 (SM-G930T, SM-G930V). Zapisane obrazy JPEG zawierają nadmiarowe dane dopełniające w postaci zer w segmencie skompresowanych danych JFIF. Powoduje to, że zapisane obrazy mają duże rozmiary plików. Te nadmiarowe zera wypełniające dane zostaną usunięte, aby przechwycone obrazy miały normalne rozmiary plików. (I407b0, b/288828159)
- Rozwiązano problem z dużymi zdjęciami JPEG na urządzeniach Samsung S22 (SM-S901B, SM-S901B/DS) i S22+ (SM-S906B). Zapisane obrazy JPEG zawierają nadmiarowe dane dopełniające w postaci zer w segmencie skompresowanych danych JFIF. Powoduje to, że zapisane obrazy mają duży rozmiar pliku (ok. 13 MB) na urządzeniu S22 SM-S901B/DS. Te nadmiarowe zera wypełniające dane zostaną usunięte, aby przechwycone obrazy miały normalne rozmiary plików. (I73be9, b/288828159)
- Naprawiono problem z dużymi zapisanymi obrazami JPEG na urządzeniach z serii Samsung A5, A52, A70 i A72. Zapisane obrazy JPEG zawierają nadmiarowe dane dopełniające w postaci zer w segmencie skompresowanych danych JFIF. Powoduje to, że przechwycone obrazy mają bardzo duży rozmiar (np. około 32 MB lub nawet 96 MB). Te nadmiarowe zera wypełniające dane zostaną usunięte, aby przechwycone obrazy miały normalne rozmiary plików. (I97c4d, b/288828159)
- Naprawiono awarię natywną 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 przypadku wariantów Pixela 4 i 5 w celu poprawy jakości zdjęć w słabym oświetleniu (I56ff5, b/280221967)
- Rozwiązano problem z dużymi zdjęciami JPEG na urządzeniach z serii Samsung A5 (2017). Zapisane obrazy JPEG zawierają nadmiarowe dane dopełniające w postaci zer w segmencie skompresowanych danych JFIF. Powoduje to, że rozmiar pliku przechwyconych obrazów wynosi około 32 MB. Te nadmiarowe zera wypełniające dane zostaną usunięte, aby przechwycone obrazy miały normalne rozmiary plików. (I29837, b/288828159)
- Rozwiązaliśmy problem z nieprawidłowym ponawianiem w przypadku nieudanej rejestracji na urządzeniach, o których mowa 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)nasetAllowedResolutionMode, a 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żesz użyć tej opcji, aby wybrać formaty HDR jako dane wyjściowe funkcjiVideoCapture–VideoCapture.Builder#setDynamicRange(). (Ib0377) - Dodaliśmy interfejs API
isImageAnalysisSupporteddoExtensionsManager, za pomocą którego aplikacje mogą określać, czy przypadek użyciaImageAnalysismoże być powiązany z podglądem iImageCapture, gdy rozszerzenia są włączone. (I1bc63) - Nowa klasa
VideoCapabilitiesuzyskana zRecordermoże służyć do wysyłania zapytań o obsługiwane zakresy dynamiczne i jakości nagrywania filmów na urządzeniu. MetodygetSupportedQualities()iisQualitySupported()użytkownikaQualitySelectorsą wycofywane. Zamiast nich używaj metodgetSupportedQualities()iisQualitySupported()interfejsuVideoCapabilities. (I04014) CameraController#setVideoCaptureTargetQuality()zmienia nazwę nasetVideoCaptureQualitySelectori przyjmuje argumentQualitySelector, co zapewnia większą elastyczność w konfigurowaniu jakości wideo. WartośćCameraController#getVideoCaptureTargetQuality()zostanie odpowiednio zmieniona nagetVideoCaptureQualitySelector. (I520ed)- Usunęliśmy adnotację o eksperymentalnym charakterze funkcji wideo. Funkcje wideo są już stabilne. (I1a113)
Poprawki błędów
- Używaj latarki jako lampy błyskowej w modelach Samsung SM-A320, aby zwiększyć szybkość i jakość zdjęć robionych w słabym oświetleniu. (I6a022, b/286190938)
- Dodaliśmy obsługę formatu
ImageFormat.JPEGw przypadkuImageProxy.toBitmap(). Jeśli nie uda się zdekodować tablicy bajtów JPEG, zostanie zgłoszony wyjątekUnsupportedOperationException. (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 na sekundę niż domyślna na urządzeniu. Dostępne liczby klatek na sekundę nagrań można sprawdzić za pomocą nowego interfejsuCameraInfo#getSupportedFrameRates()API.
Zmiany w interfejsie API
- Zmieniliśmy nazwy stałych
ResolutionSelector#HIGH_RESOLUTION_FLAG_OFF/ONnaALLOWED_RESOLUTIONS_NORMAL/SLOW, a nazwę funkcji konstruktorasetHighResolutionEnabledFlagnasetAllowedResolutionMode. (Iae817) CameraInfo#getSupportedFrameRateRanges()zwraca terazSetzamiastList, aby lepiej odzwierciedlać, że zakresy są nieuporządkowane. (I02f43)- Dodaj odbiornik błędów do
CameraEffect, aby obsługiwać nieodwracalne błędy (Ice471). - Dodanie konstruktora publicznego w
ResolutionInfow celu zwiększenia możliwości testowania (If6d1c) - Udostępniliśmy interfejs API
UseCase.snapToSurfaceRotation(int), który zastępuje interfejsy APIsetTargetRotationDegrees,ImageAnalysis.setTargetRotationDegrees(int),ImageCapture.setTargetRotationDegrees(int)iVideoCapture.setTargetRotationDegrees(int). (Ia9010) - Dodano nowe interfejsy API
Preview#getTargetFrameRateiPreview.Builder#setTargetFrameRate, aby można było ustawiać i pobierać docelową liczbę klatek w przypadku podglądu (If4f22). VideoRecordEvent.Finalizebędzie teraz kończyć się kodem błęduERROR_RECORDING_GARBAGE_COLLECTED, gdy obiektRecordingzostanie zatrzymany z powodu odzyskiwania pamięci. (Iba974)
Poprawki błędów
- Naprawiono
NullPointerException, gdy rozmiary wyjściowe w pamięci podręcznej wStreamConfigurationMapCompatmają wartość null. (Idf124, b/282025204) - Rozwiązaliśmy problem polegający na tym, że przycisk
Preview.setSurfaceProvider(null)nie wstrzymywał podglądu w rozszerzeniach (Ia903e). - Rozwiązaliśmy problem, który powodował wyświetlanie błędu
ConcurrentModificationExceptionpodczas otwierania aparatu, gdy klawiszVideoCapturebył powiązany z inną funkcją. (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
- Równoczesne korzystanie z aparatu to nowa funkcja wprowadzona w Androidzie 11, która obsługuje jednoczesne przesyłanie strumieniowe z urządzeń z aparatem. Na przykład umożliwia jednoczesne korzystanie z przedniego i tylnego aparatu. CameraX obsługuje obecnie tylko 2 kamery działające jednocześnie, z których każda może mieć maksymalnie 2 powiązane obiekty {@link UseCase}. Maksymalna rozdzielczość to 720p lub 1440p. Więcej informacji znajdziesz pod tym linkiem: CameraManager#getConcurrentCameraIds().
- Przedstawiamy nowy interfejs
ResolutionSelectorAPI, 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 proporcji są wyrażone we współrzędnych czujnika urządzenia z kamerą.
- Aplikacje mogą wdrożyć niestandardowy filtr rozdzielczości, aby uporządkować obsługiwane rozmiary w odpowiedniej kolejności.
- Aplikacje mogą też włączyć rejestrowanie w wysokiej rozdzielczości, aby uzyskać obrazy o wyższej rozdzielczości. Pamiętaj jednak, że używanie wysokiej rozdzielczości może wydłużyć czas rejestrowania.
- Dodano interfejsy API
VideoCapturepowielania. Filmy nagrywane za pomocąVideoCapturenie są domyślnie odwracane. Podgląd z przedniego aparatu jest jednak domyślnie odbity jak w lustrze. Interfejsy API do tworzenia kopii lustrzanychVideoCaptureumożliwiają dopasowanie do podglądu z kamery podczas korzystania z przedniego aparatu. Istnieją 3 rodzaje:MirrorMode,OFF,ONiON_FRONT_ONLY. Aby dopasować obraz do podglądu z kamery, 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
ResolutionSelectorAPI. Aplikacje mogą określać strategie dotyczące proporcji i rozdzielczości za pomocą reguł rezerwowych lub niestandardowego filtra rozdzielczości, aby uzyskać pożądane wyniki. Aplikacje mogą określić flagę, aby włączyć rejestrowanie w wysokiej rozdzielczości. Dzięki temu CameraX będzie mogła wybierać wyższe rozdzielczości podczas robienia zdjęć lub nagrywania filmów. Pamiętaj jednak, że używanie wysokiej rozdzielczości może wydłużyć czas rejestrowania. (Ibed95) - Zakresy FPS obsługiwane przez algorytm AE można teraz sprawdzać za pomocą
CameraInfo#getSupportedFrameRateRanges(). (Iaa67f) - Ujednolicenie nazw wszystkich metod liczby klatek na sekundę poprzez użycie „FrameRate”. Popraw błąd w dokumentacji Javadoc w elemencie
VideoCapture#getTargetFrameRate()(I83304) - Wycofaliśmy starsze interfejsy API
setTargetAspectRatioisetTargetResolution. Zamiast niego użyj nowego interfejsuResolutionSelectorAPI. (I542c3) - Dodano publiczne interfejsy API do jednoczesnego korzystania z 2 aparatów, w tym:
List<List<CameraInfo>> getAvailableConcurrentCameraInfos()ConcurrentCamera bindToLifecycle(@NonNull ConcurrentCameraConfig concurrentCameraConfig)boolean isConcurrentCameraModeOn()iConcurrentCameraConfig,SingleCameraConfigiConcurrentCamera(Iab1c1)
- Ustawienie
ImageProcessor.Response#getOutputImageNonNull (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 kamery, tzn. podgląd z tylnej kamery nie jest odwrócony, ale podgląd z przedniej kamery jest odwrócony. (I713b6, b/194634656) - Dodaj interfejs API
setTargetFrameRate()wVideoCapture.Builderi interfejs APIgetTargetFramerate()wVideoCapture(I109d4) - Ustaw
SurfaceOutputjako rozszerzający Closable i ukryj publiczny konstruktor SurfaceOutput.Event. (I60ea8) - Dodano
Recording.mute, aby dynamicznie wyciszać lub wyłączać wyciszenie nagrania w trakcie przetwarzania.RecordingStatsbędzie zawieraćAudioStats.AUDIO_STATE_MUTED, gdy nagrywanie w trakcie przetwarzania zostanie wyraźnie wyciszone. (Ie17fc) - Parametr
#setEffects()został ustawiony jako niepusty. Dodano interfejs API#clearEffects()do usuwania efektów. Aplikacja powinna wywołać funkcję#clearEffects(), aby usunąć efekty. (I4b4d9) - Dodaj drugi konstruktor dla
ViewfinderSurfaceRequest.Builder, aby przyjmował konstruktora do konstruktora kopiującego (I621a7).
Poprawki błędów
- Rozwiązaliśmy problem, który powodował awarię aplikacji wywołujących Extensions API podczas zamykania kamery (Ib27e5).
- Rozwiązaliśmy problem, który powodował, że funkcja
VideoCapturenie działała z przednim aparatem na niektórych urządzeniach. Na przykład na telefonach Samsung Galaxy S23 i Xiaomi 2107113SG. (Ibec7e, b/270656244) - Rozwiązano problem polegający na tym, że robienie zdjęć za pomocą funkcji Plik w folderze publicznym 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 publicznym folderze pamięci zewnętrznej wymaga też ustawienia wartości
requestLegacyExternalStoragena true w tagu aplikacji. (I11b2c) - Naprawiliśmy 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 zmiany.
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. Dodani zostaną też użytkownicyImageCapture.setTargetRotationDegrees(int)iImageAnalysis.setTargetRotationDegrees(int). (Id3ffe, b/205242781) - Zezwól na
VIDEO_CAPTUREiPREVIEW|VIDEO_CAPTUREjako cel efektów. Efekty kierowane naVIDEO_CAPTUREbędą stosowane doVideoCaptureUseCase; efekty kierowane naPREVIEW|VIDEO_CAPTUREbędą stosowane do strumienia udostępnionego przed skopiowaniem do strumieni Podgląd iVideoCapture. (Iee6f3)
Poprawki błędów
- Aparat
1.2.2: naprawiono problem polegający na tym, że rozszerzenia CameraX nie działały prawidłowo, gdy na niektórych urządzeniach, np. Pixelu, włączono proguard (I90aa2). - Usunęliśmy błąd
PreviewView, który powodował, że jeśli aplikacja sama obsługiwała orientację ekranu, podgląd mógł ulec zniekształceniu po obróceniu urządzenia. Dzieje się tak tylko na niektórych urządzeniach. Można ją 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 powierzchni przez udostępnianie jednego strumienia wielu przypadkom użycia.
- Wcześniej, gdy wiązanie „Preview, VideoCapture, ImageAnalysis” odbywało się na poziomie sprzętowym kamery FULL lub niższym albo gdy wiązanie „Preview, VideoCapture, ImageCapture” odbywało się na poziomie sprzętowym LEGACY, CameraX zgłaszał
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 przechwytywania wideo.
- Koszt kopii buforowanej może spowodować wzrost opóźnień i zużycia energii w aplikacji.
Zmiany w interfejsie API
- Dodano interfejs API do konwersji
ImageProxynaBitmap. Obsługiwane formatyImageProxytoImageFormat.YUV_420_888iPixelFormat.RGBA_8888. Jeśli format jest nieprawidłowy, zostanie zgłoszony błądIllegalArgumentException. (Ic7110) - Dodaj
CoroutineCameraViewfinder, aby umożliwić konfigurowanie wizjera za pomocą funkcji zawieszających w Kotlinie. (I657bc) - Dodaj nowy publiczny konstruktor dla
ViewfinderSurfaceRequest. Zapewnia elastyczność, gdy użytkownik nie może podaćCameraCharacteristics. (Ie6549)
Poprawki błędów
- Rozwiązano problem z zawieszaniem się rozszerzeń na niektórych urządzeniach Samsung, gdy aplikacja była 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
CameraInfo.getIntrinsicZoomRatio, aby podać informacje o kącie widzenia względem kamery domyślnej. (Ib300c) - Dodano
CameraInfo.getLensFacing, aby podać informacje o kierunku obiektywu. DodaliśmyCameraSelector#LENS_FACING_EXTERNALjako funkcję eksperymentalną do wybierania kamer zewnętrznych. (Icaf3e) - Dodaj
#setEffect()doCameraController, co umożliwi dodawanie efektów do obrazu z kamery. (I1d21f) - Dodano metodę
invalidate()doSurfaceRequest. Dostawca platformy może powiadomić, że wcześniej podana platforma jest już nieprawidłowa. (Idc649) - Dodaj interfejs API
ImageProcessor. Ten interfejs służy do wstrzykiwania efektów końcowych do potokuImageCapture. (I575c6) - Dodaliśmy interfejs API
Recorder.Builder.setAspectRatio(), który można połączyć z interfejsemQualitySelector, aby obsługiwać więcej rozdzielczości wideo. (I8a082) - Dodano
Recorder.Builder#setTargetVideoEncodingBitRate, aby ustawić docelowe kodowanie wideoBitRate, iRecorder#getTargetVideoEncodingBitRate, aby uzyskać szybkość transmisji bitów docelowego kodowania wideo. (I5984d)
Poprawki błędów
- Rozwiązano problem z funkcją
ImageCapture, która nie 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 lokalizacji Exif na niektórych urządzeniach Samsung z Androidem 12. (Ib7086, b/263747161, b/263289024)
- gdy ustawisz latarkę lub powiększenie przed zakończeniem inicjowania aparatu, np. wywołując
CameraController#enableTorch, oczekujące działanie jest buforowane 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
- dodano nowy interfejs API do stosowania efektu przetwarzania końcowego do danych wyjściowych podglądu. (Ic17d5)
- Zmieniono nazwę
OutputOptions.getDurationLimitnaOutputOptions.getDurationLimitMillis, aOutputOptions.setDurationLimitnaOutputOptions.setDurationLimitMillis. (I91f0c) - Dodaj klasę
AudioConfig, aby obsługiwać ustawienia związane 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 nagrywania filmów. Metody
getVideoCaptureTargetSizeisetVideoCaptureTargetSizezostały zastąpione odpowiednio metodamigetVideoCaptureTargetQualityisetVideoCaptureTargetQuality, ponieważ metodasetTargetResolutionnie jest już obsługiwana. (I2a1d5)
Poprawki błędów
- Usunięto wycofany interfejs API
core.VideoCapture. (I531e0) - Rozwiązaliśmy problem polegający na tym, że wywołanie zwrotne
onErrornie było wywoływane podczas robienia zdjęć bez uprawnień do przechowywania danych.(I936db, b/244807669) - Popraw jakość i niezawodność rozszerzeń aparatu. Rozszerzenia aparatu są wyłączone na urządzeniach Motorola korzystających z rozszerzeń aparatu w wersji 1.1.0 i starszych ze względu na problemy z obsługą efektu bokeh, robieniem zdjęć i wznawianiem podglądu. (Id3ce3)
- Naprawiono awarię natywną, która występowała, gdy na starszych urządzeniach włączone było przycinanie wideo 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
Camera-viewfinderzostał oficjalnie opublikowany.Camera-viewfinderudostępnia podstawowy widżet wizjera, który może wyświetlać obraz z kamery w przypadku Camera2. Przykład znajdziesz w przykładowym kodzie.
Zmiany w interfejsie API
- Dodano
OutputOptions.setDurationLimit, aby umożliwić ustawienie limitu długości filmu. Nagranie zostanie automatycznie zakończone po przekroczeniu określonego limitu czasu. (I902a0) - Dodano 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 podjęcie próby przechwycenia obrazu w przypadku niepowodzenia. (Id4795)
- Rozwiąż problem z czarnym ekranem podczas wdrażania
PreviewViewSurfaceViewna stronieViewPager2. W ramach poprawkiPreviewViewbę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
ViewPortlubCameraControllerAPI. (Ifbba8, b/201085351) - Naprawiono problem z nagrywaniem 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 funkcja
VideoCapturenie działała z przednim aparatem na niektórych urządzeniach. 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 polegający na tym, że rozszerzenia CameraX nie działały prawidłowo, gdy na niektórych urządzeniach, np. Pixelu, włączono 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 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, w tym skanowaniem kodów kreskowych, wykrywaniem twarzy, wykrywaniem tekstu itp. Dodano
MLKitAnalyzerjako nowe interfejsy API. - Nowy eksperymentalny interfejs API Zero-Shutter Lag. Optymalizuje proces rejestrowania, 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żyta funkcjaCAPTURE_MODE_MINIMIZE_LATENCY. - Wycofaj:
android.camera.core.VideoCapture - Dodaliśmy
setStreamUseCase()jako publiczny interfejsCamera2InteropAPI. - Dodano wymagania dotyczące poziomu interfejsu API w przypadku
setOutputImageRotationEnabled. - Zmieniono nazwę
ImageAnalysis.Analyzer#getTargetResolutionOverride()naImageAnalysis.Analyzer#getDefaultTargetResolution(). - Dodano interfejs API do ustawiania metadanych lokalizacji w zapisanych filmach.
- Rozwiązaliśmy problem z niską liczbą klatek na sekundę podczas korzystania z
VideoCapturei przypadków użycia podglądu w formacie 16:9. - Rozwiązaliśmy problem z czarnym podglądem, który występował, gdy rozszerzenie BOKEH było włączone na niektórych urządzeniach Samsung i użytkownik przełączał kamery.
- Rozwiązaliśmy problem z rozciągnięciem obrazu na urządzeniach Samsung J7 Prime (SM-G610M) i J7 (SM-J710MN)
Preview/VideoCapturena poziomie API 27. - Wyłączyliśmy obejście problemu z odwracaniem poziomo obszaru AF 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
setStreamUseCasedlaOutputConfiguration. Użytkownik może określić przypadek użycia strumienia dla sesji strumienia, zastępując wewnętrzną logikę CameraX w zakresie wyboru przypadku użycia strumienia, aby zoptymalizować go zgodnie z własnymi potrzebami. (Ib1a95)
Poprawki błędów
- Rozwiązaliśmy problem z rozciągnięciem obrazu na urządzeniach Samsung J7 Prime (SM-G610M) i J7 (SM-J710MN)
Preview/VideoCapturena poziomie API 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ęciem obrazu. (I0e04e) - Naprawiono problem z niską liczbą klatek na sekundę podczas korzystania z
VideoCapturei podglądu w przypadku formatu obrazu 16:9 na niektórych urządzeniach Huawei. (If8c88, b/223643510) - Rozwiązaliśmy problem z otwieraniem kamery, gdy w podglądzie nie jest ustawiona wartość
SurfaceProvider. W ramach poprawki podgląd bez ustawieniaSurfaceProvidernie będzie już konfigurowany w sesji rejestrowania 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 zmiany.
Zmiany w interfejsie API
- Dodanie wymagania dotyczącego poziomu API w przypadku
setOutputImageRotationEnabled(I26e3e, b/240993561)
Poprawki błędów
- Wyłączyliśmy obejście problemu z odwracaniem poziomo obszaru 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 włączone było rozszerzenie
BOKEH, a użytkownik przełączał się między aparatami. (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. Łatwa integracja CameraX z wieloma funkcjami MLKit, w tym skanowaniem kodów kreskowych, wykrywaniem twarzy, wykrywaniem tekstu itp. Przykładowy kod znajdziesz tutaj. - Nowy eksperymentalny interfejs Zero-Shutter Lag API. Optymalizuje proces rejestrowania, 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ć minimalne w porównaniu z innymi trybami przechwytywania. Na urządzeniach, które nie obsługują ZERO_SHUTTER_LAG, zostanie użyty tryb CAPTURE_MODE_MINIMIZE_LATENCY.
- Uczyniliśmy interfejsy
ImageAnalysis.AnalyzeriMLKitAnalyzeroficjalnymi interfejsami API. - Udostępniony 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ęć w przypadku urządzenia Alps k61v1_basic_ref. Przechwycone obrazy JPEG z HAL mają nieprawidłowe metadane Exif. Metadane Exif nie mają tagu 0xffd9 ani 0xffda, co uniemożliwia prawidłowe przeanalizowanie atrybutów przez
ExifInterface. Aby obejść ten problem, przechwytuj obrazy w formacie YUV, a następnie kompresuj 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 zmiany.
Zmiany w interfejsie API
- Zmień nazwę
ImageAnalysis.Analyzer#getTargetResolutionOverride()naImageAnalysis.Analyzer#getDefaultTargetResolution(). Zmieniliśmy też działanie, aby wartość zwracana przez tę metodę mogła zostać zastąpiona wartościąImageAnalysis#setTargetResolution(). (If1d36) - Udostępniony interfejs API do ustawiania metadanych lokalizacji w zapisanych filmach. Obiekt
android.location.Locationmożna ustawić za pomocą nowego interfejsu APIandroidx.camera.video.OutputOptions.Builder.setLocation(Location). (I313a0, b/204197544)
Poprawki błędów
- Naprawiono problem z robieniem zdjęć z odłączonym podglądem (Ie70b6, b/235119898)
- Naprawiliśmy błąd powodujący awarię w
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 zmiany.
Zmiany w interfejsie API
- Usunięto adnotację eksperymentalną dla usług
ImageAnalysis.AnalyzeriMLKitAnalyzer. (I0ff22)
Poprawki błędów
- Dodano domyślny czas oczekiwania na automatyczne ustawianie ostrości wynoszący 5000 ms, który zakończy część AF z wartością
isFocusSuccessfulfalse, jeśliFocusMeteringActionnie zostanie anulowany, a część AF nie zostanie zbieżna w tym czasie. (Ibc2e3) - Naprawianie problemu z robieniem zdjęć bez powiązanego podglądu (I1d3a2, b/235119898)
- Włączono zaawansowaną implementację rozszerzeń 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 zmiany.
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 w przypadku natychmiastowego przechwytywania. Jest ona oparta na buforze pierścieniowym, który przechowuje wyniki pośrednie, aby można było je później przetworzyć, gdy użytkownik naciśnie przyciski, aby zrobić zdjęcia. Jeśli {@link VideoCapture} jest powiązany lub tryb lampy błyskowej nie jest wyłączony (OFF) albo rozszerzenie OEM jest włączone (ON), ten tryb zostanie automatycznie wyłączony. (I9ae74) - Dodaj metodę
ImageAnalysis.getBackgroundExecutor()(Icc945)
Poprawki błędów
- Naprawiono błąd, w którym metoda
ImageCapturetakePicture wyłączała latarkę na zgłoszonych urządzeniach. (Ib5eb5, b/228272227) - Usunęliśmy błąd, który powodował, że
AssertionErrornie było obsługiwane podczas pobierania cechyCONTROL_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 zmiany.
Nowe funkcje
- Wprowadzamy nową bibliotekę camera-mlkit-vision
Poprawki błędów
- Naprawiono:
QualitySelectornie nagrywa filmu w jakości UHD, gdy włączona jest strategia rezerwowa. Problem występuje, gdyVideoCapturejest powiązany zImageCapture, a podgląd jest wyświetlany na urządzeniu z kamerą o pełnym lub wyższym poziomie sprzętowym. Strategia rezerwowaQualitySelectorpowoduje, żeVideoCapturenieprawidłowo uzyskuje rozdzielczość FHD. Rozdzielczość UHD jest obsługiwana w przypadku tej kombinacji zastosowań i należy ją wdrożyć. (I0e788, b/230651237) - Naprawiono
NullPointerExceptionw dniuImageCapture.takePicture(). (I92366, b/230454568, b/229766155) - Naprawiono asynchroniczne wstrzymywanie działania funkcji
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 zmiany.
Ważne zmiany od wersji 1.0.0
- 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 programistom ś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ę aparatu i wideo, aby obsługiwać przypadki użycia związane z nagrywaniem filmów.
- Możliwość konwersji YUV na RGB i obracania obrazu (
ImageAnalysis.Builder.setOutputImageRotationEnabledisetOutputImageFormat) - Obsługa trybu wielu okien przez umożliwienie aplikacjom CameraX wznowienia korzystania z aparatu, gdy zostanie ono przerwane przez inną aplikację i ponownie będzie można ustawić ostrość.
- Zapewnia prawidłowe działanie CameraX na urządzeniach składanych dzięki rozwiązaniu niektórych problemów z podglądem.
- Dodano interfejs API
CameraState, który będzie udostępniany za pomocą CameraInfo. - Dodano interfejs API
ProcessCameraProvider.getAvailableCameraInfos(), który umożliwia bezpośrednie pobieranie informacji o dostępnych kamerach. - W przypadku
ImageCapture#OnImageCapturedCallback, gdy rozszerzenia są włączone, format wyjściowy to JPEG. - Dodano interfejs API
isFocusMeteringSupportedwCameraInfo, który umożliwia aplikacjom sprawdzenie, czy danyFocusMeteringActionjest obsługiwany przez bieżący aparat. - Udostępniliśmy interfejs API
getResolutionInfo, aby przekazywać informacje o rozdzielczości podgląduImageCaptureiImageAnalysis. - Dodano nowe API
ImageCapture.Builder#setJpegQuality, które umożliwia zmianę jakości kompresji wyjściowego obrazu JPEG podczas robienia zdjęć. - Dodano
CameraSelector#filterdo publicznego interfejsu API, aby filtrować listęCameraInfosna podstawieCameraSelector. - Dodano
Camera2CameraControl.clearCaptureRequestOptionsdo czyszczenia istniejących opcji żądania przechwytywania. - Dodano 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 danego aparatu. - Przekształcenie kilku eksperymentalnych interfejsów API w oficjalne interfejsy API dostępne publicznie
- Zastąpiono adnotację
@Experimentaladnotacją@RequiresOptInw przypadku eksperymentalnych interfejsów API. Do wywoływania eksperymentalnych interfejsów API używaj adnotacji androidx.annotation.OptIn zamiast wycofanej adnotacji androidx.annotation.experimental.UseExperimental. - Przekształciliśmy te eksperymentalne interfejsy API w oficjalne:
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.
- Promowanie eksperymentalnego interfejsu
UseCaseGroupAPI dla bibliotek camera-core, camera-lifecycle i camera-video. Dodano elementyViewPort#getLayoutDirection,ViewPort.Builder#setLayoutDirectioniViewPort.Builder#setScaleTypedo dostosowywania obszaru wyświetlania. - Udostępniliśmy
ExperimentalUseCaseGroupLifecyclejako oficjalne publiczne interfejsy API. - Zmiany w istniejących interfejsach API
Renamed MediaStoreOutputOptions.getCollection, byMediaStoreOutputOptions.getCollectionUri.- Aby skrócić nazwę, zmieniliśmy ją na „Nagrywanie”.
ActiveRecording - Zmiana interfejsu
QualitySelectorCreator API na interfejs oparty na listach
Poprawki błędów
- Rozwiązaliśmy problem
YuvToJpegProcessorEOFException, który występował, gdy włączony był tryb rozszerzenia i ustawiony był trybImageCapture#CAPTURE_MODE_MAX_QUALITY. - Nie udało się skonfigurować stałego kodeka, ponieważ nagrywanie wideo jest zamykane
- Naprawiono rozciągnięty podgląd lub format obrazu wideo podczas nagrywania w rozdzielczości 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 włączała się podczas dotykowego ustawiania ostrości (
startFocusAndMetering), gdy w słabym oświetleniu tryb lampy błyskowej był ustawiony na automatyczny lub zawsze włączony.
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 dniuImageCapture.takePicture(). (I92366, b/230454568, b/229766155) - Usunęliśmy błąd polegający na tym, że znak
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 zmiany.
Nowe funkcje
- Wydanie pierwszej wersji RC dla kamery wideo, widoku z kamery i rozszerzenia kamery
Poprawki błędów
- Rozwiązaliśmy problem, który powodował, że kodek wideo nie był zwalniany po odłączeniu
VideoCapture<Recorder>, co powodowało niepowodzenie kolejnych użyćVideoCapture<Recorder>podczas nagrywania za pomocąMediaCodec.CodecException, zwłaszcza na urządzeniach z interfejsem API w wersji 21–22. (Ie7f68) - Naprawianie problemu z nieusuwaniem zrobionych zdjęć
CameraExtensionsActivitywImageCaptureTest
Wersja 1.1.0-beta03
6 kwietnia 2022 roku
Publikacja androidx.camera:camera-*:1.1.0-beta03 Wersja 1.1.0-beta03 zawiera te zmiany.
Zmiany w interfejsie API
- Ograniczono konstruktor
CaptureRequestOptions. (I261b6) - Dodano 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
PreviewViewbył wyświetlany w pozycji poziomej, gdy po obróceniu urządzenia w trybie wielu okien aktywność nie została ponownie uruchomiona. (I1ea36, b/223488673) - Rozwiązaliśmy problem z wieloma oknami, który powodował, że po powrocie do aplikacji nie można było wznowić działania aparatu, gdy (1) inna aplikacja o wysokim priorytecie otwierała inny aparat, (2) urządzenie było telefonem Samsung z Androidem 12. (I7e9f2)
- Obejście problemu z urządzeniami, które ulegają awarii podczas sprawdzania dostępności lampy błyskowej. Na tych urządzeniach nie będzie dostępna latarka. (If26a3, b/216667482)
- Rozwiązaliśmy problem
AbstractMethodError, który występował, gdy aplikacje korzystały z rozszerzeń i miały włączoną ochronę ProGuard. (I7cbaf, b/222726805) - Wymuszone wyłączenie trybu rozszerzenia bokeh na urządzeniu Motorola razr 5G, co spowoduje problem z czarnym ekranem podglądu. (I35d49)
- Naprawiono brak synchronizacji dźwięku i obrazu po wstrzymaniu i wznowieniu odtwarzania na niektórych urządzeniach Samsunga z 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 powodujący awarię, gdy Rejestrator napotkał
InvalidConfigException. To rozwiązanie zapobiega jednak tylko awarii aplikacji, ale nie usuwa przyczyny błęduInvalidConfigException. Jeśli nie można skonfigurowaćRecorder, aplikacje otrzymają wywołanie zwrotne błędu po rozpoczęciu nagrywania. (I89c29, b/213617227)
Wkład zewnętrzny
- zaktualizowano interfejs API :compose:ui:ui-test (updateApi) z powodu migracji biblioteki 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 zmiany.
Zmiany w interfejsie API
- Dodano możliwość określania identyfikatora kamery fizycznej za pomocą interfejsu Camera2Interop. (I5aed8)
Poprawki błędów
- Rozwiązanie problemu z rozciągniętym podglądem na urządzeniu Oppo Find N (I7d004).
- Rozwiązaliśmy problem z nieprawidłowym wyświetlaniem podglądu na urządzeniu Galaxy J7 Prime. (I4c500)
- Użyj zgodnego bitrate, 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 zmiany.
Nowe funkcje
- Od wersji 1.1.0-beta01 wszystkie biblioteki CameraX będą miały ten sam numer wersji. Ułatwi to programistom śledzenie wersji i zmniejszy złożoność dużej macierzy zgodności wersji.
Zmiany w interfejsie API
- Dodano
Camera2CameraControl.clearCaptureRequestOptionsdo czyszczenia dotychczasowych opcji żądania przechwytywania. (Ifa07d)
Poprawki błędów
- Naprawiono błąd, który powodował awarię podczas nagrywania filmu na niektórych urządzeniach z Androidem starszym niż O(API 26). (I88fdf, b/212328261)
- Rozwiązaliśmy problem z nieprawidłowym regionem AF podczas korzystania z
cameraControl#startFocusAndMetering()na przednim aparacie w urządzeniach Samsung (Ifbf59, b/210548792). - Używanie latarki jako lampy błyskowej na Pixelu 3a/Pixelu 3a XL w celu zwiększenia szybkości i jakości zdjęć w ciemności (Ib12b6, b/211474332)
- Umożliwia aplikacjom wznowienie działania kamery, gdy zostanie ono przerwane przez inną aplikację o wyższym priorytecie w trybie wielu okien, a fokus powróci do aplikacji. Pamiętaj, że z powodu problemu z platformą może wystąpić opóźnienie(od 1 do 10 sekund lub więcej) między zmianami 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 zmiany.
Zmiany w interfejsie API
- Usunięto niepotrzebne adnotacje
@RequiresApi(21)z klas i interfejsów wewnętrznych. (I8e286, b/204917951) - Stałe jakości i stałe strategii rezerwowej w przypadku
QualitySelectorzostały zmienione tak, aby były reprezentowane przez obiekty klasy. Na przykładQualitySelector.QUALITY_HDzmienia się naQuality.HD, aQualitySelector.FALLBACK_STRATEGY_LOWER– na instancję zwróconą przezFallbackStrategy.lowerQualityOrHigherThan(Quality). Interfejs API używany do tworzeniaQualitySelectorzostał zmieniony na interfejs API oparty na listach. Nowy interfejs APIQualitySelector.fromOrderedList(List<Quality>)będzie odnosić się do kolejności na liście jakości danych wejściowych, a nie do kolejności utworzonej przez interfejs APIQualitySelector.Procedure. ZajęciaQualitySelector.Procedurezostały usunięte. (I43343) - Usunięto
PendingRecording.withEventListener(), a detektor zdarzeń musi być teraz przekazywany doPendingRecording.start(). Ten wymóg dotyczący detektora zdarzeń ma zachęcać do obsługi błędów asynchronicznych zgłaszanych w zdarzeniuVideoRecordEvent.Finalize. (I1e71d) - Nazwa
ActiveRecordingzostała zmieniona naRecording, aby była krótsza. (I77ceb)
Poprawki błędów
- Rozwiązano problem z niedokładną ekspozycją zdjęć w trybie
FLASH_AUTOw ciemnych warunkach na urządzeniach Pixel 3a i Pixel 3a XL (I13f19, b/205373142). - Zawsze używaj najnowszego rozmiaru wyświetlacza, aby określić podgląd
Resolution. (I4a694) - Odfiltrowaliśmy kamery, które nie mają
REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE. Kamery zREQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLEmają minimalny zestaw funkcji, które obsługuje każde urządzenie z kamerą. Aparat bezREQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLEmoże obsługiwać specjalne funkcje i nie obsługuje standardowego wyjścia kolorów.CameraXnie obsługuje przypadków użyciaPreview,ImageCapture,ImageAnalysisaniVideoCapturew przypadku tych kamer. Dlatego należy je odfiltrować, 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 producenta OEM używane są teraz bardziej inteligentne heurystyki. (Iaeef0)
- Podgląd stały będzie miał przeplatane kolorowe linie po rozpoczęciu nagrywania wideo w jakości UHD na Pixelu 1. (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 zmiany.
Zmiany w interfejsie API
- Dodano do publicznego interfejsu API metodę CameraSelector#filter, która umożliwia filtrowanie listy obiektów CameraInfo na podstawie obiektu CameraSelector. (I105d0)
Dodaj 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 obiektu, aby obraz był skierowany do przodu.
Dodaj 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 obiektu, aby obraz był skierowany do przodu.
Dodano interfejs API
getSensorToBufferTransformMatrixw ImageInfo. Zwracana 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 nowe API ImageCapture.Builder#setJpegQuality, które umożliwia zmianę jakości kompresji wyjściowego obrazu JPEG podczas robienia zdjęcia. (I8dcf4)
Zmieniono nazwę MediaStoreOutputOptions.getCollection na MediaStoreOutputOptions.getCollectionUri. (I16639)
Poprawki błędów
- Rozwiązaliśmy problem polegający na tym, że lampa błyskowa włączała się podczas korzystania z funkcji dotknij, aby ustawić ostrość (startFocusAndMetering), gdy w słabym oświetleniu tryb lampy błyskowej był ustawiony na automatyczny lub zawsze włączony. (Id4c11)
- Wyłączono HDR+ na Pixelu 2 XL / Pixelu 3 XL w trybie MINIMIZE_LATENCY, aby zmniejszyć opóźnienie. (Ib6270, b/203505523)
Wkład zewnętrzny
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 zmiany.
Nowe funkcje
- Opublikowaliśmy
androidx.camera:camera-video:1.1.0-alpha10jako pierwszą oficjalną wersję alfa Video. W kolejnych wersjach naprawimy kilka znanych problemów.
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ą parametr minSdkVersion mniejszy niż 21, ale chcą warunkowo używać ścieżek kodu zależnych od interfejsu API w wersji 21 lub wyższej. W przypadku aplikacji z parametrem minSdkVersion ustawionym na 21 lub wyższym ta zmiana nie wymaga żadnych działań. (Ie7f2e, b/200599470)
Poprawki błędów
- Zgłoś wyjątek InitializationException, aby aplikacja mogła prawidłowo obsłużyć błąd AssertionError, który wystąpił podczas tworzenia obiektu CameraCharacteristics. (Ibec79)
Wersja 1.1.0-alpha09
29 września 2021 r.
androidx.camera:camera-camera2:1.1.0-alpha09, androidx.camera:camera-core:1.1.0-alpha09 i androidx.camera:camera-lifecycle:1.1.0-alpha09 są zwalniane. Wersja 1.1.0-alpha09 zawiera te zmiany.
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 rozmyciem zdjęć w trybie
MAXIMIZE_QUALITY. (I173a9, b/193823892) - Rozwiązaliśmy problem z telefonem Samsung Galaxy J5, który powodował zawieszanie się aparatu po zrobieniu zdjęć z lampą błyskową włączoną lub w trybie automatycznym 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 wyniesie 95. Jeśli tryb przechwytywania toCAPTURE_MODE_MAXIMIZE_QUALITY, jakość kompresji JPEG wyniesie 100. (Ieb37c, b/142856426)
Wersja 1.1.0-alpha08
18 sierpnia 2021 r.
androidx.camera:camera-camera2:1.1.0-alpha08, androidx.camera:camera-core:1.1.0-alpha08 i androidx.camera:camera-lifecycle:1.1.0-alpha08 są zwalniane. Wersja 1.1.0-alpha08 zawiera te zmiany.
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 jest format 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
- Rozwiązanie problemu polegającego na tym, że ekran podglądu jest zbyt jasny na telefonie Huawei P20 Lite. Ten problem występuje tylko wtedy, gdy używasz określonych rozdzielczości podglądu w połączeniu z dużą wartością powiększenia. (Idefce, b/192129158)
- Rozwiązaliśmy problem, który powodował, ż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 podczas robienia zdjęć podgląd zatrzymywał się na chwilę, jeśli powiązane były VideoCapture, ImageCapture i Preview. (I56197, b/193864120)
- Umożliwia usłudze ImageAnalysis wybór rozdzielczości większej niż 1080p. Urządzenie na poziomie LIMITED może obsługiwać rozdzielczość RECORD w przypadku ImageAnalysis, gdy jest połączone z Preview i ImageCapture. W zamian wybrana rozdzielczość dla ImageCapture musi być rozdzielczością rozmiaru RECORD. Aby można było wybrać rozdzielczość rozmiaru RECORD na potrzeby ImageAnalysis, docelową rozdzielczość rozmiaru RECORD należy ustawić zarówno w ImageCapture, jak i w ImageAnalysis. Oznacza to, że aplikacja wyraźnie rozumie kompromis i woli, aby ImageAnalysis miała większą rozdzielczość niż ImageCapture. Definicje RECORD, MAXIMUM i inne szczegóły znajdziesz na stronie https://developer.android.com/reference/android/hardware/camera2/CameraDevice#regular-capture. ROZMIAR NAGRANIA odnosi się do maksymalnej rozdzielczości nagrywania obsługiwanej przez urządzenie z aparatem, zgodnie z ustaleniami CamcorderProfile. MAKSYMALNY rozmiar odnosi się do maksymalnej rozdzielczości wyjściowej aparatu dla danego formatu lub celu z 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.
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 są zwalniane. Wersja 1.1.0-alpha07 zawiera te zatwierdzenia.
Poprawki błędów
- Rozwiązaliśmy problem z telefonem Samsung Galaxy Note 5, który powodował zawieszanie się aparatu po zrobieniu zdjęć z lampą błyskową włączoną lub w trybie automatycznym w ciemnym otoczeniu (If6871).
- Rozwiązaliśmy problem z
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.
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 są zwalniane. Wersja 1.1.0-alpha06 zawiera te zmiany.
Zmiany w interfejsie API
- Promowanie eksperymentalnych interfejsów API kompensacji ekspozycji dla biblioteki camera-core (I08ee8)
- Dodano interfejs API isFocusMeteringSupported w klasie CameraInfo, który umożliwia aplikacjom sprawdzanie, czy dana wartość FocusMeteringAction jest obsługiwana przez bieżący aparat. (Ib45ae, b/188606490)
- Udostępniliśmy interfejs API getResolutionInfo, aby udostępniać informacje o rozdzielczości na potrzeby podglądu, przechwytywania obrazu i analizy obrazu. (I2b613, b/188600718)
- Przekształcono te eksperymentalne interfejsy API w oficjalne: CameraXConfig.Builder#setAvailableCamerasLimiter(), CameraXConfig.Builder#setMinimumLoggingLevel(), CameraXconfig.Builder#setSchedulerHandler(), CameraXConfig#getAvailableCamerasLimiter(), CameraXConfig#getMinimumLoggingLevel(), CameraXConfig#getCameraExecutor(), CameraXConfig#getSchedulerHandler(). (I2ade2)
- Udostępniliśmy interfejs CameraProvider, aby zapewnić dostęp do zestawu kamer. (I1a7b1)
- Promowanie eksperymentalnego interfejsu UseCaseGroup API dla bibliotek camera-core, camera-lifecycle i camera-video. Dodano elementy
ViewPort#getLayoutDirection,ViewPort.Builder#setLayoutDirectioniViewPort.Builder#setScaleTypedo dostosowywania obszaru wyświetlania. (I7cee8)
Wersja 1.1.0-alpha05
2 czerwca 2021 r.
androidx.camera:camera-camera2:1.1.0-alpha05, androidx.camera:camera-core:1.1.0-alpha05 i androidx.camera:camera-lifecycle:1.1.0-alpha05 są zwalniane. Wersja 1.1.0-alpha05 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Usunięto zajęcia
Camera2CameraFilter. Sugeruj wybór kamery za pomocą CameraFilter i w razie potrzeby pobieraj CameraCharacteristics lub inne informacje związane z Camera2 za pomocą Camera2CameraInfo. (Ib887c) ExperimentalCameraFilterInterfejsy API wyszły już z fazy eksperymentalnej i stały się oficjalnymi interfejsami API. Można ich używać bez adnotacji OptIn. (I4bc94)- Dodano interfejs API stanu aparatu, który jest udostępniany przez
CameraInfo#getCameraState(). (Ia86b4) - Dodano eksperymentalny interfejs API
CameraInfo#getCameraSelector(), który zwraca obiekt CameraSelector unikalny dla danego aparatu (I77f9f).
Poprawki błędów
- Rozwiązaliśmy problem, który powodował, że funkcja ListenableFuture zwracana w metodach setZoomRatio i setLinearZoom nie mogła zostać ukończona na niektórych urządzeniach z Androidem 11 (I716d7).
- Przyspieszenie przełączania kamery i zmniejszenie liczby błędów na urządzeniu (I34c99)
- Zastąpiono ExperimentalUseCaseGroupLifecycle elementem ExperimentalUseCaseGroup. (I3b2ef, b/159033688)
Wersja 1.1.0-alpha04
21 kwietnia 2021 r.
androidx.camera:camera-camera2:1.1.0-alpha04, androidx.camera:camera-core:1.1.0-alpha04 i androidx.camera:camera-lifecycle:1.1.0-alpha04 są zwalniane. Wersja 1.1.0-alpha04 zawiera te zmiany.
Poprawki błędów
- Naprawiliśmy wyciek pamięci spowodowany jednoczesnym dostępem wielu wątków do tej samej kolekcji. Wyciek pamięci może spowodować, że instancja podglądu zachowa aktywność lub fragment. (I7b4b8)
- Zastąpiono adnotację
@Experimentaladnotacją@RequiresOptInw przypadku eksperymentalnych interfejsów API. Do wywoływania eksperymentalnych interfejsów API używajandroidx.annotation.OptInzamiast wycofanegoandroidx.annotation.experimental.UseExperimental. (Iff226) - Naprawiono problem z robieniem wyblakłych zdjęć za pomocą ImageCapture z włączoną lub automatyczną lampą błyskową 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.
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 są zwalniane. Wersja 1.1.0-alpha03 zawiera te zmiany.
Poprawki błędów
- W przypadku włączonego trybu rozszerzeń wyjściowy format JPEG dla
ImageCapture#OnImageCapturedCallback. (I0d7b1) - Naprawiono błąd inicjowania na urządzeniach UMIDIGI BISON (I57d9e, b/180818665)
- Rozwiązanie problemu z rozciągniętym podglądem na urządzeniu Samsung A3 w obiekcie PreviewView. (Iacb30, b/180121821)
Wersja 1.1.0-alpha02
24 lutego 2021 r.
androidx.camera:camera-camera2:1.1.0-alpha02, androidx.camera:camera-core:1.1.0-alpha02 i androidx.camera:camera-lifecycle:1.1.0-alpha02 są zwalniane. Wersja 1.1.0-alpha02 zawiera te zmiany.
Zmiany w interfejsie API
- Dodaliśmy interfejs API
ProcessCameraProvider.getAvailableCameraInfos(), który umożliwia bezpośrednie pobieranie informacji o dostępnych kamerach. Mogą to być wszystkie kamery urządzenia lub kamery 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 aparatu, gdy jego aplikacja ma wyższy priorytet. (Iab069, b/175820568)
- Naprawiono błąd testu Robolectric, który występował, gdy w klasie CameraXConfig użyto metody setAvailableCamerasLimiter. (Ice307)
- Ta zmiana obsługuje wyjątek, gdy kolejka obrazów w ImageAnalysis jest pełna. Zamiast tego możesz zauważyć, że inne zastosowania są zamrożone lub działają wolno, np. zamrożona lub powolna podgląd. (Ic12da, b/175851631)
- Naprawiono ExtensionsErrorListener, aby zgłaszał błędy, gdy powiązane są tylko podgląd lub przechwytywanie obrazu. (I5ae39)
- Poprawiliśmy regresję wydajności ImageCapture, usuwając weryfikację lokalizacji zapisywania obrazu przed zrobieniem zdjęcia. Jeśli po wprowadzeniu tej zmiany miejsce docelowe zapisu będzie nieprawidłowe, uzyskanie odpowiedzi o niepowodzeniu zajmie więcej czasu, ponieważ po zrobieniu zdjęcia nastąpi próba zapisania obrazu. (I1fd4e, b/177061560)
- Poprawiono regresję wydajności ImageCapture w przypadku OutputFileOptions typu „File”. (I5164a, b/177061560)
- Zaktualizowaliśmy dokumentację, aby odradzać używanie funkcji
ProcessCameraProvider.configureInstance(...)w kodzie biblioteki. (Ib8a9f)
Wersja 1.1.0-alpha01
27 stycznia 2021 r.
androidx.camera:camera-camera2:1.1.0-alpha01, androidx.camera:camera-core:1.1.0-alpha01 i androidx.camera:camera-lifecycle:1.1.0-alpha01 są zwalniane. Wersja 1.1.0-alpha01 zawiera te zmiany.
Poprawki błędów
- Obejście problemu z sporadycznie uszkodzonymi danymi obrazu w plikach JPEG z tylnego aparatu SM-G930T. (I52001, b/159831206)
- Rozwiązaliśmy problem
IllegalArgumentException, który występował, gdy wszystkie rozmiary obsługiwane w podglądzie były mniejsze niż 640 x 480, a rozmiar wyświetlania był większy niż 640 x 480. (I2a63c, b/150506192) - Zasoby w bibliotekach, które nie mają jawnie 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.
androidx.camera:camera-camera2:1.0.2, androidx.camera:camera-core:1.0.2 i androidx.camera:camera-lifecycle:1.0.2 są zwalniane. Wersja 1.0.2 zawiera te zatwierdzenia.
Poprawki błędów
- Rozwiązanie problemu z rozmyciem zdjęć w trybie
MAXIMIZE_QUALITY. (I173a9, b/193823892) - Rozwiązaliśmy problem polegający na tym, że zdjęcia zrobione z lampą błyskową były ciemne na wielu urządzeniach. (I4e510)
Camera-Camera2, Camera-Core, & Camera-Lifecycle w wersji 1.0.1
Wersja 1.0.1
21 lipca 2021 r.
androidx.camera:camera-camera2:1.0.1, androidx.camera:camera-core:1.0.1 i androidx.camera:camera-lifecycle:1.0.1 są zwalniane. Wersja 1.0.1 zawiera te zatwierdzenia.
Poprawki błędów
Rozwiązaliśmy problem, który powodował, że
ListenableFuturezwracany wsetZoomRatioisetLinearZoomnie mógł zostać ukończony na niektórych urządzeniach z Androidem 11 (I716d7).Rozwiązaliśmy problem polegający na tym, że na niektórych urządzeniach kamera zawieszała się w stanie zamknięcia, co powodowało czarny podgląd. (I34c99)
Camera-Camera2, Camera-Core, & Camera-Lifecycle w wersji 1.0.0
Wersja 1.0.0
5 maja 2021 roku
androidx.camera:camera-camera2:1.0.0, androidx.camera:camera-core:1.0.0 i androidx.camera:camera-lifecycle:1.0.0 są zwalniane. Wersja 1.0.0 zawiera te zatwierdzenia.
Główne funkcje wersji 1.0.0
- CameraX obsługuje podgląd, przechwytywanie obrazu i analizę.
- CameraX zarządza cyklem życia aparatu w łatwym w obsłudze interfejsie 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.
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 są zwalniane. Wersja 1.0.0-rc05 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawiono problem z robieniem wyblakłych zdjęć za pomocą ImageCapture z włączoną lub automatyczną lampą błyskową na telefonie Samsung Galaxy S7. (I30001)
Wersja 1.0.0-rc04
24 marca 2021 r.
androidx.camera:camera-camera2:1.0.0-rc04, androidx.camera:camera-core:1.0.0-rc04 i androidx.camera:camera-lifecycle:1.0.0-rc04 są zwalniane. 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.
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 są zwalniane. Wersja 1.0.0-rc03 zawiera te zatwierdzenia.
Poprawki błędów
- Napraw błąd formatu w dokumencie
ProcessCameraProvider#getInstance - Naprawiono błąd testu Robolectric, który występował, gdy w klasie CameraXConfig używano metody setAvailableCamerasLimiter.
- Poprawiliśmy regresję wydajności ImageCapture, usuwając weryfikację lokalizacji zapisywania obrazu przed zrobieniem zdjęcia. Jeśli po wprowadzeniu tej zmiany miejsce docelowe zapisu będzie nieprawidłowe, otrzymanie odpowiedzi o niepowodzeniu zajmie więcej czasu, ponieważ po zrobieniu zdjęcia nastąpi próba zapisania obrazu.
- Ta zmiana obsługuje wyjątek, gdy kolejka obrazów w ImageAnalysis jest pełna. Zamiast awarii możesz zauważyć, że inne przypadki użycia są zamrożone lub działają wolno, np. zamrożona lub powolna podgląd.
- Obejście problemu z sporadycznie uszkodzonymi danymi obrazu w plikach JPEG z tylnego aparatu SM-G930T. (I52001, b/159831206)
- Ta zmiana obsługuje wyjątek, gdy kolejka obrazów w ImageAnalysis jest pełna. Zamiast tego możesz zauważyć, że inne zastosowania są zamrożone lub działają wolno, np. zamrożona lub powolna podgląd. (Ic12da, b/175851631)
- Naprawiono błąd testu Robolectric, który występował, gdy w klasie CameraXConfig użyto metody setAvailableCamerasLimiter. (Ice307)
- Poprawiliśmy regresję wydajności ImageCapture, usuwając weryfikację lokalizacji zapisywania obrazu przed zrobieniem zdjęcia. Jeśli po wprowadzeniu tej zmiany miejsce docelowe zapisu będzie nieprawidłowe, uzyskanie odpowiedzi o niepowodzeniu zajmie więcej czasu, ponieważ po zrobieniu zdjęcia nastąpi próba zapisania obrazu. (I1fd4e, b/177061560)
- Poprawiono regresję wydajności ImageCapture w przypadku OutputFileOptions typu „File”. (I5164a, b/177061560)
Wersja 1.0.0-rc02
27 stycznia 2021 r.
androidx.camera:camera-camera2:1.0.0-rc02, androidx.camera:camera-core:1.0.0-rc02 i androidx.camera:camera-lifecycle:1.0.0-rc02 są zwalniane. Wersja 1.0.0-rc02 zawiera te zatwierdzenia.
Poprawki błędów
- Rozwiązaliśmy problem z wyjątkiem IllegalArgumentException, który występował, gdy wszystkie obsługiwane rozmiary podglądu były mniejsze niż 640 x 480, a rozmiar wyświetlacza był większy niż 640 x 480. (b/150506192)
Ogranicz liczbę prób ponownego otwarcia aparatu. Podczas próby rozwiązania niektórych problemów z otwieraniem aparatu CameraX nie będzie już próbować ponownie otworzyć aparatu w nieskończoność, ale zatrzyma się po 10 sekundach.I435d2
Rozwiązaliśmy problem
IllegalArgumentException, który występował, gdy wszystkie rozmiary obsługiwane w podglądzie były mniejsze niż 640 x 480, a rozmiar wyświetlania był większy niż 640 x 480. (I2a63c, b/150506192)
Wersja 1.0.0-rc01
16 grudnia 2020 roku
androidx.camera:camera-camera2:1.0.0-rc01, androidx.camera:camera-core:1.0.0-rc01 i androidx.camera:camera-lifecycle:1.0.0-rc01 są zwalniane. Wersja 1.0.0-rc01 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Zmieniono CameraFilter i Camera2Filter, aby przyjmowały CameraInfo. (I6883d)
- Dodano eksperymentalną klasę Camera2CameraControl, która umożliwia dynamiczną współpracę z interfejsami API Camera2. (I45cf3)
- Zmiana nazwy Camera2CameraInfo#fromCameraInfo na #from. (Ia2bd6)
- Dodano 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
- Obejście problemu z sporadycznie uszkodzonymi danymi obrazu w plikach JPEG z tylnego aparatu SM-G930V. (I5aca5, b/159831206)
- Rozwiązaliśmy problem, który powodował, ż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 podglądu nie można było zatrzymać, wywołując funkcję
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, & Lifecycle w wersji 1.0.0-beta12
11 listopada 2020 roku
androidx.camera:camera-camera2:1.0.0-beta12, androidx.camera:camera-core:1.0.0-beta12 i androidx.camera:camera-lifecycle:1.0.0-beta12 są zwalniane. Wersja 1.0.0-beta12 zawiera te zatwierdzenia.
Poprawki błędów
- Wyłączono automatyczny błysk na urządzeniach Samsung A3, aby naprawić błąd powodujący awarię podczas robienia zdjęć z automatycznym błyskiem w trybie AE na urządzeniach Samsung A3. (Ia5fe3, b/157535165)
- Rozwiązaliśmy problem, który powodował rozciąganie podglądu na urządzeniach Nexus 4 z Androidem L (poziomy interfejsu API 21 i 22). (I4d407, b/158749159)
OnImageCapturedCallback#onCaptureSuccessimplementacja klasy bazowej nie zamyka już obrazu. Ma to zapobiegać nieoczekiwanym zachowaniom w przypadku programistów. Deweloperzy nie powinni polegać na funkcji super.onCaptureSuccess, aby zamknąć obraz. (Ifbf9c)- Wariant androidx adnotacji Experimental został wycofany, aby zapewnić zgodność z Kotlinem. Została ona zastąpiona adnotacją RequiresOptIn, a linter Java 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 NumberFormatException, który występował, gdy identyfikator kamery nie był liczbą całkowitą. (Ib2228)
- Zmniejszono opóźnienie inicjowania CameraX i wywołania bindToLifecycle (I61dc5).
- Tworzenie obiektów UseCase nie wymaga inicjowania biblioteki CameraX. Wszystkie konfiguracje specyficzne dla implementacji są ustawiane w obiekcie UseCase po jego dołączeniu do instancji Camera, która w przypadku publicznego interfejsu API jest
ProcessCameraProvider.bindToLifecycle(). (Ia5411) <UseCase>.getTargetRotation()zwróciSurface.ROTATION_0, jeśli zostanie wywołana przed dołączeniem do instancji Camera, chyba że w obiekcie 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 do 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 NumberFormatException, który występował, gdy identyfikator kamery nie był liczbą całkowitą. (Ib2228)
- Tworzenie obiektów UseCase nie wymaga inicjowania biblioteki CameraX. Wszystkie konfiguracje specyficzne dla implementacji są ustawiane w obiekcie UseCase po jego dołączeniu do instancji Camera, która w przypadku publicznego interfejsu API jest
ProcessCameraProvider.bindToLifecycle(). (Ia5411) <UseCase>.getTargetRotation()zwróciSurface.ROTATION_0, jeśli zostanie wywołana przed dołączeniem do instancji Camera, chyba że w obiekcie 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 podczas przechwytywania obrazu (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, klasa Camera2CameraInfo przyjmuje podczas tworzenia instancję CameraInfo, aby pobierać z niej informacje związane z interfejsem Camera2. (I5b844)
Poprawki błędów
- Rozwiązaliśmy problem z formatem obrazu na tabletach. Jeśli docelowe proporcje to
AspectRatio.RATIO_16_9, należy wybrać rozmiar 16:9. (Ib7fcf, b/151969438) - Zgłoś wyjątek
InitializationException, aby aplikacja mogła prawidłowo obsługiwać błąd AssertionError, który wystąpił podczas tworzenia obiektu CameraCharacteristics. (I89c8c, b/160524721) - Dodano eksperymentalne interfejsy do kompensacji ekspozycji (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
- usunięto błąd, który powodował, że w przypadku UseCaseGroup widoczny obszar był oznaczany jako niepusty; Deweloperzy powinni mieć możliwość utworzenia obszaru wyświetlania bez jego ustawiania. (Ie3d2e)
- Dodano eksperymentalne interfejsy dla
ExposureCompensation(If96c7) - Zezwalaj na dowolną rotację celu w przypadku podglądu. 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 lampa błyskowa nie wyłączała się. Dzieje się tak, gdy tryb lampy błyskowej jest ustawiony na
FLASH_MODE_ON, aby zrobić zdjęcie, a po włączeniu lampy błyskowej zmienia się naFLASH_MODE_OFF. Objaw jest podobny do włączonego trybu latarki. (Ib4451, b/162568128) - Wymusza użycie TextureView przez Forced PreviewView, jeśli efekt rozszerzenia jest włączony, a implementacja biblioteki dostawcy wymaga specjalnego przetwarzania powierzchni wyjściowej. (I0c3cc)
- Naprawiono wyciek aktywności lub fragmentu, gdy kontekst aktywności lub fragmentu jest przekazywany do
ProcessCameraProvider.getInstance(Context).
Znane problemy
- Gdy ustawiona jest wartość ViewPort, prostokąt przycinania 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
- Zoptymalizowano funkcję bindToLifecycle, aby działała szybko w wątku głównym. (I1d57e)
- DisplayOrientedMeteringPointFactory przyjmuje instancję CameraInfo zamiast CameraSelector, dzięki czemu istnieje bezpośrednie mapowanie na to, dla którego aparatu fabryka będzie generować punkty. Wszystkie klasy, które korzystają z DisplayOrientedMeteringPointFactory, przyjmują też instancję CameraInfo zamiast CameraSelector. (I400c1)
- Naprawiono problem z grupowaniem rozmiarów automatycznej rozdzielczości, który powodował, że rozmiar 16:9 mod16 (864x480) był wybierany, gdy ustawienie rozdzielczości docelowej wynosiło 2016x1080 i obsługiwany był inny rozmiar 16:9 1920x1080. (I53167, b/159363774)
- Rozwiązanie problemu z kontrolą aparatu, który nie działał z powodu 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
DisplayOrientedMeteringPointFactoryprzyjmujeCameraInfozamiastCameraSelector, więc istnieje bezpośrednie mapowanie na to, dla którego aparatu fabryka będzie generować punkty. Wszystkie klasy, które używająDisplayOrientedMeteringPointFactory, przyjmują też instancjęCameraInfozamiastCameraSelector. (I400c1)
Poprawki błędów
- W przypadku przechwytywania obrazu zastąp flagę odwrócenia w poziomie w metadanych na podstawie kierunku kamery. (I28499)
- Inicjowanie nie powinno już powodować awarii w przypadku używania obiektu 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 z rozciąganiem podglądu na starszych urządzeniach z Androidem 5.0. (I0c03a)
- Wykluczyliśmy niektóre obsługiwane rozmiary JPEG, które na niektórych urządzeniach powodowały problem WYSIWYG. (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 style dopasowania
FIT_CENTER,FIT_STARTiFIT_ENDze stylemFIT.FIToznacza, że zwrócony prostokąt wycię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 z rozciąganiem podglądu na starszych urządzeniach 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 kamery i właściwości kamery. (I28f61)
Poprawki błędów
- Rozwiązaliśmy problem, który powodował, że funkcja startFocusAndMetering nie mogła ustawić ostrości na urządzeniu Samsung Galaxy S7. (If3be7, b/159039233)
- Naprawiono problem z niezamykaniem się kamery po zamknięciu aplikacji. (I7a7b3)
- Naprawiono problem z powtarzającym się przełączaniem kamery, który powodował przerwy w podglądzie podczas korzystania z implementacji SurfaceView w PreviewView (I920ce).
CameraControl#startFocusAndMeteringzakończy się niepowodzeniem, jeśli żaden z określonych punktów pomiarowych nie może 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 kamery i właściwości kamery. (I28f61)
Poprawki błędów
- Bibliotekę CameraX można teraz skonfigurować za pomocą parametru
ProcessCameraProvider#configureInstance()przed wywołaniem funkcjiProcessCameraProvider#getInstance(). Umożliwia to dostosowanieCameraXConfigbez konieczności implementowaniaCameraXConfig.Providerw klasie Application aplikacji. (Ia1a8d) CameraControl#startFocusAndMeteringzakończy się niepowodzeniem, jeśli żaden z określonych punktów pomiarowych nie może wygenerować prawidłowych prostokątów pomiarowych. (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
- Naprawiono błąd powodujący awarię aplikacji podczas uruchamiania, gdy inicjowano CameraX w trybie Nie przeszkadzać.
InitializationExceptionzawieraCameraUnavailableException, który zostanie ustawiony naListenableFuturewyniku inicjowania, zamiast powodować awarię aplikacji. (I9909a, b/149413835) - Naprawiono błąd powodujący awarię podczas wywoływania
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ę aplikacji podczas uruchamiania, gdy inicjowano CameraX w trybie Nie przeszkadzać.
InitializationExceptionzawierającyCameraUnavailableExceptionzostanie ustawiony naListenableFuturewyniku inicjowania zamiast powodować awarię aplikacji. (I9909a, b/149413835)
Poprawki błędów
- Zaktualizowano dokumentację Javadoc dla interfejsów
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
- Umożliwia aplikacjom ustawianie dowolnych parametrów żądania przechwytywania camera2 za pomocą
Camera2Interopbez powodowania awarii. Pamiętaj, że w wyniku zastąpienia parametrów mogą wystąpić problemy. Podczas zastępowania parametrów za pomocą Camera2Interop nie gwarantujemy stabilności i prawidłowego działania. (Ibe5a1, b/149103700) - Automatyczna inicjalizacja jest naprawiona w przypadku korzystania z aplikacji na urządzeniu, które używa pseudolokalizacji. (I3bef3, b/154767663)
- Przekształcono dziennik błędów związany z przypadkiem użycia odłączonego urządzenia w dziennik debugowania w klasie Camera2CameraImpl. (I1a565, b/154422490)
- Rozwiązaliśmy problem polegający na tym, że czasami zrobione zdjęcie było zbyt ciemne, mimo że lampa błyskowa została włączona. (I5d9fa, b/149729613)
- Usunięto błąd, który powodował, że bufor w
ImageProxyzImageCapturenie był przewijany (I0c455, b/153249512) - Rozwiązaliśmy problemy, które występowały tylko w przypadku powiązania ImageCapture: (1) nie można było robić zdjęć w jakości MAX_QUALITY; (2) jakość obrazu była niska, ponieważ nie działała automatyczna ekspozycja. (I17782, b/145326998)
- Poprawiona niezawodność ponownego otwierania aparatu, gdy CameraX jest odłączany 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 kamery 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 w usłudze
ImageAnalysis, który powodował awarię, gdy po zamknięciuImageReaderProxyuzyskiwano dostęp doImageProxy. 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 z funkcjiSurfaceRequest. (If18f0, b/154652477) - Automatyczna inicjalizacja jest naprawiona w przypadku korzystania z aplikacji na urządzeniu, które używa pseudolokalizacji. (I3bef3, b/154767663)
- Rozwiązaliśmy problem polegający na tym, że czasami zrobione zdjęcie było zbyt ciemne, mimo że lampa błyskowa została włączona. (I5d9fa, b/149729613)
- Rozwiązaliśmy problem z
ImageAnalysis, który polegał na tym, że wielokrotne wywoływanie funkcji setAnalyzer/clearAnalyzer powodowało, że analizator nie otrzymywał obrazów do analizy. (I6169f, b/151605317, b/153514544) - Usunięto 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ń z
CameraManagernie zawsze była wybierana do użycia. (I4c624, b/153418028) - Rozwiązaliśmy problem z przerywanym awariami spowodowanymi przez ustawienie
Preview.SurfaceProvider, które nie 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 umożliwiające wprowadzenie
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
- Rozwiązaliśmy problem z wersji beta03, w której wywołanie funkcji
bindToLifecycle()z zerową liczbąUseCasepowodowało zgłoszenie wyjątku. Uniemożliwiało to pobranieCamerabez powiązania zUseCase.
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
- Poprawiliśmy
ImageInfo.getRotationDegrees()zImageProxywygenerowanego przezImageCapture, aby odpowiadał wartości obrotu orientacji EXIF. (Id4281, b/150802561) - Aby używać domyślnej implementacji CameraX/Camera2, nie musisz już jawnie określać kolejności zależności CameraX w
build.gradle. W przypadku, 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
IllegalArgumentExceptionwystępujący na urządzeniach, których rozmiar wyświetlacza jest mniejszy niż 640 x 480. (Ife3f2, b/150506192) - Poprawiono
bindToLifecycle, aby modyfikował UseCase tylko wtedy, gdy wiązanie się powiodło. Wcześniej podczas wywoływania funkcjibindToLifecyclew celu obliczenia rozdzielczości aktualizowano UseCase. Nie musi 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
- Poprawiliśmy
ImageInfo.getRotationDegrees()zImageProxywygenerowanego przezImageCapture, aby odpowiadał wartości obrotu orientacji EXIF. (Id4281, b/150802561) - Poprawiono
bindToLifecycle, aby modyfikował UseCase tylko wtedy, gdy wiązanie się powiodło. Wcześniej podczas wywoływania funkcjibindToLifecyclew celu obliczenia rozdzielczości aktualizowano UseCase. Nie musi już aktualizować UseCase, aby wykonywać obliczenia (I78d9e). - Rozwiązaliśmy problem, który powodował, że sesja przechwytywania
Previewprzypadku użycia nie była aktualizowana, gdy powierzchnia podglądu zmieniała się po wywołaniu funkcjiPreview.setSurfaceProvider()więcej niż raz.
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 polegający na tym, że po zmianie docelowej wartości obrotu za pomocą przycisku
ImageCapture.setTargetRotation()proporcje zapisanego obrazu były nieprawidłowe. (I474ea, b/148763432) - Naprawiono 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 znak
ListenableFuturew dniuSurfaceRequest.provideSurface()znakamiExecutoriCallback. Upraszcza to interfejs API, ponieważ nie wymaga już obsługi wyjątków w przypadku parametruprovideSurface(), i zapewnia, że wywołania zwrotnegoprovideSurface()nie można anulować. Ma to zapobiegać awariom na starszych urządzeniach spowodowanym przedwczesnym zwalnianiem powierzchni. ObiektSurfaceRequest.Resultjest teraz używany do śledzenia sposobu, w jakiSurfaceRequestkorzysta z podanegoSurface. (I7854b) - Zmieniono nazwę
SurfaceRequest.setSurface(Surface)naSurfaceRequest.provideSurface(Surface)iSurfaceRequest.setWillNotComplete()naSurfaceRequest.willNotProvideSurface(). (I224fe)
Poprawki błędów
- Rozwiązaliśmy problem polegający na tym, że po zmianie docelowej wartości obrotu za pomocą przycisku
ImageCapture.setTargetRotation()proporcje zapisanego obrazu były nieprawidłowe. (I474ea, b/148763432) - Naprawiono 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 zmiany.
Poprawki błędów
- Większa stabilność na urządzeniach
INFO_SUPPORTED_HARDWARE_LEVEL_LEGACYdzięki zapewnieniu, żeSurfacesą przechowywane tylko przez czas używania aplikacji Camera2. (I9dac2) - Rozwiązaliśmy problem z niedoświetlonym podglądem na urządzeniach LEGACY, odpowiednio dostosowując parametr
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 zmiany.
Zmiany w interfejsie API
- Zaktualizowaliśmy
ImageCapture, aby umożliwić zapisywanie obrazów w usługachUriiOutputStream. Połącz przeciążone metodytakePicturew jedną. Zaktualizowano aplikację testową, aby używaćUrijako przykładu kanonicznego. (Ia3bec) - Nazwa
Preview.PreviewSurfaceProviderzostała zmieniona naPreview.SurfaceProvider.SurfaceProvidernie wymagają już od programistów tworzenia własnychListenableFuture, a udostępnianieSurfaceodbywa się teraz za pomocą nowego obiektuSurfaceRequest. MetodaPreview.getPreviewSurfaceProvider()została usunięta ze względu na możliwość nadużycia, gdyPreviewjest połączona z innymi klasami, takimi jakPreviewView. (I20105) - Dodano użytkowników
getTargetRotation()igetTargetName()do listyPreview. (Iceee7) - Dodano użytkowników
getTargetRotation(),getBackpressureStrategy()igetImageQueueDepth()w:ImageAnalysis. (I9d6d9) - Dodano
getTargetRotation()igetCaptureMode()wImageCapture()(I5bc17) - Argumenty, które były wcześniej przekazywane w
ImageCapture.OnImageSavedCallback.onError()iImageCapture.OnImageCapturedCallback.onError(), zostały zastąpione jednym argumentemImageCaptureException, który nadal zawiera wszystkie wcześniej przekazywane informacje. - Argument pliku przekazywany wcześniej w
ImageCapture.OnImageSavedCallback.onImageSaved()został usunięty. (I750d2) - Zajęcia
PreviewiImageCapturesą teraz oznaczone jako ostateczne. (I2500b) - Zaktualizowano interfejs API, a metody
getZoomRatio(),getMaxZoomRatio(),getMinZoomRatio()igetLinearZoom()interfejsuCameraInfozostały scalone z interfejsemgetZoomState(), 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 w bibliotece. Usunięto konstruktor dlaCameraXConfig.Builder. (I96912) - Usunięto wymaganie, aby aplikacja rozszerzała klasę
Applicationw celu zainicjowania CameraX. CameraX będzie teraz inicjowany z domyślną konfiguracją Camera2, o ile artefaktcamera-camera2jest uwzględniony wbuild.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ę współdziałania camera2 do wyodrębniania identyfikatora kamery Camera2. Identyfikator kamery możesz wyodrębnić z
CameraInfoza pomocąCamera2CameraInfo.extractCameraId(). Poniższy przykładowy kod pokazuje, jak to zrobić:Camera camera = provider.bindToLifecycle(...); String cameraId = Camera2CameraInfo.extractCameraId(camera.getCameraInfo());Klasa
Camera2CameraInfowymaga parametruExperimentalCamera2InteropmarkerClass.
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
- Parametr
SurfaceOrientedMeteringPointFactoryuseCaseForSurfacezostał zmieniony nauseCaseForAspectRatio, a dokumentacja referencyjna została rozszerzona. - Metody
FocusMeteringAction.Builder.from()są zastępowane przez konstruktoryFocusMeteringAction.Builder(). - Usunięto:
DisplayOrientedMeteringPointFactory(android.content.Context, androidx.camera.core.CameraSelector, float, float)Aplikacje powinny używać konstruktora, który przyjmuje parametrDisplay, i przekazywać bieżący wyświetlacz. - Ulepszenia dokumentacji Javadoc dotyczące interfejsów API ostrości i pomiaru w zakresie flag
MeteringModei 3A oraz użycia parametruDisplay. - Rozszerzyliśmy dokumentację dotyczącą
setZoomRatioisetLinearZoom.
Poprawki błędów
- Rozwiązaliśmy problemy, które powodowały niepowodzenie sprawdzania „Warunku wstępnego” po zamknięciu i ponownym otwarciu kamer.
- Rozwiązaliśmy problem
ConcurrentModificationException, który mógł występować podczas korzystania z interfejsów API latarki i zoomu. - Rozwiązaliśmy problem polegający na tym, że w przypadku dostępności rozmiaru o wymiarach mod16 wybierane były rozdzielczości bliższe żądanej rozdzielczości.
- 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 polegający na tym, że w przypadku urządzenia, które nie obsługuje określonych rozmiarów, żądano konkretnej rozdzielczości docelowej z proporcjami przycięcia. Teraz, gdy będzie dostępny, zostanie wybrany nieprzycięty rozmiar o rozdzielczości wystarczającej do ograniczenia pierwotnego żądania.
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 zmiany.
Znane problemy
- Nie wszystkie opcje żądania przechwytywania Camera2 działają podczas korzystania z interfejsu Camera2. Jeśli żądana opcja nie jest obsługiwana, sesja nie zostanie rozpoczęta i może wystąpić błąd podobny do tego:
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ł wyświetlanie czarnego ekranu podglądu po obróceniu lub przełączeniu kamery na poziomach API 21 i 22.
Zmiany w interfejsie API
- Eksperymentalna: dodano ścieżkę współdziałania camera2 do wyodrębniania identyfikatora kamery.
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 zmiany.
Znane problemy
- Aplikacje korzystające z
PreviewViewlubCameraViewmogą mieć podgląd o nieprawidłowych proporcjach. Dzieje się tak po wstrzymaniu lub wznowieniu działania na niektórych urządzeniach z pełną wersją Androida, np. Pixel 2.
Poprawki błędów
- Zaktualizowaliśmy dokumentację dotyczącą
FocusMeteringActioniCameraControl. - Wdrożono
TorchControlw przypadkuenableTorch()igetTorchState().
Zmiany w interfejsie API
- Ukryto IntDefs i przeniesiono stałe IntDef poza definicję IntDef.
- Przeniesiono
rotationDegreesz klasyOnImageCaptureCallbackdoImageInfo. - Przeniesiono
rotationDegreesz klasyAnalyzerdoImageInfo.
Camera-Camera2 w wersji 1.0.0-alpha07
4 grudnia 2019
Publikacja androidx.camera:camera-camera2:1.0.0-alpha07 Wersja 1.0.0-alpha07 biblioteki camera-camera2 zawiera te zmiany
Camera2Configjest teraz dostępny do inicjowania i konfigurowania implementacji opartej na Camera2 na potrzeby CameraX. Więcej informacji o tym, jak używać tej funkcji podczas inicjowania, znajdziesz w sekcji dotyczącej podstawowych funkcji aparatu w informacjach o wersji.- Funkcja interoperacyjności camera2 jest teraz oznaczona jako eksperymentalna i przeniesiona do osobnego pakietu
androidx.camera.camera2.interop.
Camera-Core w wersji 1.0.0-alpha07
4 grudnia 2019
Publikacja androidx.camera:camera-core:1.0.0-alpha07 Wersja 1.0.0-alpha07 biblioteki camera-core zawiera te zatwierdzenia
Pamiętaj, że w tej wersji alfa wprowadziliśmy kilka istotnych zmian, przygotowując się do wersji beta. Zachęcamy do zapoznania się ze zmianami i przesłania opinii na grupie dyskusyjnej CameraX Google. 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 zostało zmienione. Aplikacje powinny implementować
CameraXConfig.Provideri używać domyślnegoCamera2Configudostępnianego przezandroidx.camera.camera2. Typowe użycie: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. Wartości
bindToLifecycle(),unbind(),unbindAll(),isBound()ihasCamera(), które były wcześniej dostępne w wywołaniu klasy CameraX, są teraz dostępne wProcessCameraProvider.Instancja
ProcessCameraProviderna proces jest uzyskiwana asynchronicznie za pomocą metody statycznejProcessCameraProvider.getInstance(), która zwraca przyszłość, której można słuchać, i która po zakończeniu działania udostępniaProcessCameraProvider. Na ilustracji poniżej przedstawiono typowe zastosowanie wonCreate(). WywołaniagetInstance()możesz umieszczać później w cyklu życia aktywności, aby odłożyć opóźnienie inicjowania na później (np. gdy działanie użytkownika otworzy interfejs aparatu).import androidx.camera.lifecycle.ProcessCameraProvider import com.google.common.util.concurrent.ListenableFuture class MainActivity : AppCompatActivity() { private lateinit var cameraProviderFuture : ListenableFuture<ProcessCameraProvider> override fun onCreate(savedInstanceState: Bundle?) { cameraProviderFuture = ProcessCameraProvider.getInstance(this); }Do obiektu
ListenableFuturezwróconego przezgetInstance()można dodać detektor. Dzięki temu dostawcę kamery można pobrać zFuturebez blokowaniaFuture.get().cameraProviderFuture.addListener(Runnable { val cameraProvider = cameraProviderFuture.get() cameraProvider.bindToLifecycle(...) }, ContextCompat.getMainExecutor(this))Wybór kamery odbywa się teraz za pomocą selektora kamery, 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 kamery i przypadki użycia, które są następnie powiązane z danym właścicielem cyklu życia i działają w przypadku wybranej kamery.cameraProvider.bindToLifecycle(this as LifecycleOwner, cameraSelector, preview, imageAnalysis)Klasy „Config” przypadków użycia zostały usunięte. Zamiast tego możesz tworzyć przypadki użycia bezpośrednio, ustawiając opcje w każdym narzędziu do ich tworzenia. Na przykład:
preview = Preview.Builder().setTargetAspectRatio(AspectRatio.RATIO_16_9).build()Przypadek użycia podglądu został zaktualizowany, aby akceptować powierzchnię utworzoną i zarządzaną przez aplikację, co zapewnia zgodność ze sprawdzonymi metodami dotyczącymi Androida. Zdecydowanie zalecamy użycie klasy widoku
PreviewViewdostępnej w pakiecie camera-view.preview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)Więcej informacji o dołączaniu powierzchni zarządzanej przez aplikację znajdziesz w dokumentacji. W takich przypadkach aplikacja zarządza cyklem życia powierzchni.
Ważne: implementacja metody
ImageAnalysisAnalyzer musi wywoływaćimage.close()w przypadku otrzymanych obrazów po zakończeniu ich używania. W przeciwnym razie nowe obrazy mogą nie być odbierane lub kamera może się zawieszać w zależności od ustawienia ciśnienia wstecznego. Szczegóły znajdziesz w dokumentacji.ImageAnalysis ImageReaderModezostała zmieniona na strategię wywierania presjiintdef.ImageProxy.getImage()jest oznaczona jako eksperymentalna. Aplikacje powinny oznaczać użycie, np. za pomocą@androidx.camera.core.ExperimentalGetImageWymóg adnotacji
UIThreadw przypadkuAnalyzerzostał usunięty.Funkcja
ImageAnalysis.clearAnalyzer()została dodana w celu usunięcia analizatora.Słuchacze z więcej niż 1 metodą zostali przemianowani na Wywołanie zwrotne:
ImageCapture.OnImageCapturedListenerto terazImageCapture.OnImageCapturedCallbackImageCapture.OnImageSavedListenerto terazImageCapture.OnImageSavedCallbackVideoCapture.OnVideoSavedListenerto terazVideoCapture.OnVideoSavedCallback
Wyliczenia 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 jest dostępny sprzęt do obsługi lampy błyskowej lub latarki.CameraInfo.isFlashAvailable()został(a) usunięty(a). Latarka zastępuje funkcję lampy błyskowej. Więcej szczegółów znajdziesz w dokumentacji referencyjnej.Pola
ImageCapture.Metadatasą zastępowane przez akcesory get/set/is.startFocusMeteringicancelFocusMeteringzwracają terazListenableFutures, co oznacza asynchroniczne działanie wywołania.MeteringPointspełnią teraz funkcję uchwytów do działań związanych z pomiarami i są produkowane w fabrykach. Aplikacje powinny korzystać z istniejących fabryk, a nie z fabryk niestandardowych.
Rozwiązane problemy
- Rozwiązaliśmy problem z robieniem zdjęć po wznowieniu (gdy poprzednie wstrzymanie spowodowało, że zdjęcia oczekiwały na ukończenie).
- Znany problem: funkcja
CameraControl.enableTorch()działa, ale zwracana wartośćListenableFuture<Void>zawsze wskazuje nacomplete(success)przyszłość, nawet jeśli nie ma lampy błyskowej. W przyszłych wersjach zostanie to poprawione i będzie działać w ten sposób: jeśli nie ma lampy błyskowej, funkcjaenableTorch(true)natychmiast zwraca błąd (nie wysyła żądania doCaptureSession), a funkcjaTorchStatepozostaje wyłączona. - Znany problem: przyciski
startFocusAndMeteringicancelFocusAndMeteringrozpoczynają i anulują pomiar ostrości, ale natychmiast zwracają wartośćcompleted (success), która nie odzwierciedla udokumentowanego zachowania. Wartość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: opracowujemy fabrykę punktów pomiarowych do użytku ze zdarzeniami dotykowymi
PreviewView. Obecnie aplikacje łączące się z niestandardowymi powierzchniami zarządzanymi mogą korzystać z istniejących fabryk punktów pomiarowych. W przypadkuPreviewViewnie jest dostępna żadna inna funkcja dotykowego ustawiania ostrości.
Camera-Camera2 i Camera-Core w wersji 1.0.0-alpha06
9 października 2019 r.
Publikacje androidx.camera:camera-camera2:1.0.0-alpha06 i androidx.camera:camera-core:1.0.0-alpha06 Oto zatwierdzenia uwzględnione w camera-camera2:1.0.0-alpha06 i zatwierdzenia uwzględnione w camera-core:1.0.0-alpha06.
Nowe funkcje
Zmiany w ustawieniach proporcji obrazu:
- Dodano element
setTargetAspectRatioMode(), który akceptuje argument typu wyliczeniowego. Ustawia to tryb proporcji z opcjamiRATIO_4_3lubRATIO_16_9zamiast dowolnych proporcji. Dokładniej odzwierciedla to fakt, że z kamery są dostępne tylko określone proporcje obrazu, a nie dowolne.- Obecnie dostępne są tylko formaty 16:9 i 4:3. W przypadku formatu 1:1 jest on dostępny tylko na niektórych urządzeniach i tylko w ograniczonych rozdzielczościach. Aplikacje, które projektują interfejs lub przetwarzanie w formacie 1:1, powinny korzystać z bardziej elastycznych opcji 16:9 lub 4:3 i przyciąć wyświetlany obraz lub przetworzyć subregion.
- Te formaty obrazu są zorientowane tak, aby wykorzystywać maksymalną powierzchnię sensora.
getTargetAspectRatio()został dodany do interfejsów API konfiguracji przypadków użycia, zwracając współczynnik proporcji, do którego jest kierowane wyjście przypadku użycia.- Metoda
setTargetAspectRatio(Rational aspectRatio)została zmieniona w przypadku ImageCapture nasetTargetAspectRatioCustom(Rational aspectRatio). Gdy ta opcja jest ustawiona, dane wyjściowe ImageCapture są odpowiednio przycinane.
Interfejsy API wykonawcy
- Te funkcje akceptują parametr wykonawcy, który umożliwia aplikacji określenie, na którym wykonawcy ma być uruchomiona funkcja.
Preview.setOnPreviewOutputUpdateListener()API. Jeśli wykonawca nie jest dostępny dla danej funkcji, jest ona wykonywana w głównym wątku.Preview.setOnPreviewOutputUpdateListenerFocusMeteringAction.Builder.setAutoFocusCallbackImageAnalysis.setAnalyzerImageCapture.takePictureCameraView.takePictureCameraView.startRecordingVideoCapture.startRecording
Dodano CameraInfo z interfejsami API sprawdzającymi dostępność lampy błyskowej i obrót czujnika
Dodano metody
CameraInfoigetCameraInfo, które umożliwiają aplikacjom sprawdzenie, czy obiektyw skierowany na CameraInfo jest dostępny i czy na tym aparacie jest dostępna lampa błyskowa. Na przykład:try { CameraInfo cameraInfo = CameraX.getCameraInfo(currentCameraLensFacing); LiveData<Boolean> isFlashAvailable = cameraInfo.isFlashAvailable(); flashToggle.setVisibility(isFlashAvailable.getValue() ? View.VISIBLE : View.INVISIBLE); } catch (CameraInfoUnavailableException e) { Log.w(TAG, "Cannot get flash available information", e); flashToggle.setVisibility(View.VISIBLE); }Dodano użytkownika
CameraInfo.getSensorRotationDegrees()Określa 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
- Proporcje obrazu: w każdym przypadku użycia aplikacje powinny wywoływać tylko jedną z funkcji
setTargetResolution()lubsetTargetAspectRatio(). Wywołanie obu tych funkcji w tym samym konstruktorze zwraca błąd.- Zwykle zalecamy używanie
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 przechwytywanie obrazu zapewnia zdjęcia o wysokiej rozdzielczości. Więcej informacji znajdziesz w tabeli automatycznych rozdzielczości. - Użyj
setTargetResolution()w bardziej szczegółowych przypadkach, np. gdy wymagane są minimalne (aby zaoszczędzić moc obliczeniową) lub maksymalne rozdzielczości (do przetwarzania szczegółów).
- Zwykle zalecamy używanie
- Interfejs Executor API: usunęliśmy wywołanie
setCallbackHandler()z interfejsów API konfiguracji przypadków użycia. Zamiast tego aplikacje mogą ustawić wykonawcę jako parametr w różnych innych interfejsach API, które ustawiają wywołanie zwrotne. - Zaktualizowane adnotacje o wartości null dla różnych funkcji.
- Rozwiązaliśmy problem, który powodował wyświetlanie komunikatu
java.lang.IllegalStateException at Camera$StateCallback.onErrorpodczas otwierania aparatu. - Naprawiono problem z wybieraniem zbyt małych rozdzielczości (poniżej 640 x 480) w sytuacji, gdy aplikacja żądała większych lub domyślnych rozdzielczości, co powodowało wyświetlanie blokowego lub rozmytego obrazu podglądu. Aplikacje, które wymagają mniejszych rozdzielczości, mogą o nie wyraźnie poprosić.
- Rozwiązaliśmy problem, który powodował, że po powrocie z intencji, która uruchomiła inną aplikację aparatu, aparat wyświetlał czarny ekran (nie udało się go uruchomić).
- Naprawiliśmy błąd, który powodował wyświetlanie tego komunikatu, gdy aplikacje były wielokrotnie uruchamiane lub zatrzymywane:
java.lang.IllegalArgumentException: CaptureRequest contains unconfigured Input/Output Surface! - Rozwiązaliśmy ten błąd, który występuje podczas wyłączania ImageAnalysis:
java.lang.IllegalStateException: maxImages (4) has already been acquired, call #close before acquiring more. - Dodano dodatkowe testy przepływu odłączania kamery.
- Zwiększono odporność systemu testowego podczas przeprowadzania kolejnych testów kamery.
Camera-Camera2 i Camera-Core w wersji 1.0.0-alpha05
5 września 2019 r.
Publikacje androidx.camera:camera-camera2:1.0.0-alpha05 i androidx.camera:camera-core:1.0.0-alpha05 Oto zmiany w bibliotece camera-camera2:1.0.0-alpha05 i zmiany w bibliotece camera-core:1.0.0-alpha05.
Zmiana w interfejsie API: zmieniliśmy nazwy zmiennych błędów przypadków użycia:
ImageCapture.UseCaseErrorzmienia nazwę naImageCapture.ImageCaptureErrorVideoCapture.UseCaseErrorzmienia nazwę naVideoCapture.VideoCaptureError
Dodano interfejs
CameraControlAPI z interfejsami API Tap-to-FocusDodano interfejs API do pobierania
CameraControlz CameraX dla aparatu wybranego na podstawie kierunku obiektywu:CameraX.getCameraControl(LensFacing lensFacing)Dodano użytkowników
MeteringPointFactory,MeteringPoint,MeteringModeiFocusMeteringAction, aby uruchomić funkcję dotknij, aby ustawić ostrość:MeteringPointFactory factory = new SensorOrientedMeteringPointFactory(width, height); MeteringPoint point = factory.createPoint(x, y); FocusMeteringAction action = FocusMeteringAction.Builder.from(point, MeteringMode.AF_ONLY) .addPoint(point2, MeteringMode.AE_ONLY) // could have many .setAutoFocusCallback(new OnAutoFocusListener(){ public void onFocusCompleted(boolean isSuccess) { } }) // auto calling cancelFocusAndMetering in 5 sec. .setAutoCancelDuration(5, TimeUnit.Second) .build();Dodano interfejs API dla
CameraControldo uruchamiania i anulowania pomiaru ostrości:getCameraControl(lensFacing).startFocusAndMetering(action);getCameraControl(lensFacing).cancelFocusAndMetering();Dodano interfejsy API 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);
Wymusza wywoływanie tych metod w głównym wątku (UI) i zgłasza wyjątek
IllegalStateException, gdy nie są w nim wywoływane. Kolejne wersje będą umożliwiać używanie w innych wątkach i zapewniać serializację.CameraX.bindToLifecycle()CameraX.unbind()CameraX.unbindAll()ImageAnalysis.setAnalyzer()ImageAnalysis.getAnalyzer()ImageAnalysis.removeAnalyzer()Preview.removePreviewOutputListener()Preview.getOnPreviewOutputUpdateListener()Preview.setOnPreviewOutputUpdateListener()
Różne ustawienia konfiguracji akceptują teraz parametry o wartości null, a odpowiednie metody pobierania mogą zwracać wartość null.
Rozwiązaliśmy problem z testowaniem na emulatorach, które nie obsługują ustawień AF/AE/AWB.
Rozwiązaliśmy problem z awarią podczas obracania obrazu w trakcie analizy.
Naprawiliśmy błąd, który powodował, że podgląd był czarny na początku (brak danych z aparatu), po obróceniu lub przełączeniu się między przednim a tylnym aparatem.
Usunięto testowanie wielu równoczesnych przypadków użycia analizy obrazu. Aby zapewnić zgodność, aplikacje powinny dołączać tylko jeden przypadek użycia analizy obrazu.
Dodaliśmy wstępne testy robolectric dla fałszywej kamery w pakiecie testów kamery (w trakcie prac).
Usunięto test Camera2Inititalizer, ponieważ jego zakres był niejasny lub wprowadzający w błąd.
Camera-Camera2 i Camera-Core w wersji 1.0.0-alpha04
7 sierpnia 2019 r.
Publikacje 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 obniża rozdzielczość lub proporcje obrazu w zależności od możliwości urządzenia, aby rozpocząć sesję przechwytywania jako pierwszy cel, więc dokładne żądania mogą nie zostać spełnione. Może to być spowodowane:
- Urządzenia, które nie obsługują żądanej rozdzielczości
- Problemy ze zgodnością, np. na urządzeniach LEGACY, na których do prawidłowego działania trzeba używać określonych rozdzielczości.
- Na niektórych urządzeniach niektóre formaty są dostępne tylko w określonych proporcjach obrazu.
- Preferowanie „najbliższego mod16” w przypadku kodowania JPEG lub wideo. Zobacz
CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP
Chociaż CameraX tworzy sesję i nią zarządza, w kodzie zawsze sprawdzaj rozmiary zwracanych obrazów w danych wyjściowych przypadku użycia i odpowiednio je dostosowuj.
Wprowadziliśmy pewne zmiany w ustawieniach rozdzielczości i proporcji obrazu, aby interfejs API był bardziej przejrzysty:
- W przypadku podglądu, gdy nie jest ustawiony żaden format obrazu, domyślnie przyjmuje się format 4:3.
- Gdy CameraX wewnętrznie rozważa zmiany w przypadku żą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 „Nearest mod16” jest traktowana jako ten sam format obrazu.
Tryb nieblokujący ImageAnalysis
- Działanie
ImageReaderMode.ACQUIRE_LATEST_IMAGEnie blokuje już innych działań. Pobiera najnowszy obraz z kolejki, ale stale odrzuca nieużywane obrazy, aby potok kamery nie uległ blokadzie. - Analizator może przechowywać pojedynczy obraz bezterminowo, nie wstrzymując potoku.
- Jeśli aplikacja udostępnia wykonawcę, który następnie blokuje, przypadek użycia ImageAnalysis blokuje.
- Domyślny wykonawca ustawiony wewnętrznie działa jako wykonawca nieblokujący.
Poprawki błędów
- Rozwiązaliśmy problemy z przekroczeniem limitu czasu oczekiwania na zbieżność 3A podczas robienia zdjęć na urządzeniach bez automatycznego ustawiania ostrości, automatycznej ekspozycji i automatycznego balansu bieli.
- Rozwiązaliśmy problem występujący podczas szybkiego robienia zdjęć za pomocą interfejsu ImageCapture. Naprawia błąd:
java.lang.IllegalStateException: maxImages (2) has already been acquired - Rozwiązaliśmy problem, który powodował, że w przypadku niektórych zastosowań nie wywoływano funkcji
setLensFacing, co skutkowało zwróceniem wartościjava.lang.IllegalArgumentException: Unable to get camera ID for use case. - Rozwiązaliśmy problem polegający na tym, że urządzenie LEGACY wymagało określonego formatu obrazu jako maksymalnej rozdzielczości JPEG.
- Naprawiono problem z przełączaniem aplikacji w tle podczas otwierania aparatu
- Rozwiązaliśmy problem w przypadku interfejsu API w wersji starszej niż 25, usuwając błąd
checkAndUpdateEglState: invalid current EGLDisplay. - Rozwiązaliśmy problem polegający na tym, że po włączeniu i uruchomieniu rozszerzeń nie można było odłączyć podglądu.
- Artefakty kompilacji dla widoku z kamery i rozszerzeń kamery są teraz publikowane jako wersje alfa
Camera-Camera2 i Camera-Core w wersji 1.0.0-alpha03
2 lipca 2019 r.
Publikacje androidx.camera:camera-core:1.0.0-alpha03 i androidx.camera:camera-camera2:1.0.0-alpha03 Wersja 1.0.0-alpha03 zawiera te zmiany.
Zmiany w interfejsie API
- Dodano wyjaśnienie w javadocu dotyczące parametru „target” w wywołaniach konfiguracji setTarget.
Camera-Core
- Naprawiono błąd nieskonfigurowanego interfejsu wejścia/wyjścia, który występował podczas szybkiego otwierania/zamykania lub wiązania/odwiązywania.
- Przejście na nowe implementacje Futures
- Testowanie poprawek w celu dokładniejszego testowania
- Test integracji podstawowej pokazuje teraz czas zrobienia zdjęcia
- Opracowano wewnętrzną klasę zgodności dla wykonawców
- Aplikacja do testowania czasu wykonania zdjęć czeka na zakończenie poprzedniego zdjęcia i ma większą stabilność
Rozszerzenia
- Dodano sprawdzanie wersji
- Dodatkowe testy – wywołania zwrotne zdarzeń rozszerzenia
- Ulepszenia wewnętrznie powiązanych obrazów i metadanych
- Poprawki przełączania trybów w aplikacji testowej
Camera-Camera2 i Camera-Core w wersji 1.0.0-alpha02
5 czerwca 2019 r.
Publikacje androidx.camera:camera-core:1.0.0-alpha02 i androidx.camera:camera-camera2:1.0.0-alpha02 Wersja 1.0.0-alpha02 zawiera te zmiany.
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ęć w trakcie szybkiego odłączania i ponownego podłączania przypadków użycia.
- Rozwiązaliśmy problem wewnętrzny, aby aktualizacje próśb o przechwytywanie wpływały na wszystkie platformy w spójny sposób.
- Poprawa stabilności podczas ponownego uruchamiania przypadków użycia w nowych instancjach aplikacji
- Zmiany w architekturze wewnętrznej, które przygotowują interfejs API do obsługi wykonawców
- Dodatkowe wyjaśnienia w dokumentacji Javadoc dotyczące klasy CameraX i zarządzania cyklem życia
- Dodano testowanie z użyciem instrumentacji w przypadku aplikacji do testowania wydajności Antelope
- Usuwanie potrzeby używania parametru „-keepattributes Signature” w konfiguracji Proguard aplikacji
Camera-Camera2 i Camera-Core w wersji 1.0.0-alpha01
7 maja 2019 r.
androidx.camera:camera-core:1.0.0-alpha01 i androidx.camera:camera-camera2:1.0.0-alpha01 zostały opublikowane. 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 Camera, chyba że w obiekcie 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 w przypadku używania obiektu 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
- Bibliotekę CameraX można teraz skonfigurować za pomocą metody ProcessCameraProvider#configureInstance() przed wywołaniem metody ProcessCameraProvider#getInstance(). Umożliwia to dostosowanie obiektu CameraXConfig bez konieczności implementowania interfejsu 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ę aplikacji podczas uruchamiania, gdy inicjowano CameraX w trybie Nie przeszkadzać.
InitializationExceptionzawierającyCameraUnavailableExceptionzostanie ustawiony naListenableFuturewyniku inicjowania zamiast powodować awarię aplikacji. (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
- Rozwiązaliśmy problem z wersji beta03, w której wywołanie funkcji
bindToLifecycle()z zerową liczbąUseCasepowodowało zgłoszenie wyjątku. Uniemożliwiało to pobranieCamerabez powiązania zUseCase. - Poprawki umożliwiające wprowadzenie
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 wartości
ProcessCameraProviderw trakcie inicjowania używana jest konfiguracja domyślna i że rozszerzanie wartościApplicationjest 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 uwzględnić 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 zmiany.
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 zmiany.
Aktualizacje
- Różne poprawki i aktualizacje obsługujące zmiany 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 zmiany.
Zmiany zależności
- Zaktualizowano, aby korzystać z
androidx.camera:camera-core:1.0.0-alpha08.
Camera-Lifecycle w wersji 1.0.0-alpha01
4 grudnia 2019
Publikacja androidx.camera:camera-lifecycle:1.0.0-alpha01 Wersja 1.0.0-alpha01 biblioteki camera-lifecycle zawiera te zmiany
Uwagi dotyczące interfejsu API
- Dodany zostaje artefakt cyklu życia aparatu, który udostępnia interfejs
LifeCycleCameraProvideri implementację o nazwieProcessCameraProvider. Zawiera ona wiele funkcji poprzedniej klasy CameraX w podstawowej wersji i jest uzyskiwana za pomocą metodygetInstance(). - Aby korzystać z CameraX, aplikacje powinny zawierać bibliotekę cyklu życia aparatu.
- W sekcji camera-core znajdziesz informacje o tym, jak zainicjować CameraX za pomocą
ProcessCameraProvider.
Camera-Extensions i Camera-View w wersji 1.0.0
Wersja 1.0.0-alpha32
15 grudnia 2021 roku
Publikacje 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 i interfejsów wewnętrznych. (I8e286, b/204917951) - Aktualizowanie plików interfejsu API dla artefaktu camera-extensions. (If683a, b/161377155)
Poprawki błędów
- Blokowanie możliwości włączania przez aplikację trybów rozszerzeń podczas wiązania
VideoCapture. Rozszerzenia CameraX obsługują tylkoImageCaptureiPreview. TypVideoCapturenie jest jeszcze obsługiwany. Jeśli aplikacja wiążeVideoCapturei włącza dowolny tryb rozszerzenia, zgłaszany jest wyjątekIllegalArgumentException. (I0d87b) CameraSelector#filternie zgłasza już błęduIllegalArgumentException, gdy zbiór wyników jest pusty. (I27804)- Zmieniliśmy nazwę interfejsu
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
ExtensionsManager#getEstimatedCaptureLatencyRangeAPI, ponieważ użytkownicy nie mogą wiedzieć, jakie rozmiary są obsługiwane w przypadkuImageCapture, ani nie mogą odróżnić, czy zwrócone informacje o opóźnieniu dotyczą maksymalnego rozmiaru wyjściowego przechwytywania, czy parametru rozdzielczości wejściowej. (I74bb2) - Przeniesienie parametru
CameraProviderfunkcjiExtensionsManagerdo interfejsugetInstance()API. 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.
Publikacje 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
- Dodano do publicznego interfejsu API metodę CameraSelector#filter, która umożliwia filtrowanie listy obiektów CameraInfo na podstawie obiektu CameraSelector. (I105d0)
Poprawki błędów
- Naprawiono problem z awarią podczas szybkiego przełączania trybu rozszerzeń na niektórych urządzeniach. (Iebbef)
Wersja 1.0.0-alpha30
13 października 2021 r.
Publikacje 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ą parametr minSdkVersion mniejszy niż 21, ale chcą warunkowo używać ścieżek kodu zależnych od interfejsu API w wersji 21 lub wyższej. W przypadku aplikacji z parametrem minSdkVersion ustawionym na 21 lub wyższym ta zmiana nie wymaga żadnych działań. (Ie7f2e, b/200599470)
Poprawki błędów
- Rozwiązaliśmy problem AbstractMethodError, który występował po włączeniu narzędzia ProGuard. (Iae468, b/201177844)
Wersja 1.0.0-alpha29
29 września 2021 r.
Publikacje 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 niego użyj interfejsuRotationProvider#removeListener(...). (Id9d4a) - Zaktualizowano klasę RotationReceiver: zmieniono set/clear Listener na add/remove/removeAll, usunięto wariant setListener, który domyślnie korzysta z głównego wątku, i dodano adnotacje do metod. (Ib1669)
Poprawki błędów
- Zmieniliśmy nazwę ExtensionMode#BEAUTY na FACE_RETOUCH, aby poprawnie przedstawić, co robi ten tryb rozszerzenia. (I61f54, b/198515274)
- Rozwiązaliśmy problem polegający na tym, że kamera zamykała się nieoczekiwanie, gdy w jednym działaniu używano wielu elementów CameraController i PreviewView. (Ibfd18, b/197539358)
Wersja 1.0.0-alpha28
18 sierpnia 2021 r.
Publikacje 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)
- zmieniono nazwę klasy RotationListener na RotationProvider. Nadal udostępnia tę samą funkcję, ale z nieco innym interfejsem API. (Idffc5)
- zmień nazwę zdarzenia TAP_TO_FOCUS_UNSUCCESSFUL na TAP_TO_FOCUS_NOT_FOCUSED, a zdarzenia TAP_TO_FOCUS_SUCCESSFUL na TAP_TO_FOCUS_FOCUSED; Ustawienie OutputSize jako ostatecznego (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.
Publikacje 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
- Wprowadziliśmy interfejs Viewport API poza fazę eksperymentalną. Usunięto eksperymentalną adnotację interfejsu API. (I717ea)
- Zmiana nazwy
CoordinateTransform#getTransformnaCoordinateTransform#transformi aktualizacja dokumentacji 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.
Publikacje 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 dotknięcia w celu ustawienia ostrości; (Iaccb0) - dodanie do klasy CameraController większej liczby funkcji związanych z aparatem: metod pobierających i ustawiających docelowy współczynnik proporcji, docelową rozdzielczość, tryb przechwytywania, CameraControl i niestandardowe wykonania. (Iea8f2)
- dodaj klasę RotationReceiver, która odbiera zmiany rotacji Surface; Można go użyć do ustawienia docelowego obrotu, gdy urządzenie jest w trybie stałej orientacji pionowej lub poziomej. (Ib278f)
- Udostępniono 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 ImageCapture. CameraX automatycznie doda dodatkowy podgląd lub przechwytywanie obrazu, aby funkcje rozszerzenia działały prawidłowo. Po tym czasie w tym interfejsie nie będzie zgłaszany żaden błąd. (I47d9e)
- Udostępniono nowe publiczne interfejsy API ExtensionsManager getInstance, isExtensionAvailable i getExtensionEnabledCameraSelector oraz wycofano stare klasy
<EffectName><UseCase>Extenderi powiązane interfejsy API. (I329e6)
Wersja 1.0.0-alpha25
2 czerwca 2021 r.
Publikacje 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 wyszły już z fazy eksperymentalnej 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)
- Użytkownik
CameraViewzostał usunięty.CameraViewzostała zastąpiona przezCameraController. Informacje o tym, jak przeprowadzić migrację, znajdziesz w przewodniku po migracji. (Id5005)
Poprawki błędów
- Tekst
ExperimentalUseCaseGroupLifecyclezostał zastąpiony tekstemExperimentalUseCaseGroup. (I3b2ef, b/159033688)
Wersja 1.0.0-alpha24
21 kwietnia 2021 r.
Publikacje 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 przypadku eksperymentalnych interfejsów API. Do wywoływania eksperymentalnych interfejsów API używajandroidx.annotation.OptInzamiast wycofanegoandroidx.annotation.experimental.UseExperimental. (Iff226) - Rozwiązano problem z rozciągniętym widokiem podglądu na urządzeniu Samsung J5 Prime (Ib10b6).
Rozszerzenia kamery i wyświetlanie wersji 1.0.0-alpha23
24 marca 2021 r.
Publikacje 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 CameraView zostanie wycofany. Zamiast niego użyj interfejsu
LifecycleCameraController. Zobacz przewodnik po migracji (Idac2c) - Dodano adnotację FloatRange do funkcji setLinearZoom() (I69971)
Poprawki błędów
- Przypięte 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 zależności gradle camera-core, camera-camera2 i camera-lifecycle do najnowszych artefaktów w wersji 1.1.0, chociaż camera-view nadal jest z nimi zgodny, jeśli są one wyraźnie ustawione na używanie wersji 1.1.0. (Ic8fa1, b/181599852)
- Rozwiązanie problemu z rozciągniętym podglądem na urządzeniu Samsung A3 w obiekcie PreviewView. (Iacb30, b/180121821)
- Rozwiązaliśmy problem polegający na tym, że selektora kamery nie można było ustawić przed zainicjowaniem kamery. (Ic8bd0)
Rozszerzenia aparatu i wyświetlanie wersji 1.0.0-alpha22
24 lutego 2021 r.
Publikacje 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
- dodać do klasy CameraController funkcję pobierania informacji o aparacie. (Ib8138, b/178251727)
Poprawki błędów
- Naprawiono ExtensionsErrorListener, aby zgłaszał błędy, gdy powiązane są tylko podgląd lub przechwytywanie obrazu. (I5ae39)
Rozszerzenia aparatu i wyświetlanie wersji 1.0.0-alpha21
27 stycznia 2021 r.
Publikacje 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 w celu obsługi innych artefaktów biblioteki aparatu.
Rozszerzenia aparatu i wyświetlanie wersji 1.0.0-alpha20
16 grudnia 2020 roku
Publikacje androidx.camera:camera-extensions:1.0.0-alpha20 i androidx.camera:camera-view:1.0.0-alpha20 Wersja 1.0.0-alpha20 zawiera te zmiany.
Wydanie w celu obsługi innych artefaktów biblioteki aparatu.
Camera-Extensions & Camera-View w wersji 1.0.0-alpha19
11 listopada 2020 roku
Publikacje androidx.camera:camera-extensions:1.0.0-alpha19 i androidx.camera:camera-view:1.0.0-alpha19 Wersja 1.0.0-alpha19 zawiera te zmiany.
Poprawki błędów
- Wprowadzono adnotację
@ExperimentalVideow widoku z kamery. Ta adnotacja oznacza interfejsy API, które udostępniają eksperymentalne funkcje wideo, które mogą ulec zmianie w miarę pełnego rozwoju tych funkcji. Każda metoda korzystająca z tych interfejsów API powinna używać adnotacji@UseExperimentalz wartościąExperimentalVideojakomarkerClass. (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
- Zmniejszono opóźnienie inicjowania CameraX i wywołania bindToLifecycle (I61dc5).
<UseCase>.getTargetRotation()zwróciSurface.ROTATION_0, jeśli zostanie wywołana przed dołączeniem do instancji Camera, chyba że w obiekcie 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 w celu obsługi innych artefaktów 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, aby uzyskać obiektExtensions, który służy do włączania rozszerzeń w instancjach aparatu i wykonywania na nich zapytań (I4fb7e).
Camera-View Version 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(). Obie metody służą do dostosowywania rotacji podglądu, gdy pożądana rotacja nie jest rotacją wyświetlacza, np. w przypadku wyświetlacza zdalnego. Aby teraz zarządzać rotacją podglądu bez wyświetlania, ustaw żądaną rotację za pomocąPreview#setTargetRotation()i nowo dodanego parametruPreviewView#getViewPort(targetRotation). (Ib62cc) - Zmieniono nazwę
createSurfaceProvider()nagetSurfaceProvider(). Metoda zawsze zwraca to samo wystąpienie Preview.SurfaceProvider. (Iff83c)
Poprawki błędów
- Wymusza użycie TextureView przez Forced PreviewView, jeśli efekt rozszerzenia jest włączony, a implementacja biblioteki dostawcy wymaga specjalnego przetwarzania powierzchni wyjściowej. (I0c3cc)
- Zezwalaj na dowolną rotację celu w przypadku podglądu. Informacje o przekształceniu są obliczane i zwracane użytkownikowi na bieżąco za pomocą nowego wywołania zwrotnego
TranformationInfoListener. (I21470)
Znane problemy
- W przypadku elementu 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. - Wartość MeteringPoint uzyskana z
PreviewView#getMeteringPointFactory()może być nieprawidłowa, 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 zamiast 0 argumentów. (Ife754) Inicjowanie nie powinno już powodować awarii w przypadku używania obiektu Context, który nie zwraca obiektu Application 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
DisplayOrientedMeteringPointFactoryprzyjmujeCameraInfozamiastCameraSelector, więc istnieje bezpośrednie mapowanie na to, dla którego aparatu fabryka będzie generować punkty. Wszystkie klasy, które używająDisplayOrientedMeteringPointFactory, przyjmują też instancjęCameraInfozamiastCameraSelector. (I400c1)- Użytkownik
TextureViewMeteringPointFactoryzostał usunięty.PreviewViewudostępnia publiczny interfejs API (createMeteringPointFactory()) do tworzenia fabryki punktów pomiarowych niezależnie od tego, czy korzysta ona zTextureViewczySurfaceView. (Ide693) - zmień nazwy trybów implementacji
SURFACE_VIEW/TEXTURE_VIEWw klasie PreviewView naPERFORMANCE/COMPATIBLE.PERFORMANCEto stary trybSURFACE_VIEW, aCOMPATIBLEto stary trybTEXTURE_VIEW. (I0edc2) - W przypadku przechwytywania obrazu zastąp flagę odwrócenia w poziomie w metadanych na podstawie kierunku kamery. (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 kamery i właściwości kamery. (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 wyjątku IllegalArgumentException, gdy jest powiązana z LifecycleOwner, którego stan Lifecycle przechodzi w stan DESTROYED krótko po powiązaniu. Cykle życia powiązań w stanie DESTROYED nie będą próbować otworzyć kamery. (I7c2b8)
- Stan strumienia PreviewView jest teraz dostępny za pomocą funkcji 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ę aplikacji podczas uruchamiania, gdy inicjowano CameraX w trybie Nie przeszkadzać.
InitializationExceptionzawierającyCameraUnavailableExceptionzostanie ustawiony naListenableFuturewyniku inicjowania zamiast powodować awarię aplikacji. (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
- Dodaj interfejs
PreviewView#getBitmap()API, 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
- Dodaj interfejs
PreviewView#getBitmap()API, 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
PreviewView#getPreviewStreamStateAPI, który umożliwia aplikacjom sprawdzanie, czy podgląd jest przesyłany strumieniowo. Gdy element PreviewView jest w trybie TEXTURE_VIEW, stan STREAMING gwarantuje też widoczność obrazu podglądu. (Ic0906, b/154652477) - Dodano interfejs API
PreviewView#setDeviceRotationForRemoteDisplayMode(), który zapewnia obrót urządzenia na potrzeby obliczeń przekształceń, jeśli aplikacja jest uruchomiona w trybie zdalnego wyświetlania. (I59b95, b/153514525)
Poprawki błędów
- Rozwiązaliśmy problem ze zniekształceniem podglądu na
FULL/LIMITED/LEVEL_3z Androidem 7.0 lub starszym. Wymuszone użycieImplementationMode#TEXTURE_VIEW, gdy wersja Androida to 7.0 lub starsza. (I83e30, b/155085307) - Usunięto parametr
CameraInfoz funkcjiPreviewView#createSurfaceProvider(). FunkcjaPreviewViewpobiera go teraz wewnętrznie z funkcjiSurfaceRequest. (If18f0, b/154652477) - Ustawiono domyślny format obrazu 16:9 w VideoCapture w CameraView. (Ie6a7b, b/153237864)
- Rozwiązanie problemu z
PreviewViewczarnym ekranem po przesunięciu fragmentuPreviewi ponownym przesunięciu go w ViewPager2. Rozwiązano też problem, gdyremoveView(previewview), a potemaddView(previewView). (Iab555, b/149877652, b/147354615) - Zaktualizuj interfejs API
CameraView#takePicture(), aby umożliwić zapisywanie obrazów w formatachUriiOutputStream. Zaktualizuj aplikację testową, aby używaćUrijako przykładu kanonicznego. (Ia2459, b/153607583) - Typ skalowania elementu PreviewView możesz ustawić w układzie XML, ustawiając atrybut
ScaleType. (I08565, b/153015659) CameraView.ScaleTypezostał(a) usunięty(a). Zamiast tego użyjPreviewView.ScaleType, aby ustawić lub pobrać typ skali za pomocą CameraView. (Ia8974, b/153014831)- Domyślnie nadaj elementowi
PreviewViewkolor tła, jeśli jeszcze go nie ma. Zapobiega to wyświetlaniu treści znajdujących się za nim, zanim rozpocznie się strumień 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 umożliwiają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 znany wcześniej problem, który powodował, że implementacja
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.
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ć prawidłowo 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 okna aparat zostanie ponownie otwarty i może próbować wznowić podgląd, zanim powierzchniaSurfaceViewznów będzie 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óre przyjmuje instancjęCameraInfodopuszczającą wartość null, używaną do optymalizacji podglądu za pomocąImplementationMode.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 używana będzie wartośćImplementationMode.TEXTURE_VIEW. Poniższy przykładowy kod pokazuje, jak wcześniej używano przypadku użycia podglądu z klasą PreviewView.
preview.setSurfaceProvider(previewView.previewSurfaceProvider) cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview)Obecnie możesz napisać:
val camera = cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview) previewView.preferredImplementationMode = ImplementationMode.TEXTURE_VIEW preview.setSurfaceProvider(previewView.createSurfaceProvider(camera.cameraInfo))Do funkcji
PreviewView.getSurfaceProvider()dodano adnotację@UiThread, co oznacza, że musi być ona 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 tagu
PreviewVieww układzie XML za pomocą atrybutuimplementationMode.Dodaj
createMeteringPointFactory()API do PreviewView, aby obsługiwać konwersję (x, y) wPreviewViewnaMeteringPoint. (Ib36d7)
Poprawki błędów
- Rozwiązaliśmy problem polegający na tym, że po zmianie rozmiaru
PreviewViewwyświetlany był nieprawidłowy podgląd. (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 znak
ListenableFuturew dniuSurfaceRequest.provideSurface()znakamiExecutoriCallback. Upraszcza to interfejs API, ponieważ nie wymaga już obsługi wyjątków w przypadku parametruprovideSurface(), i zapewnia, że wywołania zwrotnegoprovideSurface()nie można anulować. Ma to zapobiegać awariom na starszych urządzeniach spowodowanym przedwczesnym zwalnianiem powierzchni. ObiektSurfaceRequest.Resultjest teraz używany do śledzenia sposobu, w jakiSurfaceRequestkorzysta z podanegoSurface. (I7854b) - Zmieniono nazwę
SurfaceRequest.setSurface(Surface)naSurfaceRequest.provideSurface(Surface)iSurfaceRequest.setWillNotComplete()naSurfaceRequest.willNotProvideSurface(). (I224fe) - Naprawiono 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 zmiany.
Poprawki błędów
- Argumenty, które były wcześniej przekazywane w
ImageCapture.OnImageSavedCallback.onError()iImageCapture.OnImageCapturedCallback.onError(), zostały zastąpione jednym argumentemImageCaptureException, który nadal zawiera wszystkie wcześniej przekazywane informacje. - Argument pliku przekazywany 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 zmiany.
Zmiany w interfejsie API
- Implementacja
PreviewViewustawia teraz rozmiarTextureViewna rozmiar wyjściowy czujnika aparatu przed przeskalowaniem go tak, aby wypełniał element nadrzędnyPreviewView.TextureViewJeśli chcesz, aby podgląd z kamery wypełniał całą część interfejsu (np. cały ekran), nie ustawiaj stałej wartości rozmiaru elementuPreviewViewani nie powoduj, aby dopasowywał się do zawartości (np. 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 aparatu jest mniejszy). Zamiast tego ustawPreviewViewtak, aby był tak duży jak element nadrzędny (np. za pomocą atrybutu „match_parent”). (1204869)
Poprawki błędów
- Zaktualizowaliśmy
ImageCapture, aby umożliwić zapisywanie obrazów w usługachUriiOutputStream. Połącz przeciążone metodytakePicturew jedną. Zaktualizowano aplikację testową, aby używaćUrijako przykładu kanonicznego. (Ia3bec) - Nazwa
Preview.PreviewSurfaceProviderzostała zmieniona naPreview.SurfaceProvider.SurfaceProvidernie wymagają już od programistów tworzenia własnychListenableFuture, a udostępnianieSurfaceodbywa się teraz za pomocą nowego obiektuSurfaceRequest. MetodaPreview.getPreviewSurfaceProvider()została usunięta ze względu na możliwość nadużycia, gdyPreviewjest połączona z innymi klasami, takimi jakPreviewView. (I20105) - Argumenty, które były wcześniej przekazywane w
ImageCapture.OnImageSavedCallback.onError()iImageCapture.OnImageCapturedCallback.onError(), zostały zastąpione jednym argumentemImageCaptureException, który nadal zawiera wszystkie wcześniej przekazywane informacje. - Argument pliku przekazywany wcześniej w
ImageCapture.OnImageSavedCallback.onImageSaved()został usunięty. (I750d2) - Zaktualizowano interfejs API, a metody
getZoomRatio(),getMaxZoomRatio(),getMinZoomRatio()igetLinearZoom()interfejsuCameraInfozostały połączone w 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 zmiany.
Aktualizacje
- Różne poprawki i aktualizacje obsługujące zmiany 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 zmiany.
Aktualizacje
- Różne poprawki i aktualizacje obsługujące zmiany 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 zmiany.
Poprawki błędów
- Zaktualizowano, aby pasował 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 zmiany.
Znane problemy
- Podczas korzystania z PreviewView format obrazu może być nieprawidłowy (b/146215202).
Nowe funkcje
- Wprowadzono nową klasę o nazwie
PreviewView.TextureViewImplementation, która synchronizuje cykl życia obiektu SurfaceTexture z używaniem powierzchni obiektu TextureView przez aparat.
Camera-Extensions w wersji 1.0.0-alpha04
4 grudnia 2019
Publikacja androidx.camera:camera-extensions:1.0.0-alpha04 Wersja 1.0.0-alpha04 biblioteki camera-extensions zawiera te zmiany
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)Przed użyciem 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
Publikacja androidx.camera:camera-view:1.0.0-alpha04 Wersja 1.0.0-alpha04 pakietu camera-view zawiera te zatwierdzenia
Zmiany w interfejsie API
- Klasa
PreviewViewumożliwia łatwe wyświetlanie w aplikacji danych wyjściowych z przypadku użycia podglądu. W układzie można umieścić:
PreviewView<androidx.camera.view.PreviewView android:id="@+id/preview_view" … />PreviewViewudostępniaPreviewSurfaceProvider, aby łatwo połączyć przypadek użycia podglądu.preview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)W nazwach interfejsów API znak „
ZoomLevel” zastąpiono znakiem „ZoomRatio”.Niektóre parametry metody zmieniły możliwość przyjmowania wartości null
Camera-Extensions i Camera-View w wersji 1.0.0-alpha03
9 października 2019 r.
Publikacje androidx.camera:camera-extensions:1.0.0-alpha03 i androidx.camera:camera-view:1.0.0-alpha03 Oto zatwierdzenia uwzględnione w camera-extensions:1.0.0-alpha03 i zatwierdzenia uwzględnione w camera-view:1.0.0-alpha03.
Nowe funkcje
- Dodano inicjator kontekstu dla rozszerzeń. Zwiększono numer wersji rozszerzeń do 1.1.0.
Camera-Extensions i Camera-View w wersji 1.0.0-alpha02
5 września 2019 r.
androidx.camera:camera-extensions:1.0.0-alpha02 i androidx.camera:camera-view:1.0.0-alpha02 zostały opublikowane. Oto zatwierdzenia zawarte w bibliotece camera-extensions:1.0.0-alpha02, a oto zatwierdzenia zawarte w bibliotece camera-view:1.0.0-alpha02.
- Dodano testy weryfikujące, czy
PreviewImageProcessorImplprawidłowo zaimplementował znaczniki czasu. - Naprawiono błąd testu
ExtensionTestna Nexusie 5 (poziom API 21) i zapewniono dostępność podglądu.
Camera-Extensions i Camera-View w wersji 1.0.0-alpha01
7 sierpnia 2019 r.
androidx.camera:camera-extensions:1.0.0-alpha01 i androidx.camera:camera-view:1.0.0-alpha01 zostały opublikowane.
Oto zatwierdzenia zawarte w bibliotece camera-extensions:1.0.0-alpha01 i zatwierdzenia zawarte w bibliotece camera-view:1.0.0-alpha01.
- Nowa biblioteka 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 Camera View. Ta biblioteka jest w trakcie opracowywania.