Aparat X
androidx.camera.camera2
androidx.camera.core
androidx.camera.extensions
androidx.camera.lifecycle
androidx.camera.view
androidx.camera.video
androidx.camera.mlx.vision.vision
Ta tabela zawiera listę wszystkich artefaktów w grupie androidx.camera
.
Artefakt | Wersja stabilna | Kandydat do publikacji | Wersja Beta | Wersja alfa |
---|---|---|---|---|
kamera-kamera2 | 1.3.4 | - | 1.4.0-beta02 | - |
rdzenie kamery | 1.3.4 | - | 1.4.0-beta02 | - |
efekty kamery | - | - | 1.4.0-beta02 | - |
Rozszerzenia-aparatów | 1.3.4 | - | 1.4.0-beta02 | - |
cykl życia aparatu | 1.3.4 | - | 1.4.0-beta02 | - |
Camera-MLkit-vision | - | - | 1.4.0-beta02 | - |
widok z kamery | 1.3.4 | - | 1.4.0-beta02 | - |
wizjer-aparat | - | - | 1.3.0-beta02 | 1.4.0-alfa07 |
film z aparatu | 1.3.4 | - | 1.4.0-beta02 | - |
Testowanie urządzenia
W naszym laboratorium CameraX zostało przetestowane na wielu urządzeniach. Listę urządzeń, które obecnie biorą udział w laboratorium, znajdziesz w artykule Urządzenia przetestowane w ramach laboratorium CameraX.
Deklarowanie zależności
Aby dodać zależność od CameraX, musisz dodać do projektu repozytorium Google Maven. Więcej informacji znajdziesz w repozytorium Google Maven.
W pliku build.gradle
aplikacji lub modułu dodaj zależności artefaktów, których potrzebujesz:
Odlotowy
dependencies { // CameraX core library using the camera2 implementation def camerax_version = "1.4.0-beta02" // The following line is optional, as the core library is included indirectly by camera-camera2 implementation "androidx.camera:camera-core:${camerax_version}" implementation "androidx.camera:camera-camera2:${camerax_version}" // If you want to additionally use the CameraX Lifecycle library implementation "androidx.camera:camera-lifecycle:${camerax_version}" // If you want to additionally use the CameraX VideoCapture library implementation "androidx.camera:camera-video:${camerax_version}" // If you want to additionally use the CameraX View class implementation "androidx.camera:camera-view:${camerax_version}" // If you want to additionally add CameraX ML Kit Vision Integration implementation "androidx.camera:camera-mlkit-vision:${camerax_version}" // If you want to additionally use the CameraX Extensions library implementation "androidx.camera:camera-extensions:${camerax_version}" }
Kotlin
dependencies { // CameraX core library using the camera2 implementation val camerax_version = "1.4.0-beta02" // The following line is optional, as the core library is included indirectly by camera-camera2 implementation("androidx.camera:camera-core:${camerax_version}") implementation("androidx.camera:camera-camera2:${camerax_version}") // If you want to additionally use the CameraX Lifecycle library implementation("androidx.camera:camera-lifecycle:${camerax_version}") // If you want to additionally use the CameraX VideoCapture library implementation("androidx.camera:camera-video:${camerax_version}") // If you want to additionally use the CameraX View class implementation("androidx.camera:camera-view:${camerax_version}") // If you want to additionally add CameraX ML Kit Vision Integration implementation("androidx.camera:camera-mlkit-vision:${camerax_version}") // If you want to additionally use the CameraX Extensions library implementation("androidx.camera:camera-extensions:${camerax_version}") }
Opinia
Twoja opinia pomoże nam ulepszyć Jetpack. Daj nam znać, jeśli znajdziesz nowe wydania lub masz pomysły na ulepszenie tej biblioteki. Zanim utworzysz nową bibliotekę, przejrzyj problemy z tą biblioteką. Możesz oddać głos w ramach istniejącego problemu, klikając przycisk gwiazdki.
Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.
Wizjer aparatu w wersji 1.0
Wersja 1.0.0-alfa02
12 czerwca 2024 r.
Aplikacja androidx.camera:camera-viewfinder-compose:1.0.0-alpha02
została zwolniona. Wersja 1.0.0-alpha02 zawiera te zatwierdzenia.
Wersja 1.0.0-alfa01
14 maja 2024 r.
Aplikacja androidx.camera:camera-viewfinder-compose:1.0.0-alpha01
została zwolniona. Wersja 1.0.0-alpha01 zawiera te zatwierdzenia.
Nowe funkcje
- Nowa biblioteka. W tej bibliotece przedstawiamy natywny funkcja kompozycyjna w wizjerze kompozycyjnym, której można używać z Aparatami X i Aparat 2. Wizjer kompozycyjny obsługuje różne formaty obrazu oraz obsługę zdarzeń dotknięcia.
Wizjer aparatu w wersji 1.4
Wersja 1.4.0-alfa07
12 czerwca 2024 r.
Opublikowano androidx.camera:camera-viewfinder:1.4.0-alpha07
i androidx.camera:camera-viewfinder-core:1.4.0-alpha07
. Wersja 1.4.0-alfa07 zawiera te zatwierdzenia.
Wersja 1.4.0-alfa06
14 maja 2024 r.
Opublikowano 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 zatwierdzenia.
Zmiany w interfejsie API
- Zmień nazwy wartości liczbowych
ImplementationMode
w tabeliViewfinder
, aby lepiej odzwierciedlić podstawowe implementacje, i dodaj stałe stałe dla funkcjiTransformationInfo.sourceRotation
. (Ic6149) - Dodano element
ZoomGestureDetector.ZoomEvent
, który przedstawia stany gestu powiększenia. (I84cdf)
Aparat w wersji 1.4
Wersja 1.4.0-beta02
12 czerwca 2024 r.
Aplikacja androidx.camera:camera-*:1.4.0-beta02
została zwolniona. Wersja 1.4.0-beta02 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Podobnie jak w przypadku
VideoCapture
dodaj parametrsetMirrorMode
na potrzeby przypadku użycia wersji przedpremierowej. Obsługa trybu powielania będzie WŁĄCZONA i WYŁĄCZONA w przypadku strumienia w wersji testowej przezOutputConfiguration.setMirrorMode
z interfejsu API w wersji 33 i nowszych. W przypadku starszych interfejsów API nie będzie działać (I821f4).
Poprawki błędów
- Rozwiązaliśmy problem, który powodował, że aplikacje nie mogły robić zdjęć na karcie Samsung A8, gdy
ImageCapture
wybiera rozdzielczość 1920 x 1080 w przypadku kombinacjiPreview
+VideoCapture
+ImageCapture
UseCase
. (I5a463, b/336925549) - Rozwiązano problem z nagrywaniem trwałym po przełączeniu kamery. (Icb0a1)
Wersja 1.4.0-beta01
14 maja 2024 r.
Aplikacja androidx.camera:camera-*:1.4.0-beta01
została zwolniona. Wersja 1.4.0-beta01 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Dodano element
ZoomGestureDetector.ZoomEvent
, który przedstawia stany gestu powiększenia. (I84cdf)
Poprawki błędów
- Naprawiono błąd, który nadal powodował przechwytywanie i regulowanie ostrości przez dotknięcie, które nie korzystało z wartości trybu stabilizacji i powtarzających się żądań FPS. Może to powodować odtwarzanie sesji i powodować problemy z opóźnieniami lub blokowaniem podglądu na niektórych urządzeniach. (I7dc0b)
- Naprawiono błąd, który uniemożliwiał wybór wysokich rozdzielczości, gdy na niektórych urządzeniach włączono
CameraEffect
. (np. 4000 x 3000 w przypadku Samsunga A32 5G). (Ie3ed3, b/337336152) - Rozwiązaliśmy problem z występowaniem awarii podczas robienia zdjęć w trybie podglądu. Na urządzeniach Pixel 4XL API29 powiązane są funkcje
ImageCapture
iVideoCapture(UHD)
. (I5b288) - Obsługa urządzeń wirtualnych: kontekst przekazany do
ProcessCameraProvider
zachowa identyfikator urządzenia, aby zapewnić działanie w środowisku urządzeń wirtualnych. (I5ba48)
Wersja 1.4.0-alfa05
17 kwietnia 2024 r.
Aplikacja androidx.camera:camera-*:1.4.0-alpha05
została zwolniona. Wersja 1.4.0-alpha05 zawiera te zatwierdzenia.
Nowe funkcje
- Przekonwertowano element
ProcessCameraProvider
na implementację Kotlin. (I46d4f) - Dodano funkcje zawieszania
ImageCapture.takePicture
, aby umożliwić ich wywoływanie w idiomatyczny sposób kotlin. (I920be)
Zmiany w interfejsie API
- Dodaj interfejsy API formatu wyjściowego do
ImageCapture
i dodaj metodęgetSupportedOutputFormats
doImageCaptureCapabilities
, aby wysyłać zapytania o możliwości urządzenia. Domyślnym formatem wyjściowym jestOUTPUT_FORMAT_JPEG
. Przechwytuje obrazy SDR w formacie JPEG. Jeśli urządzenie obsługuje funkcję ultra HDR, a format wyjściowy jest ustawiony naOUTPUT_FORMAT_JPEG_ULTRA_HDR
, CameraX będzie zapisywać obrazy skompresowane w technologii ultra HDR w formacie JPEG/R. Format jest zgodny wstecznie z formatem SDR JPEG i obsługuje renderowanie treści w HDR. Oznacza to, że w starszych aplikacjach i na starszych urządzeniach obrazy wyświetlają się jako zwykłe pliki JPEG, a w aplikacjach i na urządzeniach, które zostały zaktualizowane pod kątem pełnej obsługi tego formatu, będą się wyświetlać jako HDR. (I5de50) - Dodaj obiekt
PhysicalCameraInfo
w poluCameraInfo
, aby uzyskać informacje o fizycznej kamerze i dodać obiekt ustawiający/pobierający fizyczny identyfikator kamery w komponencieCameraSelector
(Ic5b90) - Zamień
CameraController#COORDINATE_SYSTEM_VIEW_REFERENCED
naImageAnalysis#COORDINATE_SYSTEM_VIEW_REFERENCED
. Wartość stałej pozostaje taka sama. Służy to konsolidacji wszystkich stałych w jednym miejscu. (I890bb) - Nowy interfejs API
RetryPolicy
umożliwia programistom dostosowywanie sposobu ponownego uruchamiania inicjowania CameraX przez ponawianie prób. (I36dd2) - Włącz tworzenie obiektu
ImageCaptureLatencyEstimate
, aby ułatwić testowanie (Iaba99) - Dodaj
ImageAnalysis#COORDINATE_SYSTEM_SENSOR
. Gdy jest on używany,MlKitAnalyzer
zwraca współrzędne w układzie współrzędnych czujnika aparatu. (I3ec61) - Interfejs API metadanych ujawnionych rozszerzeń. Nowe interfejsy
CameraExtensionsInfo
iCameraExtensionsControl
umożliwiają aplikacjom monitorowanie i dostosowywanie ustawień siły rozszerzenia. Aplikacje mogą uzyskiwać instancjęCameraExtensionsInfo
lubCameraExtensionsControl
za pomocą nowo dodanej metodyExtensionsManager#getCameraExtensionsInfo()
lubExtensionsManager#getCameraExtensionsControl()
. (I28e1a) - Dodano
ProcessCameraProvider.awaitInstance
, który jest wersją zawieszającąProcessCameraProvider.getInstance
(Ib22b9). - Dodaj interfejs API
PreviewView#getSensorToViewTransform()
. Macierz przedstawia przekształcenie ze współrzędnych czujnika aparatu w współrzędne obiektuPreviewView
. Pozwala to przekształcić współrzędne z jednego obiektuUseCase
na drugi. Przykład: przekształcanie współrzędnych wykrytych obiektów wImageAnalysis
na nakładkęPreviewView
. (I947ab) - Zadbaj o bardziej ogólny charakter interfejsu API
camera-viewfinder-core
, aby można było go używać wcamera-viewfinder
icamera-viewfinder-compose
. (I1e295) - Dodaj funkcję
getSurface
do tablicyViewfinderSurfaceRequest
. (I781a0) - Używaj wersji
camera-viewfinder-core
w usłudzecamera-viewfinder
i wycofajViewfinderSurfaceRequest
iCameraViewfinder
. (I6198c) - Dodano funkcję
ZoomGestureDetector
, która interpretuje gesty skalowania skonfigurowane specjalnie pod kątem działań polegających na ściąganiu i rozciąganiu palcami. (Ifafbf)
Poprawki błędów
- Rozwiązano problem z wyborem rozdzielczości w narzędziu
ImageAnalysis
związany z ustawieniem domyślnej rozdzielczości analizatora: rozdzielczość docelowa była niepoprawnie zachowywana 640 x 480, nawet jeśli aplikacje mają inne domyślne ustawienia rozdzielczości analizatora. Jeśli aplikacje napotkają ten problem (1.3.0 ~ 1.3.2) i nie mogą przejść na nowszą wersję, która zawiera to rozwiązanie, można obejść ten problem bezpośrednio przez ustawienieResolutionSelector
z preferowaną rozdzielczością i dopasowaniemAspectRatioStrategy
doUseCase
ImageAnalysis
. (I81f72, b/330091012) - Rozwiązaliśmy problem, który powodował, że żądanie
takePicture
mogło nie zostać uruchomione, jeśli bieżące żądanie nie zostało zrealizowane. (IE0801) - Ustaw nieprawidłowe sprawdzenie danych JPEG na urządzeniach Vivo X60 i X60 Pro. Może to rozwiązać problem z nietypowo dużymi zdjęciami na tych urządzeniach. (I82247, b/288828159)
- Rozwiązano problem z nieprawidłowymi metadanymi obrazu JPEG na urządzeniach Samsung A24. Po rozwiązaniu problemu aplikacja CameraX będzie mogła zapisać obraz JPEG lub, gdy wywołasz funkcję
ImageProxy.toBitmap()
na urządzeniach Samsung A24, będą mogły zostać zwrócone poprawne obiekty mapy bitowej. (I8d6eb, b/309005680) - Jeśli rozmiar przechwytywanego obrazu przekracza 10 MB, włącz sprawdzanie danych JPEG we wszystkich urządzeniach Samsung. Może to rozwiązać problem ze zbyt dużą ilością obrazu na urządzeniach Samsung. (Ic2a65, b/288828159)
- Usunęliśmy obsługę rozszerzenia
ImageAnalysis
w rozszerzeniach CameraX, ponieważ wiele implementacji rozszerzeń OEM nie działa prawidłowo zImageAnalysis
i może powodować niespójności. (I2d926)
Wersja 1.4.0-alfa04
24 stycznia 2024 r.
Aplikacja androidx.camera:camera-*:1.4.0-alpha04
została zwolniona. Wersja 1.4.0-alpha04 zawiera te zatwierdzenia.
Nowe funkcje
- Nowy artefakt: efekty kamery: biblioteka do stosowania efektów w czasie rzeczywistym do wyjścia CameraX, w tym
Preview
,VideoCapture
lubImageCapture
. Ten artefakt zawiera implementacje OpenGL interfejsu APICameraEffect
, które efektywnie modyfikują dane wyjściowe kamery. OverlayEffect
: do rysowania nakładek za pomocą interfejsu Canvas API systemu Android. Dzięki temu aplikacja może stosować znak wodny i wyróżniać wykryte obiekty w obiektywie aparatu.- Interfejsy API
DynamicRange
w przykładzie użycia wersji testowej: zakres dynamiczny można teraz ustawić dla przykładu użycia wersji przedpremierowej niezależnie od przypadku użycia wideo. Umożliwia to korzystanie z zakresów dynamicznych HDR, np. HLG10 w samym podglądzie. WCameraInfo
są też dostępne nowe interfejsy API do sprawdzania, jakie zakresy dynamiczne obsługuje każda kamera.
Zmiany w interfejsie API
- Nazwa
ScreenFlashUiCompleter
została zmieniona naScreenFlashListener
i przeniesionoScreenFlashUiCompleter#getExpirationTimeMillis
do parametruexpirationTimeMillis
parametruScreenFlash#apply
. (I13944) - Dodaliśmy nowe interfejsy API, które umożliwiają ustawienie zakresu dynamicznego na potrzeby wersji testowej i wysyłanie zapytań o zakresy dynamiczne obsługiwane przez poszczególne kamery. Dzięki temu zakresy dynamiczne HDR, takie jak HLG10, mogą być używane tylko w wersji testowej. Nie trzeba już wiązać elementu
VideoCapture
w tym samym czasie. (If25e3) - Zmieniono nazwę
getMirroring()
naisMirroring()
(I47063) - Dodaliśmy obsługę szacowanego opóźnienia przechwytywania nadal w czasie rzeczywistym w CameraX. Rozszerzenia aparatu umożliwiają aplikacjom korzystanie z interfejsu API, który podaje oszacowany czas potrzebny na zrobienie zdjęcia. Oszacowania uwzględniają bieżące warunki środowiskowe i stan kamery, a także czas poświęcony na przetwarzanie żądań nagrywania wieloklatkowego oraz w razie potrzeby dodatkowy czas na kodowanie przetworzonych buforów. (I05c3a)
- Zmieniono nazwę
ScreenFlashUiControl
naScreenFlash
,ScreenFlashUiControl#applyScreenFlashUi
naScreenFlash#apply
,ScreenFlashUiControl#clearScreenFlashUi
naScreenFlash#clear
i dodano metodęgetScreenFlashUiApplyTimeoutSeconds
zamiast bezpośrednio ujawniać działanie aplikacjiSCREEN_FLASH_UI_APPLY_TIMEOUT_SECONDS
. (Iccdd0)
Poprawki błędów
- Usunięto wyciek pamięci, w wyniku którego działania lub fragmenty nie są zwalniane po włączeniu rozszerzeń (I14215)
- Rozwiązaliśmy problem, który powodował, że funkcja
getZoomRatio
nieprawidłowo zwracała zmniejszoną wartość podczas stosowania zwiększonego współczynnika powiększenia. (I4aa0d, b/317543616) - Zdarzenie
ImageCapture#ScreenFlash#clear
jest wywoływane natychmiast, gdy zasadaImageCapture
jest niepowiązana lub kamera jest zamknięta. Poprawia też kilka błędów, które powodują, że nie jest ono nigdy wywoływane z powodu nieprawidłowego przebiegu rejestracji. (If99f9) - Naprawiliśmy awarię, która występowała po zatrzymaniu cyklu życia przed zakończeniem żądania
takePicture
(Idf017, b/306202751) - Rozwiązaliśmy problem z czarnym podglądem aparatu po włączeniu rozszerzeń na niektórych urządzeniach (I1ffd0)
- Usunięto nieprawidłowy czas trwania nagrywania wideo na urządzeniach z procesorem Snapdragon 778G SoC. (If6aa7, b/316057919)
Wersja 1.4.0-alfa03
13 grudnia 2023 r.
Aplikacja androidx.camera:camera-*:1.4.0-alpha03
została zwolniona. Wersja 1.4.0-alpha03 zawiera te zatwierdzenia.
Nowe funkcje
- Dodano atrybut
CameraInfo.mustPlayShutterSound
, aby poinformować o tym, czy dźwięk migawki musi być odtwarzany zgodnie z ograniczeniami regionalnymi. (Ifda84) - Dodano
OnImageCapturedCallback.onCaptureStarted
iOnImageSavedCallback.onCaptureStarted
do powiadamiania o rozpoczęciu ekspozycji klatki przez kamerę. W tym momencie zalecamy odtwarzanie dźwięku migawki lub animacji migawki. (Ic49b3) - Dodaliśmy obsługę lampy błyskowej w aplikacji CameraX podczas robienia zdjęć z przedniego aparatu. Aparat CameraX zajmie się obsługą interfejsu API po stronie platformy i zsynchronizuje czas zgodnie ze zmianami w interfejsie aplikacji (np. włączenie trybu wstępnego przechwytywania AE po zmianie koloru/jasności ekranu aplikacji). Aplikacje będą musiały dodać tylko implementacje po stronie swojego interfejsu użytkownika w interfejsie
ScreenFlashUiControl
udostępnianym w aplikacji CameraX. (I8ae84) - Dodano obsługę implementacji lampy błyskowej po stronie interfejsu w aplikacji CameraX. Aplikacje będą mogły zacząć korzystać z podstawowej implementacji
ImageCapture.ScreenFlashUiControl
odPreviewView
lub nowo dodanegoScreenFlashView
, co pozwoli uzyskać jednokolorowy widok nakładki i zmaksymalizować jasność ekranu podczas robienia zdjęć z użyciem błysku błyskowego. (I1810e)
Zmiany w interfejsie API
- Obsługa nowych funkcji rozszerzeń(postępy w procesach po wyświetleniu i przechwytywaniu): dodano interfejsy API
ImageCapture#getImageCaptureCapabilities()
dla aplikacji, które umożliwiają wysyłanie zapytań o możliwości wywołań zwrotnych i rejestrowanie postępu procesu. Aplikacje mogą włączyć wyświetlanie po wyświetleniu za pomocą funkcjiImageCapture.Builder#setPostviewEnabled()
. Rozmiar po wyświetleniu można wybrać za pomocą polaImageCapture.Builder#setPostviewResolutionSelector()
. Podczas wywoływania funkcjitakePicture()
,onPostviewBitmapAvailable
ionCaptureProcessProgressed
można zaimplementować wOnImageSavedCallback
lubOnImageCapturedCallback
, aby otrzymywać powiadomienia o postępach po wyświetleniu i postępie (jeśli są obsługiwane). (I5cd88) - Interfejsy API do obliczania przekształcania 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 wykonywania zapytania
PreviewCapabitlity
w wersji testowejUseCase
. (Ie5b6c) - Dodano interfejsy API, aby obsługiwać więcej jakości w
VideoCapture
. Za pomocąRecorder.Builder#setVideoCapabilitiesSource(int)
można użyć protokołuVIDEO_CAPABILITIES_SOURCE_CODEC_CAPABILITIES
, aby utworzyć instancjęRecorder
, która obsługuje więcej jakości niżVIDEO_CAPABILITIES_SOURCE_CAMCORDER_PROFILE
. Typowym przypadkiem użycia jest sytuacja, w której aplikacja stara się nagrywać filmy w jakości UHD, gdy jest to możliwe. JednakCamcorderProfile
urządzenia nie zawiera ustawień UHD, mimo że kodek umożliwia nagrywanie filmów w jakości UHD. (Iedbe2, b/263961771) - Dodano metodę getter/setter formatu wyjściowego
ImageAnalysis
do elementuCameraController
. (I9a96c, b/308240643)
Poprawki błędów
- Z Aparatu
1.3.1
: poprawiliśmy działanie aplikacjiProcessCameraProvider#bindToLifecycle()
. Główna zmiana polega na optymalizacji procesu identyfikacji najodpowiedniejszych kombinacji rozmiarów dlaUseCases
. Optymalne wyniki zależą od konkretnych kombinacji kryteriówUseCase
i liczby obsługiwanych rozmiarów wyjściowych w przypadku urządzeń docelowych. (I454f2) - Zezwalaj na używanie
VideoCapture
, gdy włączone są rozszerzenia. (I91f32) - Rozwiązano problem z dużymi obrazami JPEG na urządzeniach Samsung A71 i M51. Przechwycone obrazy JPEG zawierają zbędne dane dopełnienia zera w segmencie danych skompresowanym JFIF. Przechwytywane obrazy mają bardzo duży rozmiar. Te nadmiarowe dane dopełnienia „0” zostaną usunięte, dzięki czemu przechwycone obrazy będą miały normalne rozmiary plików. (I01afc, b/288828159)
- Wyłącz obsługę
ImageAnalysis
na Pixelach, aby uniknąć błędu, który powoduje przypadkowe zwrócenie niepustych obsługiwanych rozmiarówImageAnalysis
. (I7ec31). - Rozwiązaliśmy problem z wydajnością, który powodował, że po włączeniu rozszerzeń zwiększało się obciążenie procesora i zużycie energii. (Ibdccb)
- Dodano Snapdragon 480 do urządzenia
CameraUseInconsistentTimebaseQuirk
. Rozwiązanie to rozwiązuje problem występujący na urządzeniach z Androidem 12, którzy korzystają z tego chipsetu, w wyniku którego dźwięk w nagraniach jest opóźniony o czas zawieszenia urządzenia. (I58010)
Wersja 1.4.0-alfa02
18 października 2023 r.
Aplikacja androidx.camera:camera-*:1.4.0-alpha02
została zwolniona. Wersja 1.4.0-alpha02 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Zmień nazwę interfejsu API na
setCameraOpenRetryMaxTimeoutInMillisWhileResuming
i zmień nazwę argumentu. (I72370) - Dodanie interfejsów API w celu sprawdzenia możliwości urządzenia i włączenia stabilizacji wideo/podglądu. (I87544)
- Udostępnij interfejs API, aby dostosować maksymalny czas oczekiwania przy ponawianiu próby otwarcia kamery. (I0c642)
- Udostępniliśmy
ProcessCameraProvider.shutdownAsync
jako publiczny interfejs API służący do testowania, aby umożliwić korzystanie z dostawcy aparatu procesu w pakietach testowych, które w przerwach między testami mogą wymagać uruchomienia Aparatu X na różne sposoby. (I9eca7) - Dodaj interfejsy API do konfigurowania zakresu dynamicznego nagrywania filmu, liczby klatek i trybu lustrzanego odbicia. (Ifb8f7)
- Wycofaj atrybut
OutputSize
i zastąp go elementemResolutionSelector
.ResolutionSelector
umożliwia bardziej wszechstronny wybór rozdzielczości i jest zgodny z interfejsem Camera-Core API. (I93abd, b/286801438)
Poprawki błędów
- Rozwiązaliśmy problem z czarnym podglądem na telefonie Samsung Galaxy S23 Ultra 5G, gdy w tylnym aparacie
ImageAnalysis
włączono Bokeh lub retusz twarzy. (I2e8b1) - Rozwiązano problem z podglądem i rozciąganiem (
VideoCapture
) w Moto E5 Play. (73dce2)
Wersja 1.4.0-alfa01
20 września 2023 r.
Aplikacja androidx.camera:camera-*:1.4.0-alpha01
została zwolniona. Wersja 1.4.0-alpha01 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Dodaj nowy interfejs API, aby uzyskać dostęp do informacji o amplitudzie dźwięku podczas nagrywania. (Id4925)
Poprawki błędów
- Popraw stabilność rozszerzeń, dbając o to, by zdarzenia inicjowania i deinicjowania były aktywowane w prawidłowej kolejności. (Ib3b8e)
- Rozwiązaliśmy problem z konfiguracją sesji przechwytywania, który powodował przekroczenie limitu obsługiwanej powierzchni z powodu dodania dodatkowej powierzchni powtarzającej się wewnętrznie. (Id718c)
- Naprawiono problem z dużym obrazem JPEG na urządzeniu Vivo S16. Przechwycone obrazy JPEG zawierają zbędne dane dopełnienia zera w segmencie danych skompresowanym JFIF. Spowoduje to, że przechwycone obrazy będą miały duży rozmiar. Te nadmiarowe dane dopełnienia „0” zostaną usunięte, dzięki czemu przechwycone obrazy będą miały normalne rozmiary plików. (I79505, b/299069235)
- Rozwiązaliśmy problem, który powodował, że po włączeniu niektórych trybów rozszerzeń na niektórych urządzeniach nie można było powiązać funkcji
ImageAnalysis
z elementamiImageCapture
i podglądem. Ta poprawka zwróci prawidłową wartość, gdy aplikacje będą wysyłać zapytania o dostępność funkcjiImageAnalysis
za pomocą funkcjiExtensionsManager#isImageAnalysisSupported()
. (I7d538) - Zaktualizuj plik JavaDoc, aby pasował do zachowania. Działanie nie zostanie ukończone od razu –
#setZoomRatio
,#setLinearZoom
i#enableTorch
czekają, aż kamera będzie gotowa. Dodaliśmy też informacje o tym, jak uzyskać maksymalny obszar widzenia za pomocą interfejsu API#takePicture
. (I23588)
Wersja 1.3
Wersja 1.3.4
12 czerwca 2024 r.
Aplikacja androidx.camera:camera-*:1.3.4
została zwolniona. Wersja 1.3.4 zawiera te zatwierdzenia.
Poprawki błędów
- Rozwiązaliśmy problem, który powodował, że funkcja
getZoomRatio
nieprawidłowo zwracała zmniejszoną wartość podczas stosowania zwiększonego współczynnika powiększenia. (I4aa0d, b/317543616) - Naprawiliśmy problem polegający na tym, że funkcja robienia zdjęć lub ustawiania ostrości nie korzystała z wartości trybu stabilizacji powtarzających się żądań, co mogło powodować odtwarzanie sesji nagrywania i powodować problemy z opóźnieniami lub blokowaniem podglądu na niektórych urządzeniach. (I7dc0b)
- Rozwiązaliśmy problem z niższą wartością liczby klatek podczas wywoływania funkcji
setTargetFrameRate
za pomocą funkcjiFRAME_RATE_RANGE_UNSPECIFIED
. (I78c61)
Wersja 1.3.3
17 kwietnia 2024 r.
Aplikacja androidx.camera:camera-*:1.3.3
została zwolniona. Wersja 1.3.3 zawiera te zatwierdzenia.
Poprawki błędów
- Rozwiązano problem z wyborem rozdzielczości w narzędziu
ImageAnalysis
związany z ustawieniem domyślnej rozdzielczości analizatora: rozdzielczość docelowa była niepoprawnie zachowywana 640 x 480, nawet jeśli aplikacje mają inne domyślne ustawienia rozdzielczości analizatora. Jeśli aplikacje napotkają ten problem (1.3.0 ~ 1.3.2) i nie mogą przejść na nowszą wersję, która zawiera to rozwiązanie, można obejść ten problem bezpośrednio przez ustawienieResolutionSelector
z preferowaną rozdzielczością i dopasowaniemAspectRatioStrategy
do przypadku użyciaImageAnalysis
. (I81f72, b/330091012)
Wersja 1.3.2
6 marca 2024 roku
Aplikacja androidx.camera:camera-*:1.3.2
została zwolniona. Wersja 1.3.2 zawiera te zatwierdzenia.
Poprawki błędów
- Rozwiązano problem z metadanymi JPEG na urządzeniach Samsung A24. CameraX dokładnie zapisuje obrazy, a funkcja
ImageProxy.toBitmap()
zwraca prawidłowe obiekty bitmapy. (I8d6eb, b/309005680) - Z powodu problemów usunęliśmy opcję rozdzielczości 9280 x 6944 na urządzeniach Redmi Note 9 Pro. (Ia23da)
Wersja 1.3.1
13 grudnia 2023 r.
Aplikacja androidx.camera:camera-*:1.3.1
została zwolniona. Wersja 1.3.1 zawiera te zatwierdzenia.
Poprawki błędów
Zwiększono wydajność aplikacji ProcessCameraProvider#bindToLifecycle()
. Główna zmiana polega na optymalizacji procesu identyfikacji najodpowiedniejszych kombinacji rozmiarów dla UseCases
. Optymalne wyniki zależą od konkretnych kombinacji kryteriów UseCase
i liczby obsługiwanych rozmiarów wyjściowych w przypadku urządzeń docelowych. (I454f2)
Oto kilka wyników dla różnych scenariuszy:
Cztery
UseCases
:Preview
+ImageCapture
+ImageAnalysis
+VideoCapture
- Google Pixel 7: około 430–60 ms
- Samsung Galaxy S23 Ultra: około 540–45 ms.
- Samsung A53 5G: około 115–70 ms.
Trzy:
UseCases
:Preview
+ImageCapture
+ImageAnalysis
- Google Pixel 7: około 9–7 ms
- Samsung Galaxy S23 Ultra: około 6–5 ms.
- Samsung A53 5G: około 32–12 ms,
Dodano Snapdragon 480 do urządzenia
CameraUseInconsistentTimebaseQuirk
. Rozwiązanie to rozwiązuje problem występujący na urządzeniach z Androidem 12, którzy korzystają z tego chipsetu, w wyniku którego dźwięk w nagraniach jest opóźniony o czas zawieszenia urządzenia. (I58010)
Wersja 1.3.0
18 października 2023 r.
Aplikacja androidx.camera:camera-*:1.3.0
została zwolniona. Wersja 1.3.0 zawiera te zatwierdzenia.
Ważne zmiany od wersji 1.2.0
- Funkcje wideo, w tym 10-bitowy tryb HDR, przycinanie, odbicie lustrzane/bez odbicia lustrzanego, wyciszanie/wyłączanie wyciszenia, ustawienie liczby klatek i inne.
- Podwójna kamera równoczesna
- Biblioteka efektów
- Selektor rozdzielczości
- Wybór aparatu ultraszerokokątnego i teleskopowego
- Przełączanie aparatu podczas nagrywania wideo (funkcja eksperymentalna)
Wersja 1.3.0-rc02
20 września 2023 r.
Aplikacja androidx.camera:camera-*:1.3.0-rc02
została zwolniona. Wersja 1.3.0-rc02 zawiera te zatwierdzenia.
Poprawki błędów
- Popraw stabilność rozszerzeń, dbając o to, by zdarzenia inicjowania i deinicjowania były aktywowane w prawidłowej kolejności. Rozwiązało to problemy z czarnym podglądem podczas przełączania trybów rozszerzeń lub przełączania aparatów. (Iddaac)
- Rozwiązaliśmy problem, który powodował, że po włączeniu niektórych trybów rozszerzeń na niektórych urządzeniach nie można było powiązać funkcji
ImageAnalysis
z elementamiImageCapture
i podglądem. Ta poprawka zwróci prawidłową wartość, gdy aplikacje będą wysyłać zapytania o dostępność funkcjiImageAnalysis
za pomocą funkcjiExtensionsManager#isImageAnalysisSupported()
. (I7d538) - Rozwiązaliśmy problem, który powodował, że dźwięk i obraz w nagrywanym filmie nie były zsynchronizowane po włączeniu trybu lustrzanego odbicia lustrzanego na urządzeniu Xiaomi Poco X3 NFC. (I20b4c)
Wersja 1.3.0-rc01
23 sierpnia 2023 r.
Aplikacja androidx.camera:camera-*:1.3.0-rc01
została zwolniona. Wersja 1.3.0-rc01 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Dodano:
PendingRecording.asPersistentRecording
, aby umożliwić nagranie ciągłe, gdyVideoCapture
, do którego jest podłączony Dyktafon, znajduje się w pobliżu. (I517c6)
Poprawki błędów
- Naprawiono awarię, która występowała, gdy strumień był udostępniany zarówno w przypadku funkcji
VideoCapture
, jak i podglądu. Rozwiązaliśmy też problem z czarnym ekranem na STARSZANYCH urządzeniach, gdy włączone było udostępnianie transmisji. - Rozwiązano problem z dużymi obrazami JPEG na urządzeniach Samsung S7 (SM-G930T, SM-G930V). Przechwycone obrazy JPEG zawierają zbędne dane dopełnienia zera w segmencie danych skompresowanym JFIF. Spowoduje to, że przechwycone obrazy będą miały duży rozmiar. Te nadmiarowe dane dopełnienia „0” zostaną usunięte, dzięki czemu przechwycone obrazy będą miały normalne rozmiary plików. (I407b0, b/288828159)
- Rozwiązano problem z generowaniem dużych obrazów JPEG na urządzeniach Samsung S22 (SM-S901B, SM-S901B/DS) i S22+ (SM-S906B). Przechwycone obrazy JPEG zawierają zbędne dane dopełnienia zera w segmencie danych skompresowanym JFIF. Powoduje to, że plik S22 SM-S901B/DS ma duży rozmiar, około 13 MB. Te nadmiarowe dane dopełnienia „0” zostaną usunięte, dzięki czemu przechwycone obrazy będą miały normalne rozmiary plików. (I73be9, b/288828159)
- Rozwiązano problem z dużymi zdjęciami JPEG na urządzeniach Samsung A5, A52, A70 i A72. Przechwycone obrazy JPEG zawierają zbędne dane dopełnienia zera w segmencie danych skompresowanym JFIF. Przechwytywane obrazy mają bardzo duży rozmiar (np. 32 MB, a nawet 96 MB). Te nadmiarowe dane dopełnienia „0” zostaną usunięte, dzięki czemu przechwycone obrazy będą miały normalne rozmiary plików. (I97c4d, b/288828159)
- Usunięto awarię natywną występującą podczas robienia zdjęć z włączonymi rozszerzeniami (I698f5)
Wersja 1.3.0-beta02
26 lipca 2023 r.
Aplikacja androidx.camera:camera-*:1.3.0-beta02
została zwolniona. Wersja 1.3.0-beta02 zawiera te zatwierdzenia.
Poprawki błędów
- Używaj latarki jako lampy błyskowej na Pixelu 4 i 5 w celu poprawy jakości zdjęć przy słabym oświetleniu (I56ff5, b/280221967)
- Rozwiązano problem z dużymi obrazami JPEG na urządzeniach Samsung A5 (2017). Przechwycone obrazy JPEG zawierają zbędne dane dopełnienia zera w segmencie danych skompresowanym JFIF. Przechwycone obrazy mają rozmiar około 32 MB. Te nadmiarowe dane dopełnienia „0” zostaną usunięte, dzięki czemu przechwycone obrazy będą miały normalne rozmiary plików. (I29837, b/288828159)
- Rozwiązaliśmy problem, który nie uruchamiał się prawidłowo w przypadku błędu przechwytywania na problematycznych urządzeniach wymienionych w dokumencie
CaptureFailedRetryQuirk
. (I7b589)
Wersja 1.3.0-beta01
21 czerwca 2023 r.
Aplikacja androidx.camera:camera-*:1.3.0-beta01
została zwolniona. Wersja 1.3.0-beta01 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Zmieniliśmy nazwę funkcji
ResolutionSelector.Builder#setHighResolutionEnabledFlag(int)
nasetAllowedResolutionMode
i zmieniono nazwę stałychResolutionSelector#HIGH_RESOLUTION_FLAG_OFF
/ON
naPREFER_CAPTURE_RATE_OVER_HIGHER_RESOLUTION
/PREFER_HIGHER_RESOLUTION_OVER_CAPTURE_RATE
. (If84e8) - Usunięto wycofane interfejsy API
ImageAnalysis.setTargetRotationDegrees(int)
,ImageCapture.setTargetRotationDegrees(int)
iVideoCapture.setTargetRotationDegrees(int)
. (Id8e77). - Klasa
DynamicRange
reprezentuje zakres dynamiczny obrazów. Tej opcji można użyć do wybrania formatów High Dynamic Range jako danych wyjściowych odVideoCapture
doVideoCapture.Builder#setDynamicRange()
. (Ib0377) - Do interfejsu
ExtensionsManager
dodano interfejs APIisImageAnalysisSupported
, który pozwala aplikacjom określać, czy zastosowanie funkcjiImageAnalysis
można powiązać z podglądem iImageCapture
po włączeniu rozszerzeń. (I1bc63) - Nowa klasa
VideoCapabilities
uzyskana zRecorder
może być używana do wysyłania zapytań dotyczących obsługiwanych zakresów dynamicznych i jakości na potrzeby nagrywania wideo na urządzeniu. MetodygetSupportedQualities()
iisQualitySupported()
metodyQualitySelector
są wycofywane. Zamiast niej użyj metodgetSupportedQualities()
iisQualitySupported()
obiektuVideoCapabilities
. (I04014). - Nazwa
CameraController#setVideoCaptureTargetQuality()
została zmieniona nasetVideoCaptureQualitySelector
i przyjmuje argumentQualitySelector
, który zapewnia większą elastyczność konfigurowania jakości wideo. PoleCameraController#getVideoCaptureTargetQuality()
zostało odpowiednio zmienione nagetVideoCaptureQualitySelector
. (I520ed) - Usunęliśmy eksperymentalną adnotację dotyczącą funkcji wideo. Funkcje wideo są teraz stabilne. (I1a113).
Poprawki błędów
- Używaj latarki jako lampy błyskowej na modelach Samsung SM-A320, aby zwiększyć szybkość i jakość robienia zdjęć przy słabym oświetleniu. (I6a022, b/286190938)
- Dodaj obsługę formatu
ImageFormat.JPEG
dlaImageProxy.toBitmap()
. Jeśli nie można zdekodować tablicy bajtów JPEG, zwracany jest elementUnsupportedOperationException
. (I81958, b/282057603)
Wersja 1.3.0-alfa07
24 maja 2023 r.
Aplikacja androidx.camera:camera-*:1.3.0-alpha07
została zwolniona. Wersja 1.3.0-alpha07 zawiera te zatwierdzenia.
Nowe funkcje
- Nowy interfejs API
VideoCapture.Builder# setTargetFrameRate(Range)
umożliwia nagrywanie filmów z inną liczbą klatek niż domyślna. Zapytanie o dostępną liczbę klatek dla nagrań możesz wyszukać przy użyciu nowego interfejsu APICameraInfo#getSupportedFrameRates()
.
Zmiany w interfejsie API
- Zmieniliśmy nazwy stałych
ResolutionSelector#HIGH_RESOLUTION_FLAG_OFF
/ON
naALLOWED_RESOLUTIONS_NORMAL
/SLOW
i nazwę funkcji konstruktorasetHighResolutionEnabledFlag
nasetAllowedResolutionMode
. (Iae817) - Funkcja
CameraInfo#getSupportedFrameRateRanges()
zwraca teraz wartośćSet
, a nieList
, aby lepiej wskazać, że zakresy są nieuporządkowane. (I02f43) - Dodaj detektor błędów do pliku
CameraEffect
, aby naprawić błędy niemożliwe do odzyskania (Ice471) - Aby ułatwić testowanie, dodaj publiczny konstruktor w
ResolutionInfo
(If6d1c) - Dostarczono interfejs API
UseCase.snapToSurfaceRotation(int)
, który zastąpił użyciesetTargetRotationDegrees
i wycofał interfejsy APIImageAnalysis.setTargetRotationDegrees(int)
,ImageCapture.setTargetRotationDegrees(int)
iVideoCapture.setTargetRotationDegrees(int)
. (Ia9010) - Dodano nowe interfejsy API
Preview#getTargetFrameRate
iPreview.Builder#setTargetFrameRate
, które umożliwiają ustawianie i pobieranie docelowej liczby klatek na potrzeby przypadku użycia w wersji testowej (If4f22). - Działanie funkcji
VideoRecordEvent.Finalize
zostanie zakończone z kodem błęduERROR_RECORDING_GARBAGE_COLLECTED
, gdy obiektRecording
zostanie zatrzymany z powodu odśmiecania pamięci. (Iba974)
Poprawki błędów
- Poprawiono funkcję
NullPointerException
, gdy rozmiary wyjściowe w pamięci podręcznej wStreamConfigurationMapCompat
mają wartość null. (Idf124, b/282025204) - Rozwiązaliśmy problem, który polegał na tym, że
Preview.setSurfaceProvider(null)
nie wstrzymuje podglądu w rozszerzeniach (Ia903e). - Naprawiono błąd, który powodował, że podczas otwierania kamery, gdy powiązana jest zasada
VideoCapture
, wywoływany był obiektConcurrentModificationException
. (Ic8ac4)
Wersja 1.3.0-alfa06
19 kwietnia 2023 r.
Aplikacja androidx.camera:camera-*:1.3.0-alpha06
została zwolniona. Wersja 1.3.0-alpha06 zawiera te zatwierdzenia.
Nowe funkcje
- Kamera równoczesna to nowa funkcja wprowadzona w Androidzie 11, która umożliwia na przykład jednoczesne przesyłanie strumieniowe danych z kamer na urządzenie. Umożliwia ona na urządzeniu jednoczesne działanie zarówno przedniego, jak i tylnego aparatu. Aplikacja CameraX obsługuje obecnie tylko podwójne aparaty równoległe, co pozwala na jednoczesne działanie dwóch kamer z możliwością określenia maksymalnie dwóch {@link UseCase} dla każdej z nich. Maksymalna rozdzielczość to 720p lub 1440p. Więcej informacji znajdziesz pod poniższym linkiem: CameraManager#getConcurrentCameraIds()
- Przedstawiamy nowy interfejs
ResolutionSelector
API, który zapewnia dostęp do tych funkcji:- W aplikacjach można określić strategie dotyczące współczynnika proporcji i rozdzielczości, aby wybrać najlepszą rozdzielczość do swoich potrzeb.
- Wszystkie rozmiary i parametry formatu obrazu są wyrażone we współrzędnych czujnika aparatu.
- Aplikacje mogą zaimplementować filtr rozdzielczości niestandardowej, aby uporządkować obsługiwane rozmiary w odpowiedniej kolejności.
- Aplikacje mogą też umożliwiać robienie zdjęć w wysokiej rozdzielczości, aby uzyskać wyższą rozdzielczość. Pamiętaj jednak, że wysoka rozdzielczość może wydłużyć czas nagrywania.
- Dodano powielane interfejsy API:
VideoCapture
. Filmy nagrane przez:VideoCapture
domyślnie nie są powielane. Jednak podgląd z aparatu jest domyślnie powielany w przypadku przedniego aparatu. Interfejsy API powielania obrazuVideoCapture
umożliwiają wyrównywanie obrazu z podglądu z kamery podczas korzystania z przedniego aparatu. Są 3 opcje:MirrorMode
,OFF
,ON
iON_FRONT_ONLY
. Aby dopasować widok do podglądu aparatu, zalecamy użycie funkcjiON_FRONT_ONLY
, co oznacza, że odbicie lustrzane jest wyłączone dla tylnego aparatu, ale włączone dla przedniego.
Zmiany w interfejsie API
- Udostępniono nowy interfejs API
ResolutionSelector
. Aby uzyskać oczekiwane wyniki, w aplikacjach można określić strategie dotyczące współczynnika proporcji i rozdzielczości za pomocą reguł kreacji zastępczych lub niestandardowych filtrów rozdzielczości. Aplikacje mogą określić flagę umożliwiającą przechwytywanie w wysokiej rozdzielczości. Umożliwi to aplikacji CameraX wybieranie wyższych rozdzielczości podczas robienia zdjęć i nagrywania filmów. Pamiętaj jednak, że wysoka rozdzielczość może wydłużyć czas nagrywania. (Ibed95) - Zapytania dotyczące zakresów klatek na sekundę obsługiwane przez algorytm AE można teraz wysyłać w usłudze
CameraInfo#getSupportedFrameRateRanges()
. (Iaa67f) - Skonsoliduj nazwy wszystkich metod liczby klatek, używając parametru FrameRate. Popraw błąd w javadoc w
VideoCapture#getTargetFrameRate()
(I83304) - Wycofaliśmy starsze wersje interfejsów API
setTargetAspectRatio
isetTargetResolution
. Użyj nowego interfejsu APIResolutionSelector
. (I542c3) - Dodano publiczne interfejsy API do obsługi podwójnych kamer jednocześnie, w tym:
List<List<CameraInfo>> getAvailableConcurrentCameraInfos()
ConcurrentCamera bindToLifecycle(@NonNull ConcurrentCameraConfig concurrentCameraConfig)
boolean isConcurrentCameraModeOn()
orazConcurrentCameraConfig
,SingleCameraConfig
iConcurrentCamera
(Iab1c1)
- Ustaw
ImageProcessor.Response#getOutputImage
bez wartości null (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 działaniem podglądu aparatu. Oznacza to, że podgląd z tylnego aparatu nie jest odbiciem lustrzanym, ale obraz z przedniego aparatu jest odbiciem lustrzanym. (I713b6, b/194634656) - Dodaj interfejs
setTargetFrameRate()
API w interfejsachVideoCapture.Builder
igetTargetFramerate()
API wVideoCapture
(I109d4) - Ustaw rozszerzenie
SurfaceOutput
jako rozszerzenie Closable i ukryj publiczny konstruktor SurfaceOutput.Event
. (I60ea8) - Dodano:
Recording.mute
, aby dynamicznie wyciszać i wyłączać wyciszenie nagrania w trakcie przetwarzania.RecordingStats
będzie zawieraćAudioStats.AUDIO_STATE_MUTED
, gdy przetwarzane nagranie zostanie wyraźnie wyciszone. (Ie17fc) - Zmieniono wartość parametru
#setEffects()
na wartość niezerową. Dodaj interfejs API#clearEffects()
do usuwania efektów. Aby usunąć efekty, aplikacja powinna wywołać metodę#clearEffects()
. (I4b4d9) - Dodaj drugi konstruktor dla elementu
ViewfinderSurfaceRequest.Builder
, aby użyć konstruktora kopiowania (I621a7)
Poprawki błędów
- Rozwiązaliśmy problem, który powodował awarię aplikacji wywołujących interfejs Extensions API podczas zamykania aparatu (Ib27e5)
- Rozwiązaliśmy problem, który powodował, że na niektórych urządzeniach aplikacja
VideoCapture
nie mogła działać z przednim aparatem. na przykład Samsung Galaxy S23 i Xiaomi 2107113SG. (Ibec7e, b/270656244) - Rozwiązaliśmy problem, który powodował, że na Androidzie 10 lub nowszym robienie zdjęć przy użyciu pliku w folderze publicznym pamięci zewnętrznej zawsze kończyło się niepowodzeniem. Uwaga: w Androidzie 10 robienie zdjęć przy użyciu opcji Plik w folderze publicznym pamięci zewnętrznej wymaga też ustawienia
requestLegacyExternalStorage
w tagu aplikacji. (I11b2c) - Usunięto awarię
RejectedExecutionException
w systemieDefaultSurfaceProcessor
. Awaria może wystąpić, gdy powiązany jest elementVideoCapture
, a aktywność jest wstrzymana. (Idb46a, b/273713906)
Wersja 1.3.0-alfa05
22 marca 2023 r.
Aplikacja androidx.camera:camera-*:1.3.0-alpha05
została zwolniona. Wersja 1.3.0-alpha05 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Dodano interfejsy API rotacji (
VideoCapture
), w tymVideoCapture.Builder.setTargetRotation(int)
,VideoCapture.setTargetRotation(int)
,VideoCapture.setTargetRotationDegrees(int)
iVideoCapture.getTargetRotation()
. Interfejsy API są przydatne w aplikacjach, które blokują orientację urządzenia. Dodano również:ImageCapture.setTargetRotationDegrees(int)
iImageAnalysis.setTargetRotationDegrees(int)
. (Id3ffe, b/205242781) - Zezwalaj na efekty
VIDEO_CAPTURE
iPREVIEW|VIDEO_CAPTURE
. Efekty kierowane na kryteriumVIDEO_CAPTURE
zostaną zastosowane w tym przypadku użycia:VideoCapture
. Efekty skierowane do:PREVIEW|VIDEO_CAPTURE
zostaną zastosowane do udostępnionego strumienia przed skopiowaniem go do podglądu i strumieniaVideoCapture
. (Iee6f3)
Poprawki błędów
- Od Aparatu
1.2.2
: rozwiązaliśmy problem, który powodował, że rozszerzenia CameraX nie działały prawidłowo po włączeniu funkcji Protagard na niektórych urządzeniach, takich jak Pixel (I90aa2). - Naprawiono błąd
PreviewView
, który powodował, że aplikacja obsługuje orientację ekranu. Podgląd może zniekształcać się podczas obracania. Dzieje się tak tylko na niektórych urządzeniach. Można ją odtworzyć na Pixelu a4, Pixelu 5 i Pixelu 6a. (I14340, b/223488673)
Wersja 1.3.0-alfa04
22 lutego 2023 roku
Aplikacja androidx.camera:camera-*:1.3.0-alpha04
została zwolniona. Wersja 1.3.0-alpha04 zawiera te zatwierdzenia.
Nowe funkcje
Nowa funkcja umożliwiająca obsługę wcześniej nieobsługiwanych kombinacji platform przez udostępnianie jednego strumienia w wielu przypadkach użycia.
- Wcześniej podczas powiązania opcji „Podgląd, Nagrywanie filmów, Analiza obrazu” na poziomie sprzętowym aparatu PEŁNY i poniżej lub powiązanie opcji „Podgląd, Nagrywanie wideo, Robienie zdjęć” na poziomie sprzętowym LEGACY Aparat X zgłaszał
IllegalArgumentException
. - Nowy sposób działania polega na tym, że powiązania będą działać bez zgłaszania wyjątków. Zamiast tego CamX korzysta z trybu OpenGL, aby skopiować udostępniony strumień do podglądu i nagrywania wideo.
- W związku z kosztem kopii bufora aplikacji mogą wystąpić większe opóźnienia i zużycie energii.
Zmiany w interfejsie API
- Dodaj interfejs API, aby przekonwertować wymiar
ImageProxy
naBitmap
. Obsługiwany formatImageProxy
toImageFormat.YUV_420_888
iPixelFormat.RGBA_8888
. Jeśli format będzie nieprawidłowy, funkcjaIllegalArgumentException
zostanie zgłoszona. (Ic7110) - Dodaj
CoroutineCameraViewfinder
, aby umożliwić konfigurowanie wizjera za pomocą funkcji zawieszania w Kotlin. (I657bc) - Dodaj nowy konstruktor publiczny dla:
ViewfinderSurfaceRequest
. Zapewnia elastyczność, gdy użytkownik nie może podać elementuCameraCharacteristics
. (Ie6549)
Poprawki błędów
- Usunięto awarię rozszerzeń, która występowała na niektórych urządzeniach Samsung podczas zbyt szybkiego wstrzymywania lub wznawiania aplikacji (Iaca26)
Wersja 1.3.0-alfa03
25 stycznia 2023 r.
Aplikacja androidx.camera:camera-*:1.3.0-alpha03
została zwolniona. Wersja 1.3.0-alpha03 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Dodano element
CameraInfo.getIntrinsicZoomRatio
, aby określić kąt patrzenia w odniesieniu do domyślnej kamery. (IB300c) - Dodano
CameraInfo.getLensFacing
, aby zapewnić informacje skierowane do obiektywu. DodanoCameraSelector#LENS_FACING_EXTERNAL
jako eksperymentalną funkcję wyboru kamer zewnętrznych. (Icaf3e) - Dodaj
#setEffect()
do urządzeniaCameraController
, aby móc dodawać efekty do obrazu wyjściowego aparatu. (I1d21f). - Dodaj metodę
invalidate()
do projektuSurfaceRequest
. Dostawca platformy może powiadomić, że podana wcześniej platforma nie jest już prawidłowa. (IDc649). - Dodaj interfejs API
ImageProcessor
. Ten interfejs służy do wstrzykiwania efektów końcowych do potokuImageCapture
. (I575c6) - Dodano interfejs API
Recorder.Builder.setAspectRatio()
, który można połączyć z dyrektywąQualitySelector
, aby zapewnić obsługę większej liczby rozdzielczości wideo. (I8a082) - Dodano
Recorder.Builder#setTargetVideoEncodingBitRate
, aby ustawić docelowy kod kodowania wideoBitRate
iRecorder#getTargetVideoEncodingBitRate
w celu uzyskania docelowej szybkości transmisji bitów. (I5984d)
Poprawki błędów
- Naprawiono błąd
ImageCapture
, gdy nie ma lampy błyskowej i włączony jest tryb lampy błyskowej. (I9e8b4, b/263391112) - Rozwiązano 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, zanim inicjujesz kamerę, np. wywołasz
CameraController#enableTorch
, oczekujące działanie jest zapisywane w pamięci podręcznej i przesyłane po zakończeniu inicjowania. (I11e92, b/264157663)
Wersja 1.3.0-alfa02
7 grudnia 2022 r.
Aplikacja androidx.camera:camera-*:1.3.0-alpha02
została zwolniona. Wersja 1.3.0-alpha02 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- dodaj nowy interfejs API do stosowania efektu przetwarzania końcowego do wersji przedpremierowej. (Ic17d5)
- Nazwa elementu
OutputOptions.getDurationLimit
została zmieniona naOutputOptions.getDurationLimitMillis
orazOutputOptions.setDurationLimit
naOutputOptions.setDurationLimitMillis
. (I91f0c) - Dodaj zajęcia
AudioConfig
, aby obsługiwać ustawienia związane z dźwiękiem podczas nagrywania filmu. Adnotacja@RequiresPermission
została przeniesiona z funkcjistartRecording
doAudioConfig
, aby uniknąć niepotrzebnych próśb o uprawnienia w przypadkach, w których dźwięk nie jest potrzebny. (I28755) - Usuń klasy metadanych,
OnVideoSavedCallback
,OutputFileOptions
iOutputFileResults
, które nie są już używane po zastosowaniu nowego interfejsu API przechwytywania wideo. (I38cd8) - Zastosuj nowy interfejs API przechwytywania wideo. Metody
getVideoCaptureTargetSize
isetVideoCaptureTargetSize
zostały zastąpione metodamigetVideoCaptureTargetQuality
orazsetVideoCaptureTargetQuality
, ponieważ metodasetTargetResolution
nie jest już obsługiwana. (I2a1d5)
Poprawki błędów
- Usuń wycofany interfejs
core.VideoCapture
API. (I531e0) - Rozwiązaliśmy problem, który polegał na tym, że wywołanie zwrotne
onError
nie 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 z rozszerzeniami aparatu w wersji 1.1.0 lub starszej z powodu problemów z obsługą bokeh, robieniem zdjęć i nie wznawianiem podglądu. (Id3ce3).
- Naprawiono awarię natywną, która występowała, gdy na starszych urządzeniach było włączone przycinanie filmów za pomocą funkcji
ViewPort
. (I16b8a, b/251357665)
Wersja 1.3.0-alfa01
9 listopada 2022 r.
Aplikacja androidx.camera:camera-*:1.3.0-alpha01
została zwolniona. Wersja 1.3.0-alpha01 zawiera te zatwierdzenia.
Nowe funkcje
- Dokument
Camera-viewfinder
został oficjalnie opublikowany.Camera-viewfinder
udostępnia podstawowy widżet wizjera, który może wyświetlać obraz z kamery Aparatu 2. Przykład znajdziesz w przykładowym kodzie.
Zmiany w interfejsie API
- Dodano:
OutputOptions.setDurationLimit
, aby umożliwić ustawianie limitu czasu trwania filmu. Nagranie zostanie automatycznie sfinalizowane po przekroczeniu określonego limitu czasu trwania. (I902a0) - Dodaj stan błędu „
AudioStats.AUDIO_STATE_SOURCE_ERROR
” podczas nagrywania filmu. Wysyłane, gdy nie uda się skonfigurować źródła dźwięku lub wystąpi błąd. (I37410)
Poprawki błędów
- Dodaj osobliwość, aby umożliwić niektórym problematycznym urządzeniom ponowną próbę przechwycenia w przypadku wystąpienia błędów. (Id4795)
- Rozwiąż problem z czarnym ekranem w implementacji:
PreviewView
(SurfaceView
) na urządzeniuViewPager2
. W ramach poprawkiPreviewView
będzie ponownie używać obrazuSurfaceView
, jeśli żądana rozdzielczość nie zostanie zmieniona. (Ib3f27) - Obsługuj przycinanie filmów (funkcja WYSIWYG), gdy używany jest interfejs API
ViewPort
lubCameraController
. (Ifbba8, b/201085351) - Rozwiązano problem z nagrywaniem filmu zrobionego przednim aparatem na Huawei P40 Lite. (I87c57, b/250807400)
Wersja 1.2
Wersja 1.2.3
24 maja 2023 r.
Aplikacja androidx.camera:camera-*:1.2.3
została zwolniona. Wersja 1.2.3 zawiera te zatwierdzenia.
Poprawki błędów
- Rozwiązaliśmy problem, który powodował, że na niektórych urządzeniach aplikacja
VideoCapture
nie mogła działać z przednim aparatem. na przykład Samsung Galaxy S23 i Xiaomi 2107113SG. (Ibec7e, b/270656244)
Wersja 1.2.2
22 marca 2023 r.
Aplikacja androidx.camera:camera-*:1.2.2
została zwolniona. Wersja 1.2.2 zawiera te zatwierdzenia.
Poprawki błędów
- Rozwiązaliśmy problem, który powodował, że rozszerzenia CameraX nie działały prawidłowo po włączeniu Promocji na niektórych urządzeniach, takich jak Pixel (I90aa2).
Wersja 1.2.1
25 stycznia 2023 r.
Aplikacja androidx.camera:camera-*:1.2.1
została zwolniona. Wersja 1.2.1 zawiera te zatwierdzenia.
Poprawki błędów
- Rozwiązano problem z uszkodzeniem obrazu JPEG podczas zapisywania danych o lokalizacji Exif na niektórych urządzeniach Samsung z Androidem 12. (b/263289024)
Wersja 1.2.0
7 grudnia 2022 r.
Aplikacja androidx.camera:camera-*:1.2.0
została zwolniona. Wersja 1.2.0 zawiera te zatwierdzenia.
Ważne zmiany od wersji 1.1.0
- Nowa biblioteka Camera-mlkit-vision. Możesz łatwo zintegrować aplikację CameraX z wieloma funkcjami MLKit, w tym skanowaniem kodów kreskowych, wykrywaniem twarzy czy wykrywaniem tekstu. Dodano
MLKitAnalyzer
jako nowe interfejsy API. - Nowy, eksperymentalny interfejs API Zero-Shutter Lag. Optymalizuje potok przechwytywania, aby zmniejszyć czas oczekiwania 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ć zminimalizowane w porównaniu z innymi trybami robienia zdjęć. Na urządzeniach, które nie obsługująZERO_SHUTTER_LAG
, zostanie użyta zastępcza wersjaCAPTURE_MODE_MINIMIZE_LATENCY
. - Wycofaj:
android.camera.core.VideoCapture
. - Dodano
setStreamUseCase()
jako publiczny interfejs APICamera2Interop
. - Dodano wymagany poziom interfejsu API dla:
setOutputImageRotationEnabled
. - Nazwa elementu
ImageAnalysis.Analyzer#getTargetResolutionOverride()
została zmieniona naImageAnalysis.Analyzer#getDefaultTargetResolution()
. - Dodaliśmy interfejs API do ustawiania metadanych lokalizacji w zapisanym filmie.
- Poprawiono niską liczbę klatek w przypadku użycia funkcji
VideoCapture
i podglądu w formacie 16:9. - Rozwiązaliśmy problem z czarnym podglądem, który występował, gdy na niektórych urządzeniach Samsung włączone jest rozszerzenie BOKEH, a użytkownik przełącza aparaty.
- Naprawiliśmy rozciągnięty problem
Preview/VideoCapture
dotyczący Samsung J7 Prime (SM-G610M) i J7 (SM-J710MN) na urządzeniach z interfejsem API poziomu 27. - Ponieważ problem został rozwiązany, wyłączono obejście umożliwiające odwrócenie obszaru AF w poziomie w przypadku przednich aparatów na telefonie Samsung Android T.
Wersja 1.2.0-rc01
24 października 2022 r.
Aplikacja androidx.camera:camera-*:1.2.0-rc01
została zwolniona. Wersja 1.2.0-rc01 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Dodaj interfejs
setStreamUseCase
API w jednostce organizacyjnejOutputConfiguration
. Użytkownik może określić przypadek użycia strumienia dla sesji strumienia, korzystając z wewnętrznej logiki strumienia CameraX i wybierając ten przypadek użycia w celu optymalizacji odpowiednio do własnych potrzeb. (Ib1a95)
Poprawki błędów
- Naprawiliśmy rozciągnięty problem
Preview/VideoCapture
dotyczący Samsung J7 Prime (SM-G610M) i J7 (SM-J710MN) na urządzeniach z interfejsem API poziomu 27. Rozdzielczość 1920 x 1080 powoduje rozciąganie obrazówPreview/VideoCapture
. Dodano obejście pozwalające uniknąć wybierania rozdzielczości 1920 x 1080 w podglądzie lubVideoCapture
w celu uniknięcia problemu z rozciąganiem obrazu. (I0e04e). - Poprawiono niską liczbę klatek w przypadku korzystania z funkcji
VideoCapture
i podglądu w formacie 16:9 na niektórych urządzeniach Huawei. (If8c88, b/223643510) - Rozwiązaliśmy problem z otwieraniem aparatu, gdy w podglądzie nie ustawiono opcji
SurfaceProvider
. W ramach poprawki nie będzie teraz skonfigurowany podgląd bez ustawionegoSurfaceProvider
podczas sesji nagrywania z kamery. (I99681).
Wersja 1.2.0-beta02
21 września 2022 r.
Aplikacja androidx.camera:camera-*:1.2.0-beta02
została zwolniona. Wersja 1.2.0-beta02 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Dodaj wymagany poziom interfejsu API dla:
setOutputImageRotationEnabled
(I26e3e, b/240993561)
Poprawki błędów
- Ponieważ problem został rozwiązany, wyłączono obejście umożliwiające odwrócenie obszaru AF w poziomie w przypadku przednich aparatów na Androidzie T. (I05f69)
- Rozwiązaliśmy problem z czarnym podglądem, który występował, gdy na niektórych urządzeniach Samsung włączone jest rozszerzenie
BOKEH
, a użytkownik przełącza aparaty. (If6168)
Wersja 1.2.0-beta01
24 sierpnia 2022 r.
Aplikacja androidx.camera:camera-*:1.2.0-beta01
została zwolniona. Wersja 1.2.0-beta01 zawiera te zatwierdzenia.
Nowe funkcje
- Nowa biblioteka
camera-mlkit-vision
. Możesz łatwo zintegrować aplikację CameraX z wieloma funkcjami MLKit, w tym skanowaniem kodów kreskowych, wykrywaniem twarzy czy tekstem. Przykładowy kod znajdziesz tutaj. - Nowy, eksperymentalny interfejs API Zero-Shutter Lag. Optymalizuje potok przechwytywania, aby zmniejszyć czas oczekiwania przy zachowaniu dobrej jakości obrazu. Gdy tryb robienia zdjęć jest ustawiony na CAPTURE_MODE_ZERO_SHUTTER_LAG, opóźnienie między kliknięciem przycisku migawki a zrobieniem zdjęcia powinno być zminimalizowane w porównaniu z innymi trybami robienia zdjęć. Na urządzeniach, które nie obsługują trybu ZERO_SHUTTER_LAG, zostanie użyta zastępcza wartość CAPTURE_MODE_MINIMIZE_LATENCY.
ImageAnalysis.Analyzer
iMLKitAnalyzer
to oficjalne interfejsy API.- Interfejs API Exposed do ustawiania metadanych lokalizacji w zapisanym filmie.
- Zmień nazwę społeczności
ImageAnalysis.Analyzer#getTargetResolutionOverride()
naImageAnalysis.Analyzer#getDefaultTargetResolution()
.
Poprawki błędów
- Naprawiony problem z przechwytywaniem obrazu k61v1_basic_ref Alps. Przechwycone obrazy JPEG z HAL mają nieprawidłowe metadane Exif. Metadane Exif nie zawierają tagu 0xffd9 ani 0xffda, dzięki czemu
ExifInterface
prawidłowo analizuje atrybuty. Aby obejść ten problem, trzeba przechwytywać obrazy w formacie YUV, a następnie kompresować je do formatu JPEG. (I45abb)
Wersja 1.2.0-alfa04
27 lipca 2022 roku
Aplikacja androidx.camera:camera-*:1.2.0-alpha04
została zwolniona. Wersja 1.2.0-alpha04 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Zmień nazwę społeczności
ImageAnalysis.Analyzer#getTargetResolutionOverride()
naImageAnalysis.Analyzer#getDefaultTargetResolution()
. Działanie zostaje również zmienione tak, aby wartość zwrócona przez tę metodę można było zastąpić wartościąImageAnalysis#setTargetResolution()
. (If1d36) - Interfejs API Exposed do ustawiania metadanych lokalizacji w zapisanym filmie. Obiekt
android.location.Location
można ustawić za pomocą nowego interfejsu APIandroidx.camera.video.OutputOptions.Builder.setLocation(Location)
. (I313a0, b/204197544)
Poprawki błędów
- Rozwiąż problem z robieniem zdjęcia bez powiązania podglądu (Ie70b6, b/235119898)
- Naprawiono awarię w
Recorder
, która występowała podczas próby nagrywania, gdy źródło dźwięku było niedostępne. (I9f652)
Wersja 1.2.0-alfa03
29 czerwca 2022 r.
Aplikacja androidx.camera:camera-*:1.2.0-alpha03
została zwolniona. Wersja 1.2.0-alpha03 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Usunięto eksperymentalną adnotację dotyczącą wersji
ImageAnalysis.Analyzer
iMLKitAnalyzer
. (I0ff22)
Poprawki błędów
- Dodano domyślny czas oczekiwania autofokusu (5000 ms) do zakończenia części AF z wartością
isFocusSuccessful
false (fałsz), jeśliFocusMeteringAction
nie zostanie anulowany, a część AF nie złącza się w czasie trwania. (Ibc2e3) - Rozwiąż problem z robieniem zdjęcia bez powiązania podglądu (I1d3a2, b/235119898)
- Włączono zaawansowane wdrożenie rozszerzenia i zaktualizuj interfejs rozszerzeń do obsługi rozszerzenia obsługi aparatu CameraX do wersji 1.2 (I92256)
Wersja 1.2.0-alfa02
1 czerwca 2022 r.
Aplikacja androidx.camera:camera-*:1.2.0-alpha02
została zwolniona. Wersja 1.2.0-alpha02 zawiera te zatwierdzenia.
Nowe funkcje
- Udostępnij interfejs CameraX Zero-Shutter Lag API w fazie eksperymentalnej.
Zmiany w interfejsie API
- Dodaj nowy tryb przechwytywania ekranu
CAPTURE_MODE_ZERO_SHUTTER_LAG
w usłudzeImageCapture
i dodaj parametrisZslSupported
w poluCameraInfo
, aby zapytać o możliwości urządzenia. TrybCAPTURE_MODE_ZERO_SHUTTER_LAG
ma na celu zapewnienie minimalnego opóźnienia w przypadku błyskawicznego przechwytywania. Implementacja opiera się na buforze pierścieniowym, który zapisuje pośrednie wyniki rejestracji w celu ich późniejszego przetworzenia, gdy użytkownik naciska przyciski w celu zrobienia zdjęcia. Jeśli {@link VideoCapture} jest powiązany lub tryb lampy błyskowej nie jest WYŁ. albo WŁĄCZONE rozszerzenie OEM, ten tryb zostanie wyłączony automatycznie. (I9ae74) - Dodaj metodę
ImageAnalysis.getBackgroundExecutor()
(Icc945)
Poprawki błędów
- Naprawiony problem z wyłączaniem latarki na zgłoszonych urządzeniach za pomocą funkcji
ImageCapture
. (Ib5eb5, b/228272227) - Naprawiono błąd, który powodował, że podczas pobierania cechy
CONTROL_ZOOM_RATIO_RANGE
funkcjaAssertionError
nie była obsługiwana (/Ia248a, b/231701345)
Wersja 1.2.0-alfa01
18 maja 2022 r.
Aplikacja androidx.camera:camera-*:1.2.0-alpha01
została zwolniona. Wersja 1.2.0-alpha01 zawiera te zatwierdzenia.
Nowe funkcje
- Udostępniliśmy nową bibliotekę Camera-mlkit-vision
Poprawki błędów
- Naprawiono
QualitySelector
nie nagrywał filmu UHD, gdy włączona jest strategia zastępcza. Problem występuje, gdy usługaVideoCapture
jest powiązana z elementemImageCapture
i podglądem na urządzeniu z kamerą na poziomie PEŁNYM lub wyższym. Strategia zastępczaQualitySelector
sprawia, żeVideoCapture
nieprawidłowo uzyskuje rozdzielczość FHD. Rozdzielczość UHD jest obsługiwana w tej kombinacji przypadków użycia i powinna zostać zastosowana. (I0e788, b/230651237) - Poprawiono
NullPointerException
w dniuImageCapture.takePicture()
. (I92366, b/230454568, b/229766155) - Naprawianie asynchronicznego wstrzymywania działania
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.
Aplikacja androidx.camera:camera-*:1.1.0
została zwolniona. Wersja 1.1.0 zawiera te zatwierdzenia.
Ważne zmiany od wersji 1.0.0
- Biblioteki widoku lądowego, biblioteki rozszerzeń i przechwytywania filmów wideo były pierwszą wersją RC. Od 1.1.0 do beta01 wszystkie biblioteki CameraX będą miały ten sam numer wersji. Dzięki temu deweloperzy będą mogli łatwiej śledzić wersje i zmniejszyć złożoność macierzy zgodności dużych wersji.
- Wprowadziliśmy nowe publiczne interfejsy API i funkcje, w tym:
- Dodaj oficjalną bibliotekę filmów z kamerą, aby ułatwić korzystanie z nagrywania filmów.
- Możliwość konwersji i obrotu YUV na RGB (
ImageAnalysis.Builder.setOutputImageRotationEnabled
isetOutputImageFormat
) - Możesz zezwolić aplikacjom CameraX na wznawianie działania kamery, gdy inna aplikacja zakłóca działanie kamery, a ustawienie ostrości zostało przywrócone, aby zapewnić obsługę trybu wielu okien.
- Rozwiązanie niektórych problemów z podglądem zapewnia, że CameraX będzie dobrze działać na urządzeniach składanych.
- Dodano interfejs API
CameraState
, który będzie dostępny przez CameraInfo. - Dodano interfejs API
ProcessCameraProvider.getAvailableCameraInfos()
do bezpośredniego pobierania informacji o dostępnych kamerach - Wyjściowy format JPEG dla elementu
ImageCapture#OnImageCapturedCallback
, gdy są włączone rozszerzenia. - W
CameraInfo
dodano interfejs APIisFocusMeteringSupported
, który umożliwia aplikacjom sprawdzanie, czy dany obiektFocusMeteringAction
jest obsługiwany przez bieżącą kamerę. - Udostępniono interfejs
getResolutionInfo
API, aby dostarczyć informacje o rozwiązaniu dla wersji przedpremierowej,ImageCapture
iImageAnalysis
. - Dodano nowy interfejs API
ImageCapture.Builder#setJpegQuality
, który umożliwia zmianę jakości kompresji obrazu wyjściowego JPEG podczas robienia zdjęć. - Dodano
CameraSelector#filter
do publicznego interfejsu API w celu filtrowania listyCameraInfos
na podstawieCameraSelector
. - Dodano:
Camera2CameraControl.clearCaptureRequestOptions
do usuwania dotychczasowych opcji żądania zapisu. - Dodano eksperymentalny interfejs API do korzystania z
CameraController
z zewnętrznymi bibliotekami przetwarzania obrazów, np. MLKit. - Dodano eksperymentalny interfejs API
CameraInfo#getCameraSelector()
, który zwraca unikalny dla kamery parametrCameraSelector
- Przekształcenie kilku eksperymentalnych interfejsów API w formalne publiczne interfejsy API
- Adnotacja
@Experimental
została zastąpiona@RequiresOptIn
eksperymentalnymi interfejsami API. Do wywoływania eksperymentalnych interfejsów API używaj polecenia androidx.annotation.OptIn zamiast wycofanego interfejsu androidx.annotation.experimental.Use Experimental. - Przekształcono te eksperymentalne interfejsy API do oficjalnych interfejsów API:
CameraXConfig.Builder#setAvailableCamerasLimiter()
,CameraXConfig.Builder#setMinimumLoggingLevel()
,CameraXconfig.Builder#setSchedulerHandler()
,CameraXConfig#getAvailableCamerasLimiter()
,CameraXConfig#getMinimumLoggingLevel()
,CameraXConfig#getCameraExecutor()
,CameraXConfig#getSchedulerHandler()
, @ExperimentalCameraFilter
interfejsów API- eksperymentalnych interfejsów API kompensacji ekspozycji.
- Promowanie eksperymentalnego interfejsu API
UseCaseGroup
do obsługi rdzenia kamery, cyklu życia aparatu i filmu z kamerą. DodanoViewPort#getLayoutDirection
,ViewPort.Builder#setLayoutDirection
iViewPort.Builder#setScaleType
do dostosowania widocznego obszaru. - Zmieniono
ExperimentalUseCaseGroupLifecycle
na formalne publiczne interfejsy API. - Zmiany w istniejących interfejsach API
Renamed MediaStoreOutputOptions.getCollection
, byMediaStoreOutputOptions.getCollectionUri
.- Nazwa funkcji
ActiveRecording
została zmieniona na „Nagrywanie”, aby zmniejszyć szczegółowość. - Interfejs API twórcy
QualitySelector
został zmieniony na interfejs API oparty na listach
Poprawki błędów
- Naprawiono błąd
YuvToJpegProcessor
EOFException
, gdy włączony jest tryb rozszerzenia i trybImageCapture#CAPTURE_MODE_MAX_QUALITY
. - Nie udało się skonfigurować poprawionego kodeka, ponieważ nagrywanie wideo jest zamykane
- Stały format rozciągniętego podglądu/obrazu wideo podczas nagrywania w rozdzielczości FHD
- Rozwiązanie problemu z brakiem synchronizacji dźwięku/obrazu po wstrzymaniu i wznowieniu działania na niektórych urządzeniach
- Naprawiono błąd, który powodował, że lampa błyskowa uruchamiana jest po dotknięciu, aby ustawić ostrość (
startFocusAndMetering
), gdy lampa błyskowa jest automatyczna lub zawsze włączona przy słabym oświetleniu.
Wersja 1.1.0-rc02
1 czerwca 2022 r.
Aplikacja androidx.camera:camera-*:1.1.0-rc02
została zwolniona. Wersja 1.1.0-rc02 zawiera te zatwierdzenia.
Poprawki błędów
- Poprawiono
NullPointerException
w dniuImageCapture.takePicture()
. (I92366, b/230454568, b/229766155) - Naprawiono błąd, który powodował, że podczas pobierania cechy
CONTROL_ZOOM_RATIO_RANGE
nie była obsługiwana funkcjaAssertionError
. (Ia248a, b/231701345)
Wersja 1.1.0-rc01
11 maja 2022 roku
Aplikacja androidx.camera:camera-*:1.1.0-rc01
została zwolniona. Wersja 1.1.0-rc01 zawiera te zatwierdzenia.
Nowe funkcje
- Opublikuj pierwszą wersję RC dla obrazu z kamery, obrazu z kamery i rozszerzenia kamery
Poprawki błędów
- Rozwiązaliśmy problem, który powodował, że kodek wideo nie był zwalniany po odblokowaniu zasady
VideoCapture<Recorder>
, co powodowało problemy podczas nagrywania przy użyciuMediaCodec.CodecException
, zwłaszcza na urządzeniach z interfejsem API 21–22.VideoCapture<Recorder>
(Ie7f68) - Poprawione obrazy obiektu
CameraExtensionsActivity
nie są usuwane w usłudzeImageCaptureTest
Wersja 1.1.0-beta03
6 kwietnia 2022 roku
Aplikacja androidx.camera:camera-*:1.1.0-beta03
została zwolniona. Wersja 1.1.0-beta03 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Ograniczono konstruktor
CaptureRequestOptions
. (I261b6) - Dodano eksperymentalny interfejs API do korzystania z
CameraController
z zewnętrznymi bibliotekami przetwarzania obrazów, np. MLKit (I4ea71)
Poprawki błędów
- Rozwiązaliśmy problem z przewijaniem podglądu w
PreviewView
, gdy aktywność nie została uruchomiona ponownie po obróceniu urządzeń w trybie wielu okien. (I1ea36, b/223488673) - Rozwiązanie problemu polegającego na tym, że po przywróceniu ostrości z powrotem na aplikację nie można wznowić działania aparatu, gdy (1) inna aplikacja o wysokim priorytecie otworzy inny aparat, (2) urządzenie to Samsung Android 12. (I7e9f2)
- Obejście dostępne na urządzeniach, które ulegają awarii podczas sprawdzania dostępności pamięci Flash. W tych urządzeniach nie będzie dostępna latarka. (If26a3, b/216667482)
- Rozwiąż
AbstractMethodError
problem, który wystąpił, gdy aplikacje używają rozszerzeń i włączyły Promocję. (I7cbaf, b/222726805) - Wymuś wyłączenie trybu rozszerzenia bokeh na urządzeniu Motorola Razr 5G. Powoduje to problem z czarnym ekranem podglądu. (I35d49)
- Rozwiązaliśmy problem z brakiem synchronizacji dźwięku/obrazu po wstrzymaniu i wznowieniu działania na niektórych urządzeniach Samsung przed wprowadzeniem interfejsu API 29. (I64622, b/202798609, b/202798572)
- Rozwiązano problem z brakiem synchronizacji dźwięku/obrazu po wstrzymaniu i wznowieniu działania na urządzeniu Sony G3125. (I2a1a5, b/202799148)
- Naprawiono awarię, która występowała w Dyktafonie (
InvalidConfigException
). Ta poprawka tylko zapobiega awariom aplikacji, ale nie rozwiązuje problemu przyczyny błęduInvalidConfigException
. Jeśli nadal nie można skonfigurować urządzeniaRecorder
, po rozpoczęciu nagrywania aplikacje otrzymają wywołanie zwrotne o błędzie. (I89c29, b/213617227)
Wkład z zewnątrz
- zaktualizowano :compose:ui:ui-test api (updateApi) w związku z migracją test-coroutines-lib (I3366d)
Wersja 1.1.0-beta02
23 lutego 2022 r.
Aplikacja androidx.camera:camera-*:1.1.0-beta02
została zwolniona. Wersja 1.1.0-beta02 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Dodano możliwość określania fizycznego identyfikatora aparatu za pomocą funkcji Camera2Interop. (I5aed8)
Poprawki błędów
- Naprawiono problem z podglądem rozciągniętym w urządzeniu Oppo Find N (I7d004)
- Naprawiono błąd zniekształcenia podglądu w przypadku telefonu Galaxy J7 Prime. (I4C500)
- Aby znaleźć koder wideo, użyj zgodnej szybkości transmisji bitów. (D969052)
Wersja 1.1.0-beta01
26 stycznia 2022 r.
Aplikacja androidx.camera:camera-*:1.1.0-beta01
została zwolniona. Wersja 1.1.0-beta01 zawiera te zatwierdzenia.
Nowe funkcje
- Od 1.1.0 do beta01 wszystkie biblioteki CameraX będą miały ten sam numer wersji. Pomoże to deweloperom łatwiej śledzić wersje i zmniejszyć złożoność dużej macierzy zgodności wersji.
Zmiany w interfejsie API
- Dodano
Camera2CameraControl.clearCaptureRequestOptions
w celu wyczyszczenia dotychczasowych opcji żądania zapisu. (Ifa07d)
Poprawki błędów
- Usunięto awarię występującej podczas nagrywania filmu na niektórych urządzeniach z systemem starszym niż Android O(API 26). (I88fdf, b/212328261)
- Rozwiązaliśmy problem z nieprawidłowym obszarem AF podczas korzystania z
cameraControl#startFocusAndMetering()
przy użyciu przedniego aparatu w urządzeniach Samsung (Ifbf59, b/210548792) - Używaj latarki jako lampy błyskowej na Pixelu 3a i Pixelu 3a XL, aby zwiększyć szybkość i jakość robienia zdjęć w ciemności (Ib12b6, b/211474332).
- Aplikacje mogą wznawiać pracę kamery, gdy kamera zostanie zakłócona przez inną aplikację o wyższym priorytecie w trybie wielu okien, a fokus zostanie ponownie ustawiony na aplikację. Pamiętaj, że zmiana ostrości i ponowne włączenie kamery może trochę potrwać(od 1 do 10 sekund lub więcej) ze względu na problemy z strukturą. (I4d092)
Wersja 1.1.0-alfa12
15 grudnia 2021 roku
Aplikacja androidx.camera:camera-*:1.1.0-alpha12
została zwolniona. Wersja 1.1.0-alpha12 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Usunęliśmy niepotrzebne adnotacje
@RequiresApi(21)
z wewnętrznych klas/interfejsów. (I8e286, b/204917951) - Stałe jakości i stałe strategii kreacji zastępczej w polu
QualitySelector
zostały zmienione, by były reprezentowane przez obiekty klas. Na przykładQualitySelector.QUALITY_HD
zmienia się naQuality.HD
, aQualitySelector.FALLBACK_STRATEGY_LOWER
zostaje zmieniony na instancję zwracaną przezFallbackStrategy.lowerQualityOrHigherThan(Quality)
. Interfejs API używany do tworzeniaQualitySelector
został zmieniony na interfejs API oparty na listach. Nowy interfejs APIQualitySelector.fromOrderedList(List<Quality>)
będzie się odwoływać do kolejności na liście jakości danych wejściowych, a nie do kolejności utworzonej przezQualitySelector.Procedure
.QualitySelector.Procedure
zajęcia zostały usunięte. (I43343) - Zasób
PendingRecording.withEventListener()
został usunięty. Detektor zdarzeń należy teraz przekazać do interfejsuPendingRecording.start()
. To wymaganie dotyczące detektora zdarzeń ma zachęcać do obsługi błędów asynchronicznych, które są zgłaszane w zdarzeniuVideoRecordEvent.Finalize
. (I1e71d) - Nazwa funkcji
ActiveRecording
została zmieniona naRecording
, aby zmniejszyć szczegółowość. (I77ceb)
Poprawki błędów
- Rozwiązaliśmy problem z niedoświetleniem zdjęć w trybie
FLASH_AUTO
na Pixelu 3a i Pixelu 3a XL (I13f19, b/205373142) - Do określania rozmiaru podglądu
Resolution
zawsze używaj najnowszego rozmiaru wyświetlacza. (I4a694) - Odfiltrowane kamery, które nie mają funkcji
REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE
. Kamery z funkcjąREQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE
mają minimalny zestaw funkcji obsługiwanych przez każde urządzenie. Kamera bez funkcjiREQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE
może być przeznaczona do obsługi specjalnych funkcji i nie obsługuje standardowych kolorów.CameraX
nie obsługuje funkcjiPreview
,ImageCapture
,ImageAnalysis
aniVideoCapture
tych kamer. dlatego należy odfiltrować te kamery, aby uniknąć nieprawidłowego użycia urządzenia. (Ib8cda) - Funkcja
CameraSelector#filter
nie zwraca już poleceniaIllegalArgumentException
, gdy zbiór wyników jest pusty. (I27804) - Do wybierania ustawień kodera na podstawie profili określonych przez OEM używana jest teraz inteligentniejsza heurystyka. (Iaeef0)
- Po rozpoczęciu nagrywania filmu UHD na Pixelu 1 w wersji przedpremierowej pojawią się kolorowe linie z przeplotem. (I833c6, b/205340278)
Wersja 1.1.0-alfa11
17 listopada 2021 r.
Aplikacja androidx.camera:camera-*:1.1.0-alpha11
została zwolniona. Wersja 1.1.0-alpha11 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Do publicznego interfejsu API dodano funkcję CameraSelector#filter, która umożliwia filtrowanie listy obiektów CameraInfo na podstawie elementu CameraSelector. (I105d0)
Dodano interfejs API setoutputImageRotationEnabled do konfiguracji ImageAnalysis. Użytkownik może włączyć obrót bufora obrazu YUV/RGB. Stopień obrotu to względny obrót obliczany na podstawie obrotu czujnika i docelowego obrotu, który zapewnia wyprzedzenie obrazu.
Dodano interfejs API setoutputImageRotationEnabled do konfiguracji ImageAnalysis. Użytkownik może włączyć obrót bufora obrazu YUV/RGB. Stopień obrotu to względny obrót obliczany na podstawie obrotu czujnika i docelowego obrotu, który zapewnia wyprzedzenie obrazu.
Dodaj w ImageInfo interfejs API
getSensorToBufferTransformMatrix
. Zwracana macierz jest mapowaniem współrzędnych czujnika na współrzędne bufora, czyli od wartościCameraCharacteristics.SENSOR_INFO_ACTIVE_ARRAY_SIZE
do(0, 0, image.getWidth, image.getHeight)
. Macierz może posłużyć do mapowania współrzędnych z jednego obiektu {UseCase} na inne. Na przykład mapowanie współrzędnych twarzy wykrytej za pomocą analizy obrazów do podglądu. (I9ff1e)Dodano nowy interfejs API ImageCapture.Builder#setJpegQuality, który umożliwia zmianę jakości kompresji obrazu wyjściowego JPEG podczas robienia zdjęcia. (I8dcf4)
Zmieniono nazwę MediaStoreoutputOptions.getCollection na MediaStoreoutputOptions.getCollectionUri. (I16639)
Poprawki błędów
- Naprawiono błąd, który powodował, że lampa błyskowa uruchamiała się podczas dotykania, aby ustawić ostrość (startFocusAndMetering), gdy lampa błyskowa jest automatyczna lub zawsze włączona przy słabym oświetleniu. (Id4c11).
- Aby zmniejszyć opóźnienie, wyłączono HDR+ na Pixelu 2 XL / Pixelu 3 XL w trybie MINIMIZE_LATENCY. (Ib6270, b/203505523)
Wkład z zewnątrz
Wersja 1.1.0-alfa10
13 października 2021 r.
Aplikacja androidx.camera:camera-*:1.1.0-alpha10
została zwolniona. Wersja 1.1.0-alpha10 zawiera te zatwierdzenia.
Nowe funkcje
- Oficjalnie opublikowano
androidx.camera:camera-video:1.1.0-alpha10
jako pierwszą wersję alfa usługi wideo. W kolejnych wersjach występuje kilka znanych problemów, które trzeba rozwiązać.
Zmiany w interfejsie API
- Dodano adnotację
@RequiresApi(21)
do wszystkich klas CameraX i usunięto parametr minSdkVersion z pliku AndroidManifest.xml. Pozwoli to na łatwą integrację rdzeni kamery z aplikacjami, które mają wartość minSdkVersion mniejszą niż 21, ale chcą używać warunkowo ścieżek kodu, które korzystają z interfejsu API 21 lub nowszego. W przypadku aplikacji z minSdkVersion w wersji 21 lub nowszej ta zmiana nie wymaga żadnych działań. (Ie7f2e, b/200599470)
Poprawki błędów
- Zgłoś wyjątek InitializationException, aby aplikacja mogła płynnie obsługiwać błąd AssertionError, który wystąpił podczas tworzenia klasy CameraCharacterifics. (Ibec79)
Wersja 1.1.0-alfa09
29 września 2021 r.
Opublikowano 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
. Wersja 1.1.0-alpha09 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Adnotacja ExperimentalUseCaseGroup została usunięta, ponieważ interfejsy API nie są już eksperymentalne. (I01ef5)
Poprawki błędów
- Rozwiąż problem z rozmyciem zrobionych zdjęć w trybie
MAXIMIZE_QUALITY
. (I173a9, b/193823892) - Rozwiązano problem z zatrzymywaniem się aparatu na telefonie Samsung Galaxy J5 po zrobieniu zdjęć z włączoną lub automatyczną lampą błyskową w ciemnym otoczeniu (I3aab9)
- Jeśli w przypadku ImageCapture jest wymagane przycięcie, skompresuj przycięty wyjściowy obraz z określonym poziomem jakości JPEG zgodnie z ustawionym trybem przechwytywania. Jeśli tryb przechwytywania to
CAPTURE_MODE_MINIMIZE_LATENCY
, jakość kompresji JPEG będzie wynosić 95. Jeśli tryb przechwytywania toCAPTURE_MODE_MAXIMIZE_QUALITY
, jakość kompresji JPEG będzie wynosić 100. (Ieb37c, b/142856426)
Wersja 1.1.0-alfa08
18 sierpnia 2021 r.
Opublikowano 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
. Wersja 1.1.0-alpha08 zawiera te zatwierdzenia.
Nowe funkcje
- Dodano interfejs API setExitImageFormat na potrzeby konfiguracji analizy obrazu. Użytkownik może wybrać opcję ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888 lub ImageAnalysis.OUTPUT_IMAGE_FORMAT_RGBA_8888. Domyślnie wybrana będzie analiza 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
- Ekran podglądu naprawionego podglądu jest zbyt jasny na telefonie Huawei P20 Lite. Ten problem występuje tylko wtedy, gdy używasz niektórych specjalnych rozdzielczości podglądu w połączeniu z dużą wartością powiększenia. (Idefce, b/192129158)
- Naprawiono błąd polegający na tym, że na niektórych urządzeniach lampa błyskowa nie działa, gdy ustawiono tryb lampy błyskowej na FLASH_MODE_ON, a następnie robienie zdjęć. (Ieb49b)
- Naprawiono błąd polegający na tym, że podczas robienia zdjęć podgląd był na chwilę wstrzymywany, jeśli powiązane są funkcje VideoCapture, ImageCapture i Preview (Podgląd). (I56197, b/193864120)
- Umożliwia Analizie obrazów wybór rozdzielczości większej niż 1080p. Urządzenie o wyższym poziomie LIMITED może obsługiwać rozdzielczość rozmiaru RECORD na potrzeby analizy obrazów, gdy jest ona powiązana z funkcjami Podgląd i Przechwytywanie obrazu. W efekcie wybrana rozdzielczość dla funkcji ImageCapture musi też mieć format RECORD. Aby wybrać rozdzielczość rozmiaru RECORD na potrzeby Analizy obrazu, musisz ustawić docelowy rozmiar RECORD z użyciem rozdzielczości obrazu RECORD. Wskazuje to, że aplikacja wyraźnie rozumie ten problem i wola, aby Analiza obrazów miała większą rozdzielczość, a nie MAKSYMALNĄ rozdzielczość. Definicje rozmiarów RECORD i MAKSYMALNE oraz więcej informacji znajdziesz na https://developer.android.com/reference/android/hardware/camera2/CameraDevice#regular-capture. Rozmiar rekordu RECORD odnosi się do maksymalnej obsługiwanej rozdzielczości nagrywania w aparacie, określonej przez parametr CamcorderProfile. Rozmiar MAKSYMALNY odnosi się do maksymalnej rozdzielczości wyjściowej kamery z tego formatu lub miejsca docelowego określonej w StreamConfigurationMap.getoutputSizes(int). (I1ee97, b/192911449)
- Dodaj dane Exif do zdjęcia. (I01ff0, b/193342619)
- Jeśli miejscem zapisu jest plik, w programie ImageCapture zwracany jest identyfikator URI zapisanego obrazu. (Ib5b49, b/149241379)
- Naprawiono błąd, który powodował, że na wielu urządzeniach obrazy zrobione z użyciem lampy błyskowej były ciemne. (I4e510)
Wersja 1.1.0-alfa07
21 lipca 2021 r.
Opublikowano 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
. Wersja 1.1.0-alpha07 zawiera te zatwierdzenia.
Poprawki błędów
- Rozwiązano problem z zatrzymywaniem się aparatu w telefonie Samsung Galaxy Note 5 po zrobieniu zdjęć z włączoną lub automatyczną lampą błyskową w ciemnym otoczeniu (If6871)
- Rozwiązaliśmy problem z wyjątkiem
YuvToJpegProcessor
EOFException, gdy włączony jest tryb rozszerzenia i włączony jest trybImageCapture#CAPTURE_MODE_MAX_QUALITY
. (I538bd, b/192017012)
Wersja 1.1.0-alfa06
30 czerwca 2021 r.
Opublikowano 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
. Wersja 1.1.0-alpha06 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Promowanie eksperymentalnych interfejsów API kompensacji ekspozycji na rdzenie aparatu (I08ee8)
- Dodano interfejs API isFocusMeteringSupported w aplikacji CameraInfo, który pozwala aplikacjom na sprawdzanie, czy dane ustawienie FocusMeteringAction jest obsługiwane przez bieżącą kamerę. (Ib45ae, b/188606490)
- Ujawniony interfejs API getRozdzielczośćInfo do dostarczania informacji o rozdzielczości dla funkcji Preview, ImageCapture i ImageAnalysis. (I2b613, b/188600718)
- Te eksperymentalne interfejsy API zostały awansowane do oficjalnych interfejsów API: CameraXConfig.Builder#setAvailableCamerasLimiter(), CameraXConfig.Builder#setMinimumLoggingLevel(), CameraXconfig.Builder#setSchedulerHandler(), CameraXConfig#getAvailableCamerasLimiter(), CameraXConfig#getMinimumLoggingLevel(), CameraXConfig#getScheduleExecutor(),
- Udostępniono interfejs CameraProvider w celu zapewnienia dostępu do zestawu kamer. (I1a7b1).
- Promuj eksperymentalny interfejs API UseCaseGroup API na potrzeby obsługi rdzenia kamery, cyklu życia kamery i nagrywania filmów. Dodano
ViewPort#getLayoutDirection
,ViewPort.Builder#setLayoutDirection
iViewPort.Builder#setScaleType
do dostosowania widocznego obszaru. (I7cee8)
Wersja 1.1.0-alfa05
2 czerwca 2021 r.
Opublikowano 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
. Wersja 1.1.0-alpha05 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Usunięto
Camera2CameraFilter
zajęcia. W razie potrzeby zaproponuj ustawienie kamery według parametru CameraFilter i pobrania w razie potrzeby innych informacji związanych z Aparatem 2 za pomocą funkcji Camera2CameraInfo. (Ib887c) - Interfejsy API
ExperimentalCameraFilter
są obecnie w fazie eksperymentalnej i stają się formalne. Można ich używać bez adnotacji z adnotacjami. (I4bc94) - Dodano interfejs API stanu aparatu dostępny przez
CameraInfo#getCameraState()
. (Ia86b4) - Dodano eksperymentalny interfejs API
CameraInfo#getCameraSelector()
, który zwraca unikalny element aparatu na aparat (I77f9f).
Poprawki błędów
- Rozwiązano problem z zwracaniem wartości ListenableFuture w metodzie setZoomRatio i setLinearZoom na niektórych urządzeniach z Androidem 11 (I716d7)
- Szybsze przełączanie aparatu i zmniejszaj liczbę błędów występujących w aparacie (I34c99)
- Zastąpiono element ExperimentalUseCaseGroupLifecycle [eksperymentalny_typ_użytkowania_zbiorczego przypadku]. (I3b2ef, b/159033688)
Wersja 1.1.0-alfa04
21 kwietnia 2021 r.
Opublikowano 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
. Wersja 1.1.0-alpha04 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawiono wyciek pamięci spowodowany tym, że wiele wątków jednocześnie uzyskuje dostęp do tej samej kolekcji. Wyciek pamięci może spowodować, że aktywność lub fragment zostaną zachowane w instancji podglądu. (I7b4b8)
- Adnotacja
@Experimental
została zastąpiona@RequiresOptIn
eksperymentalnymi interfejsami API. Do wywoływania eksperymentalnych interfejsów API używaj interfejsuandroidx.annotation.OptIn
zamiast wycofanego interfejsuandroidx.annotation.experimental.UseExperimental
. (Iff226) - Poprawione robienie zdjęć z włączoną lampą błyskową/automatycznym robienie rozmytych zdjęć na telefonie Samsung Galaxy S7. (I30001)
- Dodano interfejs API CameraState, który będzie dostępny przez CameraInfo. (I75392)
Wersja 1.1.0-alfa03
24 marca 2021 r.
Opublikowano 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
. Wersja 1.1.0-alpha03 zawiera te zatwierdzenia.
Poprawki błędów
- Wyjściowy format JPEG dla
ImageCapture#OnImageCapturedCallback
, gdy włączone są tryby rozszerzeń. (I0d7b1) - Naprawiono błąd inicjowania na urządzeniach UMIDIGI BISON (I57d9e, b/180818665)
- Poprawiono rozciągnięty podgląd Samsung A3 w widoku podglądu. (Iacb30, b/180121821)
Wersja 1.1.0-alfa02
24 lutego 2021 r.
Opublikowano 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
. Wersja 1.1.0-alpha02 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Dodano interfejs API
ProcessCameraProvider.getAvailableCameraInfos()
umożliwiający bezpośrednie pobieranie informacji o dostępnych aparatach (są to wszystkie kamery urządzenia lub te wybrane za pomocą metodyCameraSelector
podanej w komponencieCameraXConfig.Builder.setAvailableCamerasLimiter(CameraSelector)
). (Ieac08)
Poprawki błędów
- Aplikacja CameraX próbuje teraz wymusić otwarcie kamery przy pierwszej próbie. Może to spowodować, że aplikacja CameraX złoży ją z dala od innych klientów, gdy aplikacja ma wyższy priorytet. (Iab069, b/175820568)
- Usunięto błąd testu Robolectric, który występował, gdy w komponencie CameraXConfig jest używany setAvailableCamerasLimiter. (Ice307)
- Ta zmiana stanowi wyjątek, jeśli kolejka obrazów w Analizie obrazów jest wyczerpana. Dlatego zamiast ulegać awarii, możesz zauważyć, że inne przypadki użycia się zawieszają lub działają wolno, np. zablokowany lub powolny podgląd. (Ic12da, b/175851631)
- Naprawiono rozszerzenie ExtensionsErrorListener do zgłaszania błędów, gdy powiązany jest tylko podgląd lub przechwytywanie obrazu. (I5ae39)
- Naprawiono spadek wydajności funkcji Robienie zdjęć przez usunięcie weryfikacji zapisanej lokalizacji obrazu przed jego zrobieniem. Jeśli po wprowadzeniu tej zmiany miejsce docelowe zapisu jest nieprawidłowe, uzyskanie odpowiedzi o błędzie będzie trwało dłużej, ponieważ po zrobieniu zdjęcia zostanie podjęta próba zapisania obrazu. (I1fd4e, b/177061560)
- Poprawiono regresję wydajności funkcji ImageCapture za pomocą typu „Plik” typu outputFileOptions. (I5164a, b/177061560)
- Dokumentacja została zaktualizowana, tak aby nie zalecała używania funkcji
ProcessCameraProvider.configureInstance(...)
z kodu biblioteki. (Ib8a9f)
Wersja 1.1.0-alfa01
27 stycznia 2021 r.
Opublikowano 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
. Wersja 1.1.0-alpha01 zawiera te zatwierdzenia.
Poprawki błędów
- Obejście problemu z przerwanymi, uszkodzonymi danymi JPEG plikami JPEG w przypadku tylnego aparatu SM-G930T. (I52001, b/159831206)
- Rozwiązaliśmy
IllegalArgumentException
problem, który występował, gdy wszystkie obsługiwane rozmiary podglądu były mniejsze niż 640 x 480, a rozmiar wyświetlacza większy niż 640 x 480. (I2a63c, b/150506192) - Zasoby w bibliotekach, które nie mają jawnie zadeklarowanych zasobów publicznych (np. w pliku public.xml), są teraz domyślnie prywatne. (Ia1dcc, b/170882230)
Camera-Camera2, Camera-Core i Camera-Lifecycle wersja 1.0.2
Wersja 1.0.2
29 września 2021 r.
Opublikowano androidx.camera:camera-camera2:1.0.2
, androidx.camera:camera-core:1.0.2
i androidx.camera:camera-lifecycle:1.0.2
. Wersja 1.0.2 zawiera te zatwierdzenia.
Poprawki błędów
- Rozwiąż problem z rozmyciem zrobionych zdjęć w trybie
MAXIMIZE_QUALITY
. (I173a9, b/193823892) - Naprawiono błąd, który powodował, że na wielu urządzeniach obrazy zrobione przy użyciu lampy błyskowej były ciemne. (I4e510)
Camera-Camera2, Camera-Core i Camera-Lifecycle wersja 1.0.1
Wersja 1.0.1
21 lipca 2021 r.
Opublikowano androidx.camera:camera-camera2:1.0.1
, androidx.camera:camera-core:1.0.1
i androidx.camera:camera-lifecycle:1.0.1
. Wersja 1.0.1 zawiera te zatwierdzenia.
Poprawki błędów
Rozwiązaliśmy problem z zwracaniem wartości
ListenableFuture
w funkcjachsetZoomRatio
isetLinearZoom
na niektórych urządzeniach z Androidem 11 (I716d7)Rozwiązaliśmy problem polegający na tym, że na niektórych urządzeniach aparat zawieszał się przy zamykaniu, co powodowało wyświetlanie czarnego podglądu. (I34c99)
Camera-Camera2, Camera-Core i Camera-Lifecycle wersja 1.0.0
Wersja 1.0.0
5 maja 2021 roku
Opublikowano androidx.camera:camera-camera2:1.0.0
, androidx.camera:camera-core:1.0.0
i androidx.camera:camera-lifecycle:1.0.0
. Wersja 1.0.0 zawiera te zatwierdzenia.
Główne funkcje wersji 1.0.0
- CameraX obsługuje funkcje Podgląd, ImageCapture i Analiza
- CameraX zarządza cyklem życia aparatu za pomocą łatwego w użyciu interfejsu API
- CameraX ma na celu zapewnienie warstwy zgodności, która rozwiązuje wiele problemów w ekosystemie aparatów w Androidzie.
Znane problemy
- Zobacz listę znanych problemów.
Wersja 1.0.0-rc05
21 kwietnia 2021 r.
Opublikowano 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
. Wersja 1.0.0-rc05 zawiera te zatwierdzenia.
Poprawki błędów
- Poprawione robienie zdjęć z włączoną lampą błyskową/automatycznym robienie rozmytych zdjęć na telefonie Samsung Galaxy S7. (I30001)
Wersja 1.0.0-rc04
24 marca 2021 r.
Opublikowano 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
. 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.
Opublikowano 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
. Wersja 1.0.0-rc03 zawiera te zatwierdzenia.
Poprawki błędów
- Napraw błąd formatu w dokumencie
ProcessCameraProvider#getInstance
- Usunięto błąd testu Robolectric, który występował, gdy w metodzie CameraXConfig jest używana funkcja setAvailableCamerasLimiter.
- Naprawiono spadek wydajności funkcji Robienie zdjęć przez usunięcie weryfikacji zapisanej lokalizacji obrazu przed jego zrobieniem. Jeśli po wprowadzeniu tej zmiany miejsce docelowe zapisu jest nieprawidłowe, uzyskanie odpowiedzi o błędzie będzie trwało dłużej, ponieważ po zrobieniu zdjęcia zostanie podjęta próba zapisania obrazu.
- Ta zmiana stanowi wyjątek, jeśli kolejka obrazów w Analizie obrazów jest wyczerpana. W rezultacie zamiast awarii możesz zauważyć, że inne przypadki użycia się zawieszają lub działają powolnie, np. – zamrożony lub powolny podgląd.
- Obejście problemu z przerwanymi, uszkodzonymi danymi JPEG plikami JPEG w przypadku tylnego aparatu SM-G930T. (I52001, b/159831206)
- Ta zmiana stanowi wyjątek, jeśli kolejka obrazów w Analizie obrazów jest wyczerpana. Dlatego zamiast ulegać awarii, możesz zauważyć, że inne przypadki użycia się zawieszają lub działają wolno, np. zablokowany lub powolny podgląd. (Ic12da, b/175851631)
- Usunięto błąd testu Robolectric, który występował, gdy w komponencie CameraXConfig jest używany setAvailableCamerasLimiter. (Ice307)
- Naprawiono spadek wydajności funkcji Robienie zdjęć przez usunięcie weryfikacji zapisanej lokalizacji obrazu przed jego zrobieniem. Jeśli po wprowadzeniu tej zmiany miejsce docelowe zapisu jest nieprawidłowe, uzyskanie odpowiedzi o błędzie będzie trwało dłużej, ponieważ po zrobieniu zdjęcia zostanie podjęta próba zapisania obrazu. (I1fd4e, b/177061560)
- Poprawiono regresję wydajności funkcji ImageCapture za pomocą typu „Plik” typu outputFileOptions. (I5164a, b/177061560)
Wersja 1.0.0-rc02
27 stycznia 2021 r.
Opublikowano 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
. Wersja 1.0.0-rc02 zawiera te zatwierdzenia.
Poprawki błędów
- Rozwiązaliśmy problem IllegalArgumentException, który występował, gdy wszystkie obsługiwane rozmiary podglądu były mniejsze niż 640 x 480, a rozmiar wyświetlacza przekraczał 640 x 480. (b/150506192)
Ogranicz liczbę prób ponownego otwarcia kamery. Podczas rozwiązywania niektórych problemów z otwarciem aparatu CameraX nie będzie już próbowała ponownie otwierać go bez końca, a po 10 sekundach ponawia próbę zatrzymania się.I435d2
Rozwiązaliśmy
IllegalArgumentException
problem, który występował, gdy wszystkie obsługiwane rozmiary podglądu były mniejsze niż 640 x 480, a rozmiar wyświetlacza większy niż 640 x 480. (I2a63c, b/150506192)
Wersja 1.0.0-rc01
16 grudnia 2020 roku
Opublikowano 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
. Wersja 1.0.0-rc01 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Zmieniono ustawienia aplikacji CameraFilter i Camera2Filter tak, by możliwe było pobieranie danych z aplikacji CameraInfo. (I6883d)
- Dodano eksperymentalną klasę Camera2CameraControl, aby umożliwić dynamiczną współpracę z interfejsami Camera2 API. (I45cf3)
- Zmieniono nazwę elementu Camera2CameraInfo#fromCameraInfo na #from. (Ia2bd6)
- Dodano eksperymentalny interfejs API setAvailableCamerasLimiter do interfejsu CameraXConfig, który umożliwia aplikacjom optymalizowanie opóźnienia inicjowania przez uniknięcie inicjowania nieużywanych kamer. (I6cf88)
- Dodano eksperymentalną metodę
CameraXConfig.Builder#setMinimumLoggingLevel()
, która umożliwia ustawienie minimalnego poziomu rejestrowania dzienników CameraX. Jeśli jej nie skonfigurujesz, domyślnie będzie toLog#DEBUG
. (Ic3245)
Poprawki błędów
- Obejściem problemu z przerwanymi uszkodzonymi danymi obrazu JPEG w przypadku tylnego aparatu SM-G930V. (I5aca5, b/159831206)
- Rozwiązaliśmy problem polegający na tym, że na urządzeniach Samsung SM-A716 nie można robić zdjęć, gdy lampa błyskowa jest zawsze/włączona, a otoczenie jest ciemne. (If98b2, b/172036589)
- Rozwiązaliśmy problem, który uniemożliwiał zatrzymanie podglądu przez wywołanie
Preview.setSurfaceProvider(null)
. (I3ac18) - Rozwiązaliśmy problem z orientacją podczas robienia zdjęć w formacie 4:3 na niektórych urządzeniach. (I0e3fb, b/171492111)
Aparat Camera2, Core, & Lifecycle wersja 1.0.0-beta12
11 listopada 2020 roku
Opublikowano 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
. Wersja 1.0.0-beta12 zawiera te zatwierdzenia.
Poprawki błędów
- Wyłączenie automatycznej lampy błyskowej na urządzeniach Samsung A3 w celu rozwiązania problemu z awarią podczas robienia zdjęć w trybie automatycznej lampy błyskowej na urządzeniach Samsung A3. (Ia5fe3, b/157535165)
- Naprawiono błąd, który powodował, że podgląd był rozciągany na urządzeniach Nexus 4 z Androidem L (poziomy interfejsu API 21 i 22). (I4d407, b/158749159)
- Implementacja klasy podstawowej
OnImageCapturedCallback#onCaptureSuccess
nie zamyka już obrazu. Zapobiega to nieoczekiwanym zachowaniu deweloperów. Deweloperzy nie powinni polegać na super.onCaptureSuccess do zamknięcia obrazu. (Ifbf9c) - Wariant androidx adnotacji eksperymentalnej został wycofany, aby zapewnić spójność z Kotlinem. Zastąpiła ją adnotacja WymagajsOptIn, a linter sterowany Javą został zaktualizowany, aby obsługiwał zarówno nową adnotację Kotlin, jak i nową wersję Androidax. (I52495, b/151331381)
Camera-Camera2 w wersji 1.0.0-beta11
14 października 2020 r.
Aplikacja androidx.camera:camera-camera2:1.0.0-beta11
została zwolniona. Wersja 1.0.0-beta11 zawiera te zatwierdzenia.
Nowe funkcje
- Obsługuje interfejs API
CONTROL_ZOOM_RATIO
systemu Android 11 w przypadku urządzeń z Androidem 11 lub nowszym, które zawierają prawidłową właściwośćCONTROL_ZOOM_RATIO_RANGE
. (I62cc6)
Poprawki błędów
- Rozwiązaliśmy problem z wyjątkiem NumberFormatWyjątek, który występował, gdy identyfikator kamery nie jest liczbą całkowitą. (Ib2228)
- Skrócono czas oczekiwania inicjowania usługi CameraX i mechanizmu bindToLifecycle (I61dc5)
- Tworzenie przypadków użycia nie wymaga inicjowania aplikacji CameraX w celu ukończenia. Wszystkie konfiguracje związane z implementacją są ustawiane w sekcji UseCase po podłączeniu jej do instancji kamery, która dla publicznego interfejsu API ma wartość
ProcessCameraProvider.bindToLifecycle()
. (Ia5411) <UseCase>.getTargetRotation()
zwróci wartośćSurface.ROTATION_0
, jeśli zostanie wywołana przed podłączeniem do instancji Camera, chyba że w konstruktorze lub UseCase ustawiono wartość docelową w ramach operacji targetRotation. (I80fcd)
Camera-Core w wersji 1.0.0-beta11
14 października 2020 r.
Aplikacja androidx.camera:camera-core:1.0.0-beta11
została zwolniona. Wersja 1.0.0-beta11 zawiera te zatwierdzenia.
Nowe funkcje
– obsługuje interfejs API CONTROL_ZOOM_RATIO
systemu Android 11 do powiększania na urządzeniach z Androidem 11 lub nowszym, który zawiera prawidłową wartość CONTROL_ZOOM_RATIO_RANGE
. (I62cc6)
Poprawki błędów
- Rozwiązaliśmy problem z wyjątkiem NumberFormatWyjątek, który występował, gdy identyfikator kamery nie jest liczbą całkowitą. (Ib2228)
- Tworzenie przypadków użycia nie wymaga inicjowania aplikacji CameraX w celu ukończenia. Wszystkie konfiguracje związane z implementacją są ustawiane w sekcji UseCase po podłączeniu jej do instancji kamery, która dla publicznego interfejsu API ma wartość
ProcessCameraProvider.bindToLifecycle()
. (Ia5411) <UseCase>.getTargetRotation()
zwróci wartośćSurface.ROTATION_0
, jeśli zostanie wywołana przed podłączeniem do instancji Camera, chyba że w konstruktorze lub UseCase ustawiono wartość docelową w ramach operacji targetRotation. (I80fcd)
Camera-Core w wersji 1.0.0-beta10
23 września 2020 r.
Aplikacja androidx.camera:camera-core:1.0.0-beta10
została zwolniona. Wersja 1.0.0-beta10 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawianie błędu podczas walidacji miejsca docelowego zapisu pliku na potrzeby przechwytywania obrazu (I8c565, b/167697553)
Camera-Camera2 w wersji 1.0.0-beta10
23 września 2020 r.
Aplikacja androidx.camera:camera-camera2:1.0.0-beta10
została zwolniona. Wersja 1.0.0-beta10 zawiera te zatwierdzenia.
Poprawki błędów
- Opublikuj, aby obsługiwać Camera-Core 1.0.0-beta10
Camera-Camera2 w wersji 1.0.0-beta09
16 września 2020 roku
Aplikacja androidx.camera:camera-camera2:1.0.0-beta09
została zwolniona. Wersja 1.0.0-beta09 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Zamiast metod statycznych aplikacja Camera2CameraInfo po utworzeniu pobiera z niej informacje powiązane z Aparatem 2, pobiera jej wystąpienie. (I5b844)
Poprawki błędów
- Rozwiązaliśmy problem z docelowym formatem obrazu na tabletach. Jeśli docelowy format obrazu jest ustawiony na
AspectRatio.RATIO_16_9
, należy wybrać rozmiar 16:9. (Ib7fcf, b/151969438) - Użycie wywołania
InitializationException
, aby aplikacja mogła płynnie obsłużyć błąd AssertionError, który wystąpił podczas tworzenia elementu CameraCharacterifics. (I89c8c, b/160524721) - Dodano eksperymentalne interfejsy kompensacji ekspozycji (If96c7).
Camera-Core w wersji 1.0.0-beta09
16 września 2020 roku
Aplikacja androidx.camera:camera-core:1.0.0-beta09
została zwolniona. Wersja 1.0.0-beta09 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Naprawiliśmy błąd polegający na tym, że widoczny obszar był oznaczany jako niepusty w grupie UseCaseGroup. Deweloperzy powinni mieć możliwość utworzenia widocznego obszaru bez konieczności jego konfigurowania. (Ie3d2e)
- Dodano interfejsy eksperymentalne dla
ExposureCompensation
(If96c7). - Zezwalaj na dowolną rotację celów na potrzeby 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 nie można było wyłączyć lampy błyskowej. Dzieje się tak, gdy tryb lampy błyskowej jest ustawiony na
FLASH_MODE_ON
, aby zrobić zdjęcie, i jest zmieniany naFLASH_MODE_OFF
po włączeniu lampy błyskowej. Problem przypomina włączenie trybu latarki. (Ib4451, b/162568128) - Wymuszono użycie funkcji TextureView, jeśli włączony jest efekt rozszerzenia, a implementacja biblioteki dostawcy musi wykonać specjalny proces na platformie wyjściowej. (I0c3cc)
- Usunięto wyciek aktywności/fragmentu po przekazaniu kontekstu aktywności/fragmentu do interfejsu
ProcessCameraProvider.getInstance(Context)
.
Znane problemy
- Po ustawieniu ViewPort prostokąt przycinania w ImageCapture może być nieprawidłowy na urządzeniach, które obracają bufor obrazów w interfejsie HAL. Naprawimy to w następnej wersji.
Camera-Camera2 w wersji 1.0.0-beta08
19 sierpnia 2020 r.
Aplikacja androidx.camera:camera-camera2:1.0.0-beta08
została zwolniona. Wersja 1.0.0-beta08 zawiera te zatwierdzenia.
Poprawki błędów
- Zoptymalizowano element bindToLifecycle pod kątem szybkiego uruchamiania w wątku głównym. (I1d57e).
- DisplayOrientedMeteringPointFactory wykorzystuje instancję CameraInfo zamiast funkcji CameraSelector, aby wskazać, dla której kamery fabryka będzie generować punkty. Wszystkie klasy korzystające z DisplayOrientedMeteringPointFactory przyjmują też wystąpienie CameraInfo zamiast usługi CameraSelector. (I400c1)
- Rozwiązaliśmy problem z grupowaniem rozmiarów obrazu w automatycznej rozdzielczości, który polegał na tym, że wybierany jest rozmiar 16:9 mod16 (864 x 480) w przypadku ustawienia docelowej rozdzielczości na 2016 x 1080, a inny obsługiwany rozmiar to 1920 x 1080 16:9. (I53167, b/159363774)
- Rozwiąż problem z funkcją CameraControl, która uniemożliwia działanie ze względu na warunki wyścigu (I2279f, b/152333890, b/160714166)
Camera-Core w wersji 1.0.0-beta08
19 sierpnia 2020 r.
Aplikacja androidx.camera:camera-core:1.0.0-beta08
została zwolniona. Wersja 1.0.0-beta08 zawiera te zatwierdzenia.
Zmiany w interfejsie API
DisplayOrientedMeteringPointFactory
pobiera wystąpienieCameraInfo
zamiastCameraSelector
, więc dostępne jest bezpośrednie mapowanie na kamerę, dla której fabryka będzie generować punkty. Wszystkie klasy używające klasyDisplayOrientedMeteringPointFactory
również przyjmują wystąpienieCameraInfo
zamiastCameraSelector
. (I400c1)
Poprawki błędów
- W przypadku robienia zdjęcia zastąp odwróconą poziomą flagę w metadanych na podstawie kierunku aparatu. (I28499)
- Inicjacja nie powinna już ulegać awariom, gdy używany jest kontekst, który nie zwraca obiektu aplikacji z
Context.getApplicationContext()
. (I3d3c9, b/160817073)
Camera-Camera2 w wersji 1.0.0-beta07
22 lipca 2020 r.
Aplikacja androidx.camera:camera-camera2:1.0.0-beta07
została zwolniona. Wersja 1.0.0-beta07 zawiera te zatwierdzenia.
Poprawki błędów
- Rozwiązaliśmy problem z rozciąganiem podglądu na starszych urządzeniach z Androidem 5.0. (I0c03a)
- Wykluczono niektóre rozmiary obsługiwane w formacie JPEG, które na niektórych urządzeniach będą powodować problemy z edytorem WYSIWYG. (Ib5128)
Camera-Core w wersji 1.0.0-beta07
22 lipca 2020 r.
Aplikacja androidx.camera:camera-core:1.0.0-beta07
została zwolniona. Wersja 1.0.0-beta07 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Scal styl dopasowania
FIT_CENTER
,FIT_START
iFIT_END
zFIT
.FIT
oznacza, że zwrócony prostokąt przycięcia będzie maksymalnym możliwym prostokątem czujnika. (Ia73c3) - Prostokąt przycinania w podglądzie jest konfigurowany według widocznego obszaru. Dla użytkowników powinien być widoczny tylko obszar przycięty. (I142a4).
Poprawki błędów
- Rozwiązaliśmy problem z rozciąganiem podglądu na starszych urządzeniach z Androidem 5.0. (I0c03a)
- Naprawiliśmy problem związany z wyjątkiem
ConcurrentModificationException
podczas usuwania powiązania przypadków użycia. (I371c0)
Camera-Camera2 w wersji 1.0.0-beta06
24 czerwca 2020 r.
Aplikacja androidx.camera:camera-camera2:1.0.0-beta06
została zwolniona. Wersja 1.0.0-beta06 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Dodaliśmy eksperymentalne interfejsy filtrowania aparatów według identyfikatora i parametrów kamery. (I28f61)
Poprawki błędów
- Rozwiązano problem z ustawieniem ostrości startFocusAndMetering na telefonie Samsung Galaxy S7. (If3be7, b/159039233)
- Rozwiąż problem, którego nie można zamknąć po zamknięciu aplikacji (I7a7b3)
- Naprawianie powtarzających się przerw w przełączaniu aparatu podczas korzystania z implementacji PreviewView w SurfaceView (I920ce)
CameraControl#startFocusAndMetering
zadziała, jeśli żaden z określonych punktów MeteringPoint nie wygeneruje prawidłowych prostokątów pomiaru. (Id53ce).
Camera-Core w wersji 1.0.0-beta06
24 czerwca 2020 r.
Aplikacja androidx.camera:camera-core:1.0.0-beta06
została zwolniona. Wersja 1.0.0-beta06 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Dodaliśmy eksperymentalne interfejsy filtrowania aparatów według identyfikatora i parametrów kamery. (I28f61)
Poprawki błędów
- Aparat CameraX można teraz skonfigurować przy użyciu:
ProcessCameraProvider#configureInstance()
, zanim zadzwoni pod numerProcessCameraProvider#getInstance()
. Umożliwia to dostosowanie obiektuCameraXConfig
bez konieczności implementowaniaCameraXConfig.Provider
w klasie Application. (Ia1a8d) CameraControl#startFocusAndMetering
zadziała, jeśli żaden z określonych punktów MeteringPoint nie wygeneruje prawidłowych prostokątów pomiaru. (Id53ce).
Camera-Camera2 w wersji 1.0.0-beta05
10 czerwca 2020 r.
Aplikacja androidx.camera:camera-camera2:1.0.0-beta05
została zwolniona. Wersja 1.0.0-beta05 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawa awarii przy uruchamianiu aplikacji Aparat X, gdy telefon jest w trybie Nie przeszkadzać.
InitializationException
zawieraCameraUnavailableException
, który zostanie ustawiony naListenableFuture
wyniku inicjowania zamiast awarii aplikacji. (I9909a, b/149413835) - Usunięto awarię podczas wywoływania funkcji
startFocusAndMetering
na urządzeniach, na którychCONTROL_AF_STATE
ma wartość null. (Ife55e, b/157084254)
Camera-Core w wersji 1.0.0-beta05
10 czerwca 2020 r.
Aplikacja androidx.camera:camera-core:1.0.0-beta05
została zwolniona. Wersja 1.0.0-beta05 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Naprawa awarii przy uruchamianiu aplikacji Aparat X, gdy telefon jest w trybie Nie przeszkadzać.
InitializationException
zawieraCameraUnavailableException
, który zostanie ustawiony naListenableFuture
wyniku inicjowania zamiast do awarii aplikacji. (I9909a, b/149413835)
Poprawki błędów
- Zaktualizowano dokumenty javadocs dla:
setTargetResolution
isetTargetRotation
. (Iae16f)
Camera-Camera2 w wersji 1.0.0-beta04
27 maja 2020 r.
Aplikacja androidx.camera:camera-camera2:1.0.0-beta04
została zwolniona. Wersja 1.0.0-beta04 zawiera te zatwierdzenia.
Poprawki błędów
- Aplikacje mogą ustawiać dowolne parametry żądania zapisu z kamery 2 za pomocą interfejsu
Camera2Interop
, nie powodując awarii. Pamiętaj, że jeśli w wyniku zastępowania parametrów wystąpią problemy. W przypadku zastępowania parametrów za pomocą Camera2Interop nie można zagwarantować stabilności ani działania. (Ibe5a1, b/149103700) - Automatyczne inicjowanie jest naprawione w przypadku używania aplikacji na urządzeniu, które używa pseudojęzyka. (I3bef3, b/154767663)
- Przekonwertowano dziennik błędów dotyczący odłączonego przypadku użycia do dziennika debugowania w aplikacji Camera2CameraImpl. (I1a565, b/154422490)
- Rozwiązanie problemu polegającego na tym, że zrobione zdjęcie było czasem zbyt ciemne nawet przy włączonej lampie błyskowej. (I5d9fa, b/149729613)
- Naprawianie błędu polegającego na tym, że bufor w tabeli
ImageProxy
z tabeliImageCapture
nie był przewijany (I0c455, b/153249512) - Naprawiono problemy związane tylko z wiązaniem funkcji ImageCapture: (1) Nie można zrobić zdjęć z ustawieniem MAX_QUALITY; (2) Wygenerowano złą jakość zdjęcia, ponieważ nie działa automatyczna ekspozycja. (I17782, b/145326998)
- Zwiększona niezawodność ponownego uruchamiania aparatu, gdy aplikacja CameraX jest odłączona przez inny proces lub ścieżkę kodową przechwytującą aparat (I1fbc3, b/153714651)
Camera-Core w wersji 1.0.0-beta04
27 maja 2020 r.
Aplikacja androidx.camera:camera-core:1.0.0-beta04
została zwolniona. 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 aparatów CameraX. Ten nowy interfejs API orazCameraXConfig.Builder#setCameraExecutor()
powinny zapewnić pełną kontrolę nad wątkami używanymi przez stos kamer CameraX. (I7bf32, b/121160431)
Poprawki błędów
- Naprawia awarię w
ImageAnalysis
, gdzie dostęp do interfejsuImageProxy
jest możliwy po zamknięciu interfejsuImageReaderProxy
. Powoduje to również, że wszystkieImageProxy
odbierane przezAnalyzer
muszą zostać zamknięte przed zamknięciemImageReaderProxy
. (I4b299, b/145956416, b/154155377, b/156357269) - Usunięto parametr
CameraInfo
zPreviewView#createSurfaceProvider()
. TerazPreviewView
pobiera go wewnętrznie zSurfaceRequest
. (If18f0, b/154652477) - Automatyczne inicjowanie jest naprawione w przypadku używania aplikacji na urządzeniu, które używa pseudojęzyka. (I3bef3, b/154767663)
- Rozwiązanie problemu polegającego na tym, że zrobione zdjęcie było czasem zbyt ciemne nawet przy włączonej lampie błyskowej. (I5d9fa, b/149729613)
- Rozwiązanie problemu z funkcją
ImageAnalysis
, który powodował, że wielokrotne wywołania funkcji set Analysisr/clearAnalizar powodowały, że analizator nie otrzymywał obrazów do przeanalizowania. (I6169f, b/151605317, b/153514544) - Naprawianie błędu polegającego na tym, że bufor w tabeli
ImageProxy
z tabeliImageCapture
nie był przewijany (I0c455, b/153249512) - Rozwiązaliśmy problem polegający na tym, że pierwsza kamera na liście obsługiwanych urządzeń
CameraManager
nie zawsze była wybrana do użycia. (I4c624, b/153418028) - Rozwiązaliśmy problem przejściowy, który powodował, że ustawienie
Preview.SurfaceProvider
nie zwalniało wcześniej żądanej platformy.“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
Aplikacja androidx.camera:camera-camera2:1.0.0-beta03
została zwolniona. Wersja 1.0.0-beta03 zawiera te zatwierdzenia.
Poprawki błędów
- Poprawki związane z opublikowaniem wersji
camera-core
Camera-Core w wersji 1.0.0-beta03
15 kwietnia 2020 roku
Aplikacja androidx.camera:camera-core:1.0.0-beta03
została zwolniona. Wersja 1.0.0-beta03 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawiono regresję z wersji beta03, w której wywołanie funkcji
bindToLifecycle()
z zerową wartościąUseCase
powodowało zgłoszenie wyjątku. Zapobiegło to pobraniu elementuCamera
bez powiązania elementuUseCase
.
Camera-Camera2 w wersji 1.0.0-beta02
1 kwietnia 2020 r.
Aplikacja androidx.camera:camera-camera2:1.0.0-beta02
została zwolniona. Wersja 1.0.0-beta02 zawiera te zatwierdzenia.
Poprawki błędów
- Poprawiliśmy wartość
ImageInfo.getRotationDegrees()
z elementuImageProxy
wygenerowanego przezImageCapture
, tak aby pasowała do wartości obrotu orientacji EXIF. (Id4281, b/150802561) - Jawna kolejność zależności CameraX w
build.gradle
nie jest już wymagana do użycia domyślnej implementacji CameraX/Camera2. W przypadkach, gdy wymagane jest zadeklarowanie rygorystycznych zależności, wszystkie zależności CameraX można teraz uwzględnić w pliku kompilacji. (I46e88) - Rozwiązaliśmy problem z
IllegalArgumentException
występujący na urządzeniach o rozmiarze ekranu mniejszym niż 640 x 480. (Ife3f2, b/150506192) - Poprawiliśmy właściwość
bindToLifecycle
, aby zmieniała przypadek użycia tylko w przypadku udanego powiązania. Wcześniej podczas wywoływania funkcjibindToLifecycle
w celu wykonania obliczeń związanych z zastosowaniem aktualizowany jest nie musi już aktualizować zastosowania, aby wykonywać obliczenia (I78d9e).
Camera-Core w wersji 1.0.0-beta02
1 kwietnia 2020 r.
Aplikacja androidx.camera:camera-core:1.0.0-beta02
została zwolniona. Wersja 1.0.0-beta02 zawiera te zatwierdzenia.
Poprawki błędów
- Poprawiliśmy wartość
ImageInfo.getRotationDegrees()
z elementuImageProxy
wygenerowanego przezImageCapture
, tak aby pasowała do wartości obrotu orientacji EXIF. (Id4281, b/150802561) - Poprawiliśmy właściwość
bindToLifecycle
, aby zmieniała przypadek użycia tylko w przypadku udanego powiązania. Wcześniej podczas wywoływania funkcjibindToLifecycle
w celu wykonania obliczeń związanych z zastosowaniem aktualizowany jest nie musi już aktualizować zastosowania, aby wykonywać obliczenia (I78d9e). - Rozwiązaliśmy problem, który powodował, że sesja przechwytywania w przypadku użycia funkcji
Preview
nie była aktualizowana, gdy powierzchnia podglądu zmieniała się po więcej niż jednym wywołaniu funkcjiPreview.setSurfaceProvider()
.
Camera-Camera2 w wersji 1.0.0-beta01
26 lutego 2020 r.
Aplikacja androidx.camera:camera-camera2:1.0.0-beta01
została zwolniona. Wersja 1.0.0-beta01 zawiera te zatwierdzenia.
Poprawki błędów
- Zmieniono nazwę
SurfaceRequest.setSurface(Surface)
naSurfaceRequest.provideSurface(Surface)
iSurfaceRequest.setWillNotComplete()
naSurfaceRequest.willNotProvideSurface()
. (I224fe) - Naprawiono problem z nieprawidłowym formatem zapisanego obrazu po zmianie wartości rotacji docelowej za pomocą funkcji
ImageCapture.setTargetRotation()
. (I474ea, b/148763432) - Naprawiono inicjowanie wariantów aplikacji z włączoną funkcją ProGuard. Zachowano flagę, która ustawia domyślnego dostawcę
CameraXConfig
. (I2d6c1)
Camera-Core w wersji 1.0.0-beta01
26 lutego 2020 r.
Aplikacja androidx.camera:camera-core:1.0.0-beta01
została zwolniona. Wersja 1.0.0-beta01 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Zastąpiono
ListenableFuture
wSurfaceRequest.provideSurface()
naExecutor
iCallback
. Upraszcza to interfejs API, ponieważ nie wymaga już obsługi wyjątków wprovideSurface()
i wymusza, że nie można anulować wywołania zwrotnegoprovideSurface()
. Ma to na celu zapobieganie awariom na starszych urządzeniach spowodowanych przedwczesnym udostępnieniem tych platform. ObiektSurfaceRequest.Result
jest teraz używany do śledzenia, jakSurfaceRequest
korzysta z podanegoSurface
. (I7854b) - Zmieniono nazwę
SurfaceRequest.setSurface(Surface)
naSurfaceRequest.provideSurface(Surface)
iSurfaceRequest.setWillNotComplete()
naSurfaceRequest.willNotProvideSurface()
. (I224fe)
Poprawki błędów
- Naprawiono problem z nieprawidłowym formatem zapisanego obrazu po zmianie wartości rotacji docelowej za pomocą funkcji
ImageCapture.setTargetRotation()
. (I474ea, b/148763432) - Naprawiono inicjowanie wariantów aplikacji z włączoną funkcją ProGuard. Zachowano flagę, która ustawia domyślnego dostawcę
CameraXConfig
. (I2d6c1) - Zaktualizowaliśmy dokumentację interfejsów API trybu Flash, aby uwzględnić możliwe wartości. (I4a3ec).
Camera-Camera2 (wersja 1.0.0-alfa10)
10 lutego 2020 r.
Aplikacja androidx.camera:camera-camera2:1.0.0-alpha10
została zwolniona. Wersja 1.0.0-alpha10 zawiera te zatwierdzenia.
Poprawki błędów
- Zwiększono stabilność na urządzeniach z
INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY
, ponieważ Aparat 2 przechowuje elementySurface
tylko przez cały czas ich używania. (I9dac2) - Naprawiono problem z niedoświetlonym podglądem na DUŻYCH urządzeniach, dostosowując odpowiednio
CONTROL_AE_TARGET_FPS_RANGE
. (1224638)
Camera-Core w wersji 1.0.0-alfa10
10 lutego 2020 r.
Aplikacja androidx.camera:camera-core:1.0.0-alpha10
została zwolniona. Wersja 1.0.0-alpha10 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Zaktualizowano
ImageCapture
, aby umożliwić zapisywanie obrazów w usługachUri
iOutputStream
. Połączono przeciążone metody (takePicture
) w jedną. Zaktualizowano aplikację testową, aby używała stronyUri
jako przykładu kanonicznego. (Ia3bec) - Nazwa konta
Preview.PreviewSurfaceProvider
została zmieniona naPreview.SurfaceProvider
. Deweloperzy nie muszą już tworzyć własnych elementówListenableFuture
w interfejsieSurfaceProvider
, a podawanieSurface
odbywa się teraz za pomocą nowego obiektuSurfaceRequest
. MetodaPreview.getPreviewSurfaceProvider()
została usunięta ze względu na możliwość jej nadużycia, gdyPreview
jest sparowany z innymi klasami, takimi jakPreviewView
. (I20105) - Dodano użytkowników
getTargetRotation()
igetTargetName()
do listyPreview
. (Iceee7) - Dodano
getTargetRotation()
,getBackpressureStrategy()
igetImageQueueDepth()
w grupieImageAnalysis
. (I9d6d9) - Dodano
getTargetRotation()
igetCaptureMode()
w:ImageCapture()
(I5bc17) - Argumenty, które były wcześniej przekazywane w funkcjach
ImageCapture.OnImageSavedCallback.onError()
iImageCapture.OnImageCapturedCallback.onError()
, zostały zastąpione pojedynczym argumentemImageCaptureException
, który nadal zawiera wszystkie przekazane wcześniej informacje. - Argument pliku przekazany wcześniej w funkcji
ImageCapture.OnImageSavedCallback.onImageSaved()
został usunięty. (I750d2) Preview
iImageCapture
zajęć są teraz oznaczone jako ostateczne. (I2500B)- Interfejs API został zaktualizowany. Metody
getZoomRatio()
,getMaxZoomRatio()
,getMinZoomRatio()
igetLinearZoom()
elementuCameraInfo
zostały scalone z instancjągetZoomState()
, która zwraca instancjęZoomState
. (Ib19fe) - Usunęliśmy pola interfejsu API
OPTION_TARGET_CLASS
iOPTION_TARGET_NAME
zCameraXConfig
, ponieważ są one przeznaczone tylko do użytku wewnętrznego w bibliotece. Usunięto konstruktor dla:CameraXConfig.Builder
. (I96912) - Usunęliśmy wymaganie, zgodnie z którym aplikacja musi obejmować rozszerzenie
Application
, aby mogła ona uruchamiać aplikację CameraX. Aplikacja CameraX zostanie zainicjowana z domyślną konfiguracją aparatu (Camera2), o ile artefaktcamera-camera2
znajduje się w interfejsiebuild.gradle
aplikacji. (I58ff5) (b/146923574)
Camera-Camera2 (wersja 1.0.0-alfa09)
22 stycznia 2020 r.
Aplikacja androidx.camera:camera-camera2:1.0.0-alpha09
została zwolniona. Wersja 1.0.0-alpha09 zawiera te zatwierdzenia.
Zmiany w interfejsie API
Dodaj ścieżkę interoperacyjności Camera2 w celu wyodrębnienia identyfikatora kamery Camera2. Identyfikator aparatu możesz wyodrębnić z pliku
CameraInfo
za pomocą narzędziaCamera2CameraInfo.extractCameraId()
. Poniższy przykładowy kod pokazuje, jak to zrobić:Camera camera = provider.bindToLifecycle(...); String cameraId = Camera2CameraInfo.extractCameraId(camera.getCameraInfo());
Klasa
Camera2CameraInfo
wymaga klasyExperimentalCamera2Interop
.
Camera-Core w wersji 1.0.0-alfa09
22 stycznia 2020 r.
Aplikacja androidx.camera:camera-core:1.0.0-alpha09
została zwolniona. Wersja 1.0.0-alpha09 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Zmieniono nazwę parametru
useCaseForSurface
SurfaceOrientedMeteringPointFactory
nauseCaseForAspectRatio
i rozszerzono dokumentację referencyjną. - Metody
FocusMeteringAction.Builder.from()
zostały zastąpione konstruktoramiFocusMeteringAction.Builder()
. - Usunięto
DisplayOrientedMeteringPointFactory(android.content.Context, androidx.camera.core.CameraSelector, float, float)
. Aplikacje powinny używać konstruktora, który przyjmuje parametrDisplay
i przekazuje go w bieżącym widoku. - Ulepszenia języka Javadoc dotyczące interfejsów API skupienia i pomiaru pomiarów w odniesieniu do flag
MeteringMode
i 3A oraz zastosowania parametruDisplay
. - Rozszerzyliśmy dokumentację referencyjną dotyczącą
setZoomRatio
isetLinearZoom
.
Poprawki błędów
- Rozwiązaliśmy problemy z zamykaniem i otwieraniem kamer, które powodowały błąd sprawdzania stanu wstępnego.
- Naprawiliśmy błąd
ConcurrentModificationException
, który mógł występować w przypadku korzystania z interfejsów API pochodni i powiększenia. - Rozwiązaliśmy problem polegający na tym, że w przypadku rozmiaru wymiaru mod16 dostępna jest teraz rozdzielczość bliższa żądanej rozdzielczości.
- Interfejsy API
startFocusMetering
icancelFocusMetering
działają teraz jak udokumentowane – mają prawidłowy czas działania i mogą zwracać błędy, gdy wystąpią. - Rozwiązaliśmy problem, który występował, gdy na urządzeniu, które nie obsługuje takich rozmiarów, zażądano określonej rozdzielczości docelowej wraz ze współczynnikiem proporcji przycięcia. Teraz wybrany zostanie nieprzycięty rozmiar o rozdzielczości wystarczającej do powiązania pierwotnego żądania, o ile będzie on dostępny.
Camera-Camera2 (wersja 1.0.0-alfa08)
18 grudnia 2019 r.
Aplikacja androidx.camera:camera-camera2:1.0.0-alpha08
została zwolniona. Wersja 1.0.0-alpha08 zawiera te zatwierdzenia.
Znane problemy
- Nie wszystkie opcje żądań nagrywania z aparatu fotograficznego 2 działają w przypadku korzystania z interoperacyjności Camera2. Jeśli wybrana opcja nie jest obsługiwana, sesja nie rozpocznie się 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
- Naprawiono błąd, który powodował, że po obróceniu lub przełączeniu kamery na poziomach API 21 i 22 pojawiał się czarny ekran.
Zmiany w interfejsie API
- Funkcja eksperymentalna: dodano ścieżkę interoperacyjności kamery2 do wyodrębniania identyfikatora kamery.
Camera-Core w wersji 1.0.0-alfa08
18 grudnia 2019 r.
Aplikacja androidx.camera:camera-core:1.0.0-alpha08
została zwolniona. Wersja 1.0.0-alpha08 zawiera te zatwierdzenia.
Znane problemy
- Aplikacje korzystające z funkcji
PreviewView
lubCameraView
mogą mieć podgląd nieprawidłowego formatu obrazu. Dzieje się tak po wstrzymaniu lub wznowieniu niektórych urządzeń W PEŁNYM MIEJSCU, takich jak Pixel2.
Poprawki błędów
- Zaktualizowaliśmy dokumentację dotyczącą
FocusMeteringAction
iCameraControl
. - Wdrożono
TorchControl
dlaenableTorch()
igetTorchState()
.
Zmiany w interfejsie API
- Ukryto intDefs i przesunęliśmy stałe IntDef poza definicję IntDef.
- Przeniesiono
rotationDegrees
z zajęćOnImageCaptureCallback
doImageInfo
. - Przeniesiono
rotationDegrees
z zajęćAnalyzer
doImageInfo
.
Camera-Camera2 (wersja 1.0.0-alfa07)
4 grudnia 2019
Aplikacja androidx.camera:camera-camera2:1.0.0-alpha07
została zwolniona. Wersja 1.0.0-alpha07 aplikacji Camera-camera2 zawiera te zatwierdzenia
- Z narzędzia
Camera2Config
można teraz korzystać do inicjowania i konfigurowania implementacji opartej na Aparacie 2 dla aplikacji CameraX. Więcej informacji na temat korzystania z tej funkcji na potrzeby inicjowania znajdziesz w sekcji dotyczącej kamery i rdzeń w informacjach o wersji. - Działanie interoperacyjności Camera2 zostało oznaczone jako eksperymentalne i zostało przeniesione do osobnego pakietu,
androidx.camera.camera2.interop.
Camera-Core w wersji 1.0.0-alfa07
4 grudnia 2019
Aplikacja androidx.camera:camera-core:1.0.0-alpha07
została zwolniona. Wersja 1.0.0-alpha07 Camera-core zawiera te zatwierdzenia
W trakcie przygotowań do wprowadzenia wersji alfa wprowadziliśmy kilka istotnych zmian. Zalecamy zapoznanie się ze zmianami i podzielenie się opinią na temat grupy dyskusyjnej Google CameraX. Deweloperom, którzy używają CameraX w aplikacjach dostępnych w Sklepie Play, przed uaktualnieniem biblioteki w aplikacjach poczekaj na oficjalną wersję beta.
Zmiany w interfejsie API
Ważne: proces inicjowania aplikacji CameraX został zmieniony. Aplikacje powinny implementować atrybut
CameraXConfig.Provider
i używać domyślnej wartościCamera2Config
dostarczonej przezandroidx.camera.camera2
. Typowym zastosowaniem jest: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. Kursy
bindToLifecycle()
,unbind()
,unbindAll()
,isBound()
ihasCamera()
, które wcześniej były dostępne w ramach rozmowy klasowej CameraX, są teraz dostępne wProcessCameraProvider
.Instancja elementu
ProcessCameraProvider
na proces jest uzyskiwana asynchronicznie przy użyciu metody statycznejProcessCameraProvider.getInstance()
, która zwraca wartość włączaną do listy, która po zakończeniu podaje parametrProcessCameraProvider
. Tutaj jest to widoczne wonCreate()
dla typowych zastosowań. WywołaniegetInstance()
możesz wykonać później w cyklu życia aktywności, aby opóźnić opóźnienie inicjowania do późniejszego momentu (np. gdy działanie użytkownika otworzy interfejs kamery).import androidx.camera.lifecycle.ProcessCameraProvider import com.google.common.util.concurrent.ListenableFuture class MainActivity : AppCompatActivity() { private lateinit var cameraProviderFuture : ListenableFuture<ProcessCameraProvider> override fun onCreate(savedInstanceState: Bundle?) { cameraProviderFuture = ProcessCameraProvider.getInstance(this); }
Detektor można dodać do parametru
ListenableFuture
zwróconego przezgetInstance()
. Dzięki temu dostawcy kamery będzie można pobierać zFuture
bez blokowania go w usłudzeFuture.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 konkretnego przypadku użycia
val cameraSelector = CameraSelector.Builder().requireLensFacing(LensFacing.BACK).build()
CameraProvider.bindToLifecycle
otrzymuje właściciela cyklu życia, selektor kamery i przypadki użycia, które są powiązane z konkretnym właścicielem cyklu życia i działają w przypadku wybranej kamery.cameraProvider.bindToLifecycle(this as LifecycleOwner, cameraSelector, preview, imageAnalysis)
Klasy przypadku użycia „Config” są usuwane. Twórz przypadki użycia bezpośrednio, ustawiając opcje w każdym konstruktorze przypadków użycia. Przykład:
preview = Preview.Builder().setTargetAspectRatio(AspectRatio.RATIO_16_9).build()
Przypadek użycia w wersji testowej został zaktualizowany, aby akceptować platformę utworzoną i zarządzaną przez aplikację, aby zapewnić zgodność ze sprawdzonymi metodami dotyczącymi Androida. Zdecydowanie zalecamy użycie klasy widoku
PreviewView
oferowanej w ramach pakietu widoku z kamery.preview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
Zapoznaj się z dokumentacją dotyczącą dołączania platformy zarządzanej przez aplikację. W takich przypadkach aplikacja zarządza cyklem życia powierzchni.
Ważne: Implementacja metody analizatora
ImageAnalysis
musi wywołaćimage.close()
w przypadku odbieranych obrazów po zakończeniu ich używania. W przeciwnym razie nowe zdjęcia mogą nie zostać dostarczone lub aparat może się zawiesić w zależności od ustawienia ciśnienia tylnego. Więcej informacji znajdziesz w dokumentacji referencyjnej.Strategia
ImageAnalysis ImageReaderMode
została zmieniona na strategię wstecznąintdef
.Projekt
ImageProxy.getImage()
jest oznaczony jako eksperymentalny. Aplikacje powinny opisywać użycie, np. przez@androidx.camera.core.ExperimentalGetImage
Usunęliśmy wymóg adnotacji
UIThread
dla elementuAnalyzer
.Do usuwania analizatora dodano funkcję
ImageAnalysis.clearAnalyzer()
.Nazwy detektorów z więcej niż 1 metodą zostały zmienione na wywołanie zwrotne:
ImageCapture.OnImageCapturedListener
to terazImageCapture.OnImageCapturedCallback
ImageCapture.OnImageSavedListener
to terazImageCapture.OnImageSavedCallback
VideoCapture.OnVideoSavedListener
to terazVideoCapture.OnVideoSavedCallback
Wartości wyliczeniowe zostały zmienione na IntDef
Dodano elementy sterujące powiększeniem:
CameraControl.setLinearZoom()
CameraControl.setZoomRatio()
CameraInfo.getLinearZoom()
CameraInfo.getMaxZoomRatio()
CameraInfo.getZoomRatio()
Dodano
CameraInfo.hasFlashUnit()
, aby określić, czy jest dostępna lampa błyskowa lub latarka.CameraInfo.isFlashAvailable()
został(a) usunięty(a). Latarka zastępuje funkcję lampy błyskowej. Więcej informacji znajdziesz w dokumentacji referencyjnej.Pola
ImageCapture.Metadata
zostały zastąpione akcesorami get/set/is.Funkcje
startFocusMetering
icancelFocusMetering
zwracają teraz wartościListenableFutures
, które reprezentują asynchroniczną operację wywołania.MeteringPoints
działają teraz jako nicki działań pomiarowych i są produkowane przez fabryki. Aplikacje powinny korzystać z istniejących fabryk, a nie fabryk niestandardowych.
Rozwiązane problemy
- Rozwiązaliśmy problem z robieniem zdjęcia przy wznowieniu (po poprzedniej przerwie robienie zdjęć czekało na zakończenie).
- Znany problem:
CameraControl.enableTorch()
działa, ale zwracany elementListenableFuture<Void>
jest zawsze krótkoterminowy (complete(success)
), nawet jeśli nie ma jednostki flash. W kolejnych wersjach rozwiążemy ten problem aż do ostatecznego działania: gdy nie ma jednostki Flash,enableTorch(true)
natychmiast przestanie działać (nie wyśle żądania doCaptureSession
), a interfejsTorchState
pozostanie wyłączony. - Znany problem: funkcje
startFocusAndMetering
icancelFocusAndMetering
rozpoczynają i anulują pomiar skupienia, ale zwracają od razucompleted (success)
, które nie odzwierciedlają udokumentowanego zachowania. WynikFocusMeteringResult
z elementuListenableFuture<FocusMeteringResult> CameraControl.startFocusAndMetering()
to fałszywy wynik, któryisFocusSuccessful()
i zawsze ma wartość „fałsz”, w przeciwieństwie do zamierzonego, udokumentowanego działania. - Znany problem: pracujemy nad fabryką punktów pomiarowych do użycia ze zdarzeniami dotknięciami w systemie
PreviewView
. Obecnie aplikacje łączące niestandardowe platformy zarządzane mogą korzystać z istniejących fabryk punktów pomiarowych. W przeciwnym razie wPreviewView
nie jest dostępna funkcja precyzyjnego sterowania dotykowego.
Camera-Camera2 i Camera-Core w wersji 1.0.0-alpha06
9 października 2019 r.
Opublikowano androidx.camera:camera-camera2:1.0.0-alpha06
i androidx.camera:camera-core:1.0.0-alpha06
. To są zobowiązania zawarte w camera-camera2:1.0.0-alpha06
i zobowiązania zawarte w camera-core:1.0.0-alpha06
.
Nowe funkcje
Zmiany ustawień formatów obrazu:
- Dodano argument
setTargetAspectRatioMode()
i akceptuje on argument wyliczenia. Powoduje to ustawienie trybu współczynnika proporcji z opcjamiRATIO_4_3
lubRATIO_16_9
zamiast dowolnego współczynnika proporcji. Ta opcja lepiej odzwierciedla fakt, że kamera przekazuje tylko niektóre formaty obrazu, a nie dowolne proporcje.- Obecnie dostępne są tylko formaty 16:9 i 4:3. W przypadku formatu 1:1 tylko niektóre urządzenia mają dostęp do tego obrazu z aparatu, a jedynie w ograniczonej rozdzielczości. Aplikacje projektujące interfejs 1:1 lub przetwarzanie powinny korzystać z bardziej elastycznych opcji wyboru w formacie 16:9 lub 4:3 i przycinać obraz lub przetwarzać jego podregion.
- Format obrazu został ustawiony tak, aby korzystać z maksymalnego obszaru matrycy.
- Do interfejsów API konfiguracji przypadków użycia dodano funkcję
getTargetAspectRatio()
, która zwraca współczynnik proporcji, na który są kierowane dane wyjściowe konkretnego przypadku użycia. - Metoda
setTargetAspectRatio(Rational aspectRatio)
przechwytywania zdjęć została zmieniona nasetTargetAspectRatioCustom(Rational aspectRatio)
. Po ustawieniu tego ustawienia zdjęcie wyjściowe zostanie odpowiednio przycięte.
Interfejsy API wykonawcy
- Poniższe funkcje akceptują parametr wykonawcy, który pozwala aplikacji decydować o tym, na którym wykonawcy zostanie uruchomiona funkcja.
- Interfejs API
Preview.setOnPreviewOutputUpdateListener()
. Jeśli w przypadku tej funkcji nie ma wykonawcy, jest ona wykonywana w wątku głównym. Preview.setOnPreviewOutputUpdateListener
FocusMeteringAction.Builder.setAutoFocusCallback
ImageAnalysis.setAnalyzer
ImageCapture.takePicture
CameraView.takePicture
CameraView.startRecording
VideoCapture.startRecording
- Interfejs API
Dodano funkcję CameraInfo ze sprawdzaniem dostępności lampy błyskowej i interfejsów API do obracania czujnika
Dodano metodę
CameraInfo
orazgetCameraInfo
, która umożliwia aplikacjom sprawdzenie, czy aparat skierowany na obiektyw kamery jest dostępny i czy aparat ma lampę błyskową. Przykład:try { CameraInfo cameraInfo = CameraX.getCameraInfo(currentCameraLensFacing); LiveData<Boolean> isFlashAvailable = cameraInfo.isFlashAvailable(); flashToggle.setVisibility(isFlashAvailable.getValue() ? View.VISIBLE : View.INVISIBLE); } catch (CameraInfoUnavailableException e) { Log.w(TAG, "Cannot get flash available information", e); flashToggle.setVisibility(View.VISIBLE); }
Dodano użytkownika
CameraInfo.getSensorRotationDegrees()
Zapewnia on orientację czujnika aparatu względem naturalnej orientacji urządzenia lub dla wygody względem orientacji opisanej przez obrót powierzchni (które opisuje orientację względem orientacji naturalnej).
Zmiany w interfejsie API i poprawki błędów
- Współczynniki proporcji: w każdym przypadku użycia aplikacje powinny wywoływać tylko jedną z tych właściwości
setTargetResolution()
lubsetTargetAspectRatio()
. Wywołanie obu tych elementów w tym samym konstruktorze zwraca błąd.- Ogólnie zalecane jest użycie
setTargetAspectRatio()
w zależności od projektu interfejsu aplikacji. Konkretne rozwiązania zależą od konkretnego przypadku użycia. Na przykład podgląd jest bliski rozdzielczości ekranu, a przechwytywanie obrazów to obrazy o wysokiej rozdzielczości. Więcej informacji znajdziesz w tabeli rozdzielczości automatycznych. - Użyj właściwości
setTargetResolution()
w bardziej szczegółowych przypadkach, takich jak minimalna wartość (aby zapisać obliczenia) lub maksymalne rozdzielczości (aby uzyskać szczegóły przetwarzania) są wymagane.
- Ogólnie zalecane jest użycie
- Interfejs API wykonawcy: usunięto z interfejsów API konfiguracji przypadku użycia wywołanie
setCallbackHandler()
. Zamiast tego aplikacje mogą ustawić wykonawcę jako parametr w innych interfejsach API, które ustawiają wywołanie zwrotne. - Zaktualizowano puste adnotacje dla różnych funkcji.
- Rozwiązaliśmy problem, który powodował, że podczas otwierania kamery zgłaszał się komunikat
java.lang.IllegalStateException at Camera$StateCallback.onError
. - Rozwiązanie problemu polegającego na tym, że były wybierane zbyt małe rozdzielczości (poniżej 640 x 480), gdy aplikacja wymaga większych lub domyślnych rozdzielczości, co skutkuje rozmytym lub rozmytym obrazem podglądu. Aplikacje, które potrzebują mniejszej rozdzielczości, mogą bezpośrednio prosić o ich udostępnienie.
- Naprawiono błąd polegający na tym, że po powrocie z intencji, która uruchomiła inną aplikację aparatu, pojawiał się czarny ekran (nie udało się uruchomić kamery).
- Naprawiliśmy błąd, który powodował zwracanie się tego błędu przy wielokrotnym uruchamianiu lub zatrzymywaniu aplikacji:
java.lang.IllegalArgumentException: CaptureRequest contains unconfigured Input/Output Surface!
- Usunięto ten błąd, który występował podczas wyłączania analizy obrazów:
java.lang.IllegalStateException: maxImages (4) has already been acquired, call #close before acquiring more.
- Dodaliśmy dodatkowe testy procesu odłączania kamery.
- Zwiększona odporność systemu testowania podczas testów z wykorzystaniem wielu kamer jednocześnie.
Camera-Camera2 i Camera-Core w wersji 1.0.0-alpha05
5 września 2019 r.
Opublikowano androidx.camera:camera-camera2:1.0.0-alpha05
i androidx.camera:camera-core:1.0.0-alpha05
. To zobowiązania zawarte w ramach aparat-kamera2:1.0.0-alpha05 i są one zawarte w związku z kamerą typu Camera-core:1.0.0-alpha05.
Zmiana interfejsu API: zmieniono nazwy zmiennych związanych z błędami przypadków użycia:
- Nazwa elementu
ImageCapture.UseCaseError
została zmieniona naImageCapture.ImageCaptureError
- Nazwa elementu
VideoCapture.UseCaseError
została zmieniona naVideoCapture.VideoCaptureError
- Nazwa elementu
Dodano interfejs
CameraControl
API z interfejsami Tap-to-Focus APIDodano interfejs API umożliwiający pobieranie z aparatu obrazu
CameraControl
z aplikacji CameraX, który został wybrany z perspektywy obiektywu:CameraX.getCameraControl(LensFacing lensFacing)
Dodano
MeteringPointFactory
,MeteringPoint
,MeteringMode
iFocusMeteringAction
do uruchamiania fokusu kliknięciem: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 interfejsu
CameraControl
, który umożliwia uruchamianie i anulowanie pomiaru skupienia:getCameraControl(lensFacing).startFocusAndMetering(action);
getCameraControl(lensFacing).cancelFocusAndMetering();
Dodano interfejsy API dla fabryk punktów pomiarowych w celu tłumaczenia współrzędnych dotknięcia na współrzędne czujnika na podstawie klas widoku:
MeteringPointFactory factory = new TextureViewMeteringPointFactory(textureView);
MeteringPointFactory factory = new DisplayOrientedMeteringPointFactory(context, lensFacing, viewWidth, viewHeight);
Wymuszaj wywoływanie poniższych metod w wątku głównym (UI), powodując wysyłanie funkcji
IllegalStateException
, gdy nie są. Kolejne wersje pozwolą na korzystanie w innych wątkach i zapewnią serializację.CameraX.bindToLifecycle()
CameraX.unbind()
CameraX.unbindAll()
ImageAnalysis.setAnalyzer()
ImageAnalysis.getAnalyzer()
ImageAnalysis.removeAnalyzer()
Preview.removePreviewOutputListener()
Preview.getOnPreviewOutputUpdateListener()
Preview.setOnPreviewOutputUpdateListener()
Różne ustawienia konfiguracji akceptują teraz parametry o wartości null, a odpowiadające im metody pobierające mogą zwracać wartość null.
Rozwiązaliśmy problem z testowaniem na emulatorach, które nie obsługują ustawień AF/AE/AWB.
Naprawiono błąd powodujący błąd obrotu podczas analizowania obrazu.
Naprawiono błąd polegający na tym, że po włączeniu aparatu podczas obracania lub przełączania się między przednim a tylnym podglądem wyświetlany był czarny podgląd obrazu (brak danych z aparatu).
Usunęliśmy testy na potrzeby wielu jednoczesnych przypadków użycia analizy obrazu. Aby zapewnić zgodność, aplikacje powinny dołączać tylko jeden przypadek użycia do analizy obrazu.
W pakiecie do testowania kamer (WIP) dodano wstępne testy robolektryczne na fałszywe aparaty.
Test Camera2Inititalizer został usunięty, ponieważ jego zakres jest niejasny lub wprowadza w błąd.
Camera-Camera2 i Camera-Core w wersji 1.0.0-alpha04
7 sierpnia 2019 r.
Opublikowano 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 współczynnika proporcji i rozdzielczości
Celem aplikacji CameraX jest zainicjowanie sesji kamery. Oznacza to, że usługa CameraX obniża współczynnik rozdzielczości/proporcji w zależności od możliwości urządzenia, żeby zacząć sesję nagrywania jako pierwszy cel, więc konkretne żądania mogą nie zostać uwzględnione. Możliwe przyczyny:
- Urządzenia nieobsługujące żądanej rozdzielczości
- problemy ze zgodnością, na przykład na starszych urządzeniach, na których trzeba użyć określonych rozdzielczości, aby działać prawidłowo;
- Na niektórych urządzeniach pewne formaty są dostępne tylko w przypadku określonych formatów obrazu
- preferowanie „najbliższego moda16” w przypadku kodowania JPEG lub wideo. Zobacz
CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP
Chociaż CameraX tworzy sesję i zarządza nią, zawsze sprawdzaj rozmiary zwracanych obrazów w wyniku zastosowania w kodzie i odpowiednio je dostosowujej.
Wprowadziliśmy kilka zmian w ustawieniach rozdzielczości i formatów obrazu, aby interfejs API był bardziej zrozumiały:
- Przypadek użycia podglądu uznaje teraz, że ma domyślny współczynnik proporcji 4:3, jeśli żaden nie został ustawiony.
- Gdy aplikacja CameraX wewnętrznie analizuje zmiany w żądanych rozdzielczościach i formatach obrazu na podstawie możliwości urządzenia, najpierw próbuje utrzymać ten sam format obrazu (ustalony na podstawie dowolnego z wywołań funkcji
setTargetAspectRatio
lubsetTargetResolution
). - Wersja o wartości „Najbliższy mod16” jest uznawana za wersję o tym samym współczynniku proporcji.
Tryb nieblokowania analizy obrazów
- Działanie
ImageReaderMode.ACQUIRE_LATEST_IMAGE
nie jest teraz blokowane. Pozyskuje on najnowszy obraz w kolejce, ale wciąż odrzuca nieużywane obrazy, aby potok kamery uniknąć zablokowania. - Analizator może przechowywać 1 obraz bez ograniczeń czasowych, bez spowalniania potoku.
- Jeśli aplikacja udostępnia wykonawcę, który następnie blokuje dostęp, bloki przypadków użycia analizy obrazu.
- Domyślny zestaw wykonawcy zachowuje się wewnętrznie jako nieblokujący wykonawcy.
Poprawki błędów
- Rozwiązano problemy z limitem czasu oczekiwania na zbieżność 3 A w przypadku robienia zdjęć na urządzeniach bez autofokusu, automatycznej ekspozycji i automatycznego balansu bieli.
- Rozwiązanie problemu występującego podczas szybkiego robienia zdjęć przy użyciu funkcji ImageCapture. Naprawiono błąd:
java.lang.IllegalStateException: maxImages (2) has already been acquired
- Rozwiązaliśmy problem, który powodował, że funkcja
setLensFacing
nie została wywołana dla przypadku użycia, co powodowało działaniejava.lang.IllegalArgumentException: Unable to get camera ID for use case
. - Rozwiązaliśmy problem, który powodował, że STARSZE urządzenie wymagało określonego formatu obrazu jako maksymalnej rozdzielczości JPEG
- Rozwiązaliśmy problem z wyświetlaniem aplikacji w tle przy uruchamianiu kamery
- Rozwiązaliśmy problem w interfejsie API < 25, usuwając błąd
checkAndUpdateEglState: invalid current EGLDisplay
- Rozwiązanie problemu z usuwaniem powiązania podglądu po włączeniu i uruchomieniu rozszerzeń
- Artefakty kompilacji związane z widokiem z kamery i rozszerzeniami kamery są teraz publikowane w wersji alfa
Camera-Camera2 i Camera-Core w wersji 1.0.0-alpha03
2 lipca 2019 r.
Opublikowano androidx.camera:camera-core:1.0.0-alpha03
i androidx.camera:camera-camera2:1.0.0-alpha03
. Wersja 1.0.0-alpha03 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Dodano wyjaśnienie w dokumencie javadoc dotyczącym elementu „target” w wywołaniach konfiguracji setTarget.
Rdzeń aparatu
- Usunięto nieskonfigurowaną awarię powierzchni wejściowej/wyjściowej przy szybkim otwarciu/zamknięciu lub wiązaniu/usuwaniu powiązania.
- Przejdź na nowe implementacje terminowe
- Testowanie poprawek zapewniających dokładniejsze testy
- Test integracji podstawowej pokazuje teraz czas robienia zdjęć
- Opracowana wewnętrzna klasa kompatybilna dla wykonawców
- Testowy harmonogram wykonywania obrazów z aplikacji czeka na zakończenie procesu i poprawa stabilności
Rozszerzenia
- Dodano sprawdzanie obsługi wersji
- Dodatkowy zasięg testu – wywołania zwrotne zdarzeń rozszerzenia
- Ulepszenia odpowiednich wewnętrznie obrazów i metadanych
- Poprawki związane z przełączaniem trybu w aplikacji testowej
Camera-Camera2 i Camera-Core w wersji 1.0.0-alpha02
5 czerwca 2019 r.
Opublikowano androidx.camera:camera-core:1.0.0-alpha02
i androidx.camera:camera-camera2:1.0.0-alpha02
. Wersja 1.0.0-alpha02 zawiera te zatwierdzenia.
Poprawki błędów
- Usunięto problem z elementem div o 0 w przypadku korzystania z emulatora
- Usunięto błąd NullPointerException/Surface Abandoned (Wyjątek / Surface Abandoned) na niektórych urządzeniach podczas szybkiego robienia zdjęć przy szybkim usuwaniu powiązania i ponownym łączeniu przypadków użycia.
- Rozwiązaliśmy problem wewnętrzny, aby zapewnić spójność żądań zapisu danych na wszystkich platformach
- Większa stabilność przy ponownym uruchamianiu przypadków użycia w nowych instancjach aplikacji
- Wewnętrzne zmiany architektury w celu przygotowania się do pomocy wykonawców w interfejsie API
- Dodatkowe wyjaśnienia w języku Javadoc dotyczące zarządzania klasą i cyklem życia CameraX
- Dodano testy z instrumentacją dla aplikacji do testowania wydajności Antelope
- Usuń potrzebę „-keepattributes Signature” w konfiguracji aplikacji Proguard
Camera-Camera2 i Camera-Core 1.0.0-alpha01
7 maja 2019 r.
Zwolniono androidx.camera:camera-core:1.0.0-alpha01
i androidx.camera:camera-camera2:1.0.0-alpha01
. Wersja 1.0.0-alpha01 zawiera te zatwierdzenia.
Cykl życia aparatu w wersji 1.0.0-beta11
14 października 2020 r.
Aplikacja androidx.camera:camera-lifecycle:1.0.0-beta11
została zwolniona. Wersja 1.0.0-beta11 zawiera te zatwierdzenia.
Poprawki błędów
<UseCase>.getTargetRotation()
zwróci wartośćSurface.ROTATION_0
, jeśli zostanie wywołana przed podłączeniem do instancji Camera, chyba że w konstruktorze lub UseCase ustawiono wartość docelową w ramach operacji targetRotation. (I80fcd)
Cykl życia aparatu w wersji 1.0.0-beta10
23 września 2020 r.
Aplikacja androidx.camera:camera-lifecycle:1.0.0-beta10
została zwolniona. Wersja 1.0.0-beta10 zawiera te zatwierdzenia.
Poprawki błędów
- Opublikuj, aby obsługiwać Camera-Core 1.0.0-beta10
Cykl życia aparatu w wersji 1.0.0-beta09
16 września 2020 roku
Aplikacja androidx.camera:camera-lifecycle:1.0.0-beta09
została zwolniona. Wersja 1.0.0-beta09 zawiera te zatwierdzenia.
Cykl życia aparatu w wersji 1.0.0-beta08
19 sierpnia 2020 r.
Aplikacja androidx.camera:camera-lifecycle:1.0.0-beta08
została zwolniona. Wersja 1.0.0-beta08 zawiera te zatwierdzenia.
Poprawki błędów
- Inicjacja nie powinna już ulegać awariom, gdy używany jest kontekst, który nie zwraca obiektu aplikacji z
Context.getApplicationContext()
. (I3d3c9, b/160817073)
Cykl życia aparatu w wersji 1.0.0-beta07
22 lipca 2020 r.
Aplikacja androidx.camera:camera-lifecycle:1.0.0-beta07
została zwolniona. Wersja 1.0.0-beta07 zawiera te zatwierdzenia.
Cykl życia aparatu w wersji 1.0.0-beta06
24 czerwca 2020 r.
Aplikacja androidx.camera:camera-lifecycle:1.0.0-beta06
została zwolniona. Wersja 1.0.0-beta06 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Aparat CameraX można teraz skonfigurować przy użyciu procesu ProcessCameraProvider#configureInstance() przed wywołaniem procesu ProcessCameraProvider#getInstance(). Umożliwia to dostosowanie obiektu CameraXConfig bez konieczności implementacji komponentu CameraXConfig.Provider w klasie Application. (Ia1a8d)
Cykl życia aparatu w wersji 1.0.0-beta05
10 czerwca 2020 r.
Aplikacja androidx.camera:camera-lifecycle:1.0.0-beta05
została zwolniona. Wersja 1.0.0-beta05 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawa awarii przy uruchamianiu aplikacji Aparat X, gdy telefon jest w trybie Nie przeszkadzać.
InitializationException
zawieraCameraUnavailableException
, który zostanie ustawiony naListenableFuture
wyniku inicjowania zamiast do awarii aplikacji. (I9909a, b/149413835)
Cykl życia aparatu w wersji 1.0.0-beta04
27 maja 2020 r.
Aplikacja androidx.camera:camera-lifecycle:1.0.0-beta04
została zwolniona. Wersja 1.0.0-beta04 zawiera te zatwierdzenia.
Cykl życia aparatu w wersji 1.0.0-beta03
15 kwietnia 2020 roku
Aplikacja androidx.camera:camera-lifecycle:1.0.0-beta03
została zwolniona. Wersja 1.0.0-beta03 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawiono regresję z wersji beta03, w której wywołanie funkcji
bindToLifecycle()
z zerową wartościąUseCase
powodowało zgłoszenie wyjątku. Zapobiegło to pobraniu elementuCamera
bez powiązania elementuUseCase
. - Poprawki związane z opublikowaniem wersji
camera-core
Cykl życia aparatu w wersji 1.0.0-beta01
26 lutego 2020 r.
Aplikacja androidx.camera:camera-lifecycle:1.0.0-beta01
została zwolniona. Wersja 1.0.0-beta01 zawiera te zatwierdzenia.
Poprawki błędów
- Poprawiono dokumentację z informacją, że podczas inicjowania
ProcessCameraProvider
używana jest konfiguracja domyślna, a rozszerzenieApplication
jest opcjonalne. (I5e395)
Cykl życia aparatu w wersji 1.0.0-beta02
1 kwietnia 2020 r.
Aplikacja androidx.camera:camera-lifecycle:1.0.0-beta02
została zwolniona. Wersja 1.0.0-beta02 zawiera te zatwierdzenia.
Poprawki błędów
- Zaktualizowano, aby zapewnić obsługę poprawek błędów w artefaktach
camera-camera2:1.0.0-beta02
icamera-core:1.0.0-beta02
.
Cykl życia aparatu w wersji 1.0.0-alfa10
10 lutego 2020 r.
Aplikacja androidx.camera:camera-lifecycle:1.0.0-alpha10
została zwolniona. Wersja 1.0.0-alpha10 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Dodano adnotację
@MainThread
do metod BindToLifecycle oraz usunięto powiązanie i wszystkie. (I990d2)
Cykl życia aparatu w wersji 1.0.0-alfa03
22 stycznia 2020 r.
Aplikacja androidx.camera:camera-lifecycle:1.0.0-alpha03
została zwolniona. Wersja 1.0.0-alpha03 zawiera te zatwierdzenia.
Aktualizacje
- Różne poprawki i aktualizacje dotyczące zmian w Aparacie Core i Aparacie 2.
Cykl życia aparatu w wersji 1.0.0-alfa02
18 grudnia 2019 r.
Aplikacja androidx.camera:camera-lifecycle:1.0.0-alpha02
została zwolniona. Wersja 1.0.0-alpha02 zawiera te zatwierdzenia.
Zmiany zależności
- Zaktualizowano do
androidx.camera:camera-core:1.0.0-alpha08
.
Cykl życia aparatu w wersji 1.0.0-alfa01
4 grudnia 2019
Aplikacja androidx.camera:camera-lifecycle:1.0.0-alpha01
została zwolniona. Wersja 1.0.0-alfa01 cyklu życia aparatu zawiera te zatwierdzenia
Uwagi dotyczące interfejsu API
- Dodano artefakt cyklu życia aparatu, aby udostępnić interfejs
LifeCycleCameraProvider
i implementację o nazwieProcessCameraProvider
, która udostępnia podstawowe funkcje poprzedniej klasy CameraX i jest uzyskiwana za pomocą metodygetInstance()
. - Aby można było używać aplikacji CameraX, aplikacje powinny zawierać bibliotekę cyklu życia aparatu.
- Informacje o tym, jak przeprowadzić inicjowanie aparatu CameraX za pomocą
ProcessCameraProvider
, znajdziesz w sekcji o rdzeni kamery.
Rozszerzenia do aparatu i kamery w wersji 1.0.0
Wersja 1.0.0-alfa32
15 grudnia 2021 roku
Opublikowano 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
- Usunęliśmy niepotrzebne adnotacje
@RequiresApi(21)
z wewnętrznych klas/interfejsów. (I8e286, b/204917951) - Aktualizowanie plików API dla artefaktu rozszerzeń aparatów. (If683a, b/161377155)
Poprawki błędów
- Nie zezwalaj aplikacji na włączanie trybów rozszerzeń w przypadku powiązania
VideoCapture
. Rozszerzenia CameraX obsługują tylkoImageCapture
iPreview
. PoleVideoCapture
nie może jeszcze być obsługiwane. Jeśli aplikacja przypiszeVideoCapture
i włączy dowolny tryb rozszerzenia, zostanie zgłoszonyIllegalArgumentException
. (I0d87b) - Funkcja
CameraSelector#filter
nie zwraca już poleceniaIllegalArgumentException
, gdy zbiór wyników jest pusty. (I27804) - Nazwa interfejsu API
ExtensionsManager#getInstance
została zmieniona nagetInstanceAsync
, ponieważ zwracaListenableFuture
. Sufiks asynchroniczny nazwy funkcji może jasno wskazywać, że jest to funkcja asynchroniczna. (I279d2) - Usuń parametr rozstrzygania z interfejsu
ExtensionsManager#getEstimatedCaptureLatencyRange
API, ponieważ użytkownicy nie wiedzą, które rozmiary są obsługiwane w przypadku użyciaImageCapture
, i nie wiedzą, czy zwracane informacje o opóźnieniu dotyczą maksymalnego rozmiaru zapisu czy parametru rozdzielczości wejściowej. (I74bb2) - Przenieś parametr
CameraProvider
z funkcjiExtensionsManager
do interfejsu APIgetInstance()
. Dzięki temu użytkownicy nie muszą za każdym razem wprowadzać parametruCameraProvider
przy wywoływaniu funkcjiExtensionsManager
. (Ic7e48)
Wersja 1.0.0-alfa31
17 listopada 2021 r.
Opublikowano androidx.camera:camera-extensions:1.0.0-alpha31
i androidx.camera:camera-view:1.0.0-alpha31
. Wersja 1.0.0-alpha31 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Do publicznego interfejsu API dodano funkcję CameraSelector#filter, która umożliwia filtrowanie listy obiektów CameraInfo na podstawie elementu CameraSelector. (I105d0)
Poprawki błędów
- Rozwiązaliśmy problem powodujący awarię przy szybkim przełączaniu trybu rozszerzeń na niektórych urządzeniach. (Iebbef)
Wersja 1.0.0-alfa30
13 października 2021 r.
Opublikowano 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 atrybut minSdkVersion z pliku AndroidManifest.xml. Pozwoli to na łatwą integrację rdzeni kamery z aplikacjami, które mają wartość minSdkVersion mniejszą niż 21, ale chcą używać warunkowo ścieżek kodu, które korzystają z interfejsu API 21 lub nowszego. W przypadku aplikacji z minSdkVersion w wersji 21 lub nowszej ta zmiana nie wymaga żadnych działań. (Ie7f2e, b/200599470)
Poprawki błędów
- Usunięto problem z błędem AbstractMethodError, który występował po włączeniu usługi Prografard. (Iae468, b/201177844)
Wersja 1.0.0-alfa29
29 września 2021 r.
Opublikowano androidx.camera:camera-extensions:1.0.0-alpha29
i androidx.camera:camera-view:1.0.0-alpha29
. Wersja 1.0.0-alfa29 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 nich używaj elementuRotationProvider#removeListener(...)
. (Id9d4a). - Zaktualizowano klasę RotationOdbieranie (Ib1669)
Poprawki błędów
- Zmieniliśmy nazwę ExtensionMode#BEAUTY na FACE_RETOUCH, by prawidłowo prezentować, co jest wykonywane w trybie rozszerzenia. (I61f54, b/198515274)
- Rozwiązaliśmy problem z nieoczekiwaniem zamykaniem kamery, gdy w jednej aktywności używanych jest więcej niż jeden kontroler kamery i podgląd podglądu. (Ibfd18, b/197539358)
Wersja 1.0.0-alfa28
18 sierpnia 2021 r.
Opublikowano androidx.camera:camera-extensions:1.0.0-alpha28
i androidx.camera:camera-view:1.0.0-alpha28
. Wersja 1.0.0-alfa28 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Adnotacja ExperimentalUseCaseGroupLifecycle została usunięta, ponieważ interfejsy API nie są już eksperymentalne. (I17b85)
- Zrefaktoryzowano funkcję RotationListener i zmieniono nazwę na RotationProvider. Udostępnia ona te same funkcje przy użyciu nieco innego interfejsu API. (idffc5)
- Zmień nazwę TAP_TO_FOCUS_UNSUCCESSFUL na TAP_TO_FOCUS_NOT_FOCUSED i TAP_TO_FOCUS_SUCCESSFUL na TAP_TO_FOCUS_FOCUSED. Dokonano ostatecznej zmiany rozmiaru wyjściowego (I099fa)
Poprawki błędów
- Usunięto wycofane klasy
<EffectName><UseCase>Extender
, rozszerzenia ExtensionsErrorListener i powiązane interfejsy API ExtensionsManager. (I3b8c3)
Wersja 1.0.0-alfa27
21 lipca 2021 r.
Opublikowano androidx.camera:camera-extensions:1.0.0-alpha27
i androidx.camera:camera-view:1.0.0-alpha27
. Wersja 1.0.0-alfa27 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Interfejs API widocznego obszaru został zmieniony w wersji eksperymentalnej. Usuń eksperymentalną adnotację do interfejsu API. (I717ea)
- Nazwa pliku
CoordinateTransform#getTransform
została zmieniona naCoordinateTransform#transform
i aktualizacja pliku JavaDoc (I864ae)
Poprawki błędów
- Rozwiązaliśmy problem z rozciąganiem w trybie
PreviewView PERFORMANCE
podczas używania go razem z interfejsem tworzenia. (Ie1137, b/183864890)
Wersja 1.0.0-alfa26
30 czerwca 2021 r.
Opublikowano androidx.camera:camera-extensions:1.0.0-alpha26
i androidx.camera:camera-view:1.0.0-alpha26
. Wersja 1.0.0-alfa26 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- dodaj nową metodę
CameraController#getTapToFocusState()
, która eksponuje najnowszy wynik przesunięcia przez dotknięcie. (Iaccb0) - dodanie do kontrolera CameraController większej liczby funkcji rdzeni kamery: pobierania/setek dla docelowego formatu obrazu, docelowej rozdzielczości, trybu nagrywania, sterowania kamerą i niestandardowych wykonawców. (Iea8f2)
- dodać klasę RotationReceivedr, która otrzymuje zmiany obrotu powierzchni. Możesz użyć tej opcji, aby ustawić rotację docelową, gdy urządzenie jest ustawione w stałym trybie pionowym lub poziomym. (Ib278f)
- Udostępniono nowe publiczne interfejsy API getestimatedCaptureLatencyRange w klasie ExtensionsManager. (I6a8ec)
- Wycofano ExtensionsErrorListener. Obecnie ten interfejs służy tylko do monitorowania, czy przy włączaniu trybów rozszerzeń brakuje podglądu lub przechwytywania obrazu. CameraX automatycznie doda dodatkowy podgląd lub zdjęcie obrazu, żeby funkcje rozszerzenia działały prawidłowo. Od tego momentu w tym interfejsie nie będą zgłaszane żadne błędy. (I47d9e)
- Udostępniono nowe interfejsy API rozszerzenia ExtensionsManager getInstance, isExtensionAvailable i getExtensionEnabledCameraSelector oraz wycofane stare klasy
<EffectName><UseCase>Extender
i powiązane interfejsy API. (I329e6)
Wersja 1.0.0-alfa25
2 czerwca 2021 r.
Opublikowano androidx.camera:camera-extensions:1.0.0-alpha25
i androidx.camera:camera-view:1.0.0-alpha25
. Wersja 1.0.0-alfa25 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Interfejsy API ExperimentalCameraFilter nie są już dostępne w fazie eksperymentalnej i stają się formalne. Można ich używać bez adnotacji z adnotacjami. (I4bc94)
- Dodaj narzędzie, które przekształca współrzędne między przypadkami użycia. Przykład użycia: przekształcanie współrzędnych wykrytych w analizie obrazu i wyróżnienie wykrytego obiektu na podglądzie. (I63ab1, b/137515129)
- Czcionka
CameraView
została usunięta. PoleCameraView
zostało zastąpione przezCameraController
. Informacje na temat migracji znajdziesz w przewodniku po migracji. (Id5005).
Poprawki błędów
- Tekst
ExperimentalUseCaseGroupLifecycle
został zamieniony naExperimentalUseCaseGroup
. (I3b2ef, b/159033688)
Wersja 1.0.0-alfa24
21 kwietnia 2021 r.
Opublikowano androidx.camera:camera-extensions:1.0.0-alpha24
i androidx.camera:camera-view:1.0.0-alpha24
. Wersja 1.0.0-alfa24 zawiera te zatwierdzenia.
Poprawki błędów
- Adnotacja
@Experimental
została zastąpiona@RequiresOptIn
eksperymentalnymi interfejsami API. Do wywoływania eksperymentalnych interfejsów API używaj interfejsuandroidx.annotation.OptIn
zamiast wycofanego interfejsuandroidx.annotation.experimental.UseExperimental
. (Iff226) - Rozwiązano problem z rozciągniętym podglądem na urządzeniu Samsung J5 Prime (Ib10b6)
Rozszerzenia aparatu i widok w wersji 1.0.0-alfa23
24 marca 2021 r.
Opublikowano 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
- Wycofujemy CameraView. Zamiast nich używaj elementu
LifecycleCameraController
. Zobacz przewodnik po migracji (Idac2c). - Dodano adnotację FloatRange do ustawienia setLinearZoom() (I69971).
Poprawki błędów
- Przypięto zależności widoku kamery w celu korzystania z artefaktów w wersji 1.0.0. Zależnie od obrazu z kamery nie spowoduje to już, że zależność działania Gradle'a spowoduje automatyczne uaktualnienie trybu kamery, kamery-aplikacji2 i cyklu życia do najnowszych artefaktów w wersji 1.1.0. Widok z kamery będzie jednak nadal zgodny z tymi artefaktami, o ile zostały wyraźnie ustawione na używanie wersji 1.1.0. (Ic8fa1, b/181599852)
- Poprawiono rozciągnięty podgląd Samsung A3 w widoku podglądu. (Iacb30, b/180121821)
- Rozwiązaliśmy problem polegający na tym, że przed zainicjowaniem kamery nie można było ustawić selektora kamery. (Ic8bd0)
Rozszerzenia aparatu i widok w wersji 1.0.0-alfa22
24 lutego 2021 r.
Opublikowano 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ć metodę CameraInfo do elementu CameraController. (Ib8138, b/178251727)
Poprawki błędów
- Naprawiono rozszerzenie ExtensionsErrorListener do zgłaszania błędów, gdy powiązany jest tylko podgląd lub przechwytywanie obrazu. (I5ae39)
Rozszerzenia do aparatu i przeglądarki 1.0.0-alfa21
27 stycznia 2021 r.
Opublikowano 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.
Zwolnienie w celu obsługi innych artefaktów biblioteki kamery.
Rozszerzenia aparatu i widok w wersji 1.0.0-alfa20
16 grudnia 2020 roku
Opublikowano androidx.camera:camera-extensions:1.0.0-alpha20
i androidx.camera:camera-view:1.0.0-alpha20
. Wersja 1.0.0-alpha20 zawiera te zatwierdzenia.
Zwolnienie w celu obsługi innych artefaktów biblioteki kamery.
Rozszerzenia do aparatu i widoku z kamery w wersji 1.0.0-alfa19
11 listopada 2020 roku
Opublikowano androidx.camera:camera-extensions:1.0.0-alpha19
i androidx.camera:camera-view:1.0.0-alpha19
. Wersja 1.0.0-alfa19 zawiera te zatwierdzenia.
Poprawki błędów
- Dodano adnotację
@ExperimentalVideo
do widoku kamery. Ta adnotacja oznacza interfejsy API, które udostępniają eksperymentalne funkcje wideo, które mogą się zmienić w miarę ich rozwijania. Każda metoda korzystająca z tych interfejsów API powinna używać adnotacji@UseExperimental
z atrybutemExperimentalVideo
jakomarkerClass
. (I6d729)
Rozszerzenia do aparatu w wersji 1.0.0-alfa18
14 października 2020 r.
Aplikacja androidx.camera:camera-extensions:1.0.0-alpha18
została zwolniona. Wersja 1.0.0-alfa18 zawiera te zatwierdzenia.
Poprawki błędów
- Skrócono czas oczekiwania inicjowania usługi CameraX i mechanizmu bindToLifecycle (I61dc5)
<UseCase>.getTargetRotation()
zwróci wartośćSurface.ROTATION_0
, jeśli zostanie wywołana przed podłączeniem do instancji Camera, chyba że w konstruktorze lub UseCase ustawiono wartość docelową w ramach operacji targetRotation. (I80fcd)
Camera-View – wersja 1.0.0-alfa18
14 października 2020 r.
Aplikacja androidx.camera:camera-view:1.0.0-alpha18
została zwolniona. Wersja 1.0.0-alfa18 zawiera te zatwierdzenia.
Zwolnienie w celu obsługi innych artefaktów biblioteki kamery.
Rozszerzenia do aparatu w wersji 1.0.0-alfa17
23 września 2020 r.
Aplikacja androidx.camera:camera-extensions:1.0.0-alpha17
została zwolniona. Wersja 1.0.0-alfa17 zawiera te zatwierdzenia.
Poprawki błędów
- Opublikuj, aby obsługiwać Camera-Core 1.0.0-beta10
Widok z aparatu – wersja 1.0.0-alfa17
23 września 2020 r.
Aplikacja androidx.camera:camera-view:1.0.0-alpha17
została zwolniona. Wersja 1.0.0-alfa17 zawiera te zatwierdzenia.
Poprawki błędów
- Opublikuj, aby obsługiwać Camera-Core 1.0.0-beta10
Rozszerzenia do aparatu w wersji 1.0.0-alfa16
16 września 2020 roku
Aplikacja androidx.camera:camera-extensions:1.0.0-alpha16
została zwolniona. Wersja 1.0.0-alfa16 zawiera te zatwierdzenia.
Poprawki błędów
- W
ExtensionsManager
dodano metodę pobierania obiektuExtensions
, który służy do włączania i wysyłania zapytań o rozszerzenia w instancjach aparatu (I4fb7e)
Widok z aparatu – wersja 1.0.0-alfa16
16 września 2020 roku
Aplikacja androidx.camera:camera-view:1.0.0-alpha16
została zwolniona. Wersja 1.0.0-alfa16 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Usunięto
PreviewView#setDeviceRotationForRemoteDisplayMode()
iPreviewView#getDeviceRotationForRemoteDisplayMode()
. Istnieją 2 metody dostosowywania rotacji podglądu, gdy obrót nie jest wymagany, np. w przypadku wyświetlacza zdalnego. Aby teraz obsługiwać rotację na podglądzie innym niż displayowy, ustaw wybraną rotację za pomocą funkcjiPreview#setTargetRotation()
i nowo dodanego elementuPreviewView#getViewPort(targetRotation)
. (Ib62cc) - Nazwa elementu
createSurfaceProvider()
została zmieniona nagetSurfaceProvider()
. Metoda zawsze będzie zwracać tę samą instancję Preview.SurfaceProvider. (Iff83c)
Poprawki błędów
- Wymuszono użycie funkcji TextureView, jeśli włączony jest efekt rozszerzenia, a implementacja biblioteki dostawcy musi wykonać specjalny proces na platformie wyjściowej. (I0c3cc)
- Zezwalaj na dowolną rotację celów na potrzeby 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 podglądzie wersja przedpremierowa
OnClickListener#onClick()
nie jest wywoływana, gdy użytkownik kliknie PreviewView. Zdarzenie dotknięcia jest omyłkowo przetwarzane przez PreviewView#onTouchEvent(). Ten problem zostanie rozwiązany w następnej wersji. - Wartość MeteringPoint uzyskana z metody
PreviewView#getMeteringPointFactory()
może być nieprawidłowa, jeśli z podglądem jest używany obiekt ViewPort.
Rozszerzenia do aparatu w wersji 1.0.0-alfa15
19 sierpnia 2020 r.
Aplikacja androidx.camera:camera-extensions:1.0.0-alpha15
została zwolniona. Wersja 1.0.0-alpha15 zawiera te zatwierdzenia.
Poprawki błędów
- Metoda
ExtensionsManager.init()
przyjmuje teraz parametr kontekst, a nie 0 argumentów. (Ife754) Inicjacja nie powinna już ulegać awariom, gdy używany jest kontekst, który nie zwraca obiektu aplikacji z
Context.getApplicationContext()
. (I3d3c9, b/160817073)Camera-View – wersja 1.0.0-alfa15
19 sierpnia 2020 r.
Aplikacja androidx.camera:camera-view:1.0.0-alpha15
została zwolniona. Wersja 1.0.0-alpha15 zawiera te zatwierdzenia.
Poprawki błędów
DisplayOrientedMeteringPointFactory
pobiera wystąpienieCameraInfo
zamiastCameraSelector
, więc dostępne jest bezpośrednie mapowanie na kamerę, dla której fabryka będzie generować punkty. Wszystkie klasy używające klasyDisplayOrientedMeteringPointFactory
również przyjmują wystąpienieCameraInfo
zamiastCameraSelector
. (I400c1)- Czcionka
TextureViewMeteringPointFactory
została usunięta.PreviewView
udostępnia publiczny interfejs API (createMeteringPointFactory()
) do tworzenia fabryki punktów pomiarowych niezależnie od tego, czy wykorzystuje onaTextureView
czySurfaceView
. (Ide693) - zmień nazwę trybów implementacji
SURFACE_VIEW
/TEXTURE_VIEW
w Podglądzie naPERFORMANCE
/COMPATIBLE
.PERFORMANCE
to stary trybSURFACE_VIEW
, aCOMPATIBLE
to stary trybTEXTURE_VIEW
. (I0edc2) - W przypadku robienia zdjęcia zastąp odwróconą poziomą flagę w metadanych na podstawie kierunku aparatu. (I28499)
Rozszerzenia do aparatu w wersji 1.0.0-alfa14
22 lipca 2020 r.
Aplikacja androidx.camera:camera-extensions:1.0.0-alpha14
została zwolniona. Wersja 1.0.0-alfa14 zawiera te zatwierdzenia.
Camera-View – wersja 1.0.0-alfa14
22 lipca 2020 r.
Aplikacja androidx.camera:camera-view:1.0.0-alpha14
została zwolniona. Wersja 1.0.0-alfa14 zawiera te zatwierdzenia.
Rozszerzenia do aparatu w wersji 1.0.0-alfa13
24 czerwca 2020 r.
Aplikacja androidx.camera:camera-extensions:1.0.0-alpha13
została zwolniona. Wersja 1.0.0-alfa13 zawiera te zatwierdzenia.
Poprawki błędów
- Dodaliśmy eksperymentalne interfejsy filtrowania aparatów według identyfikatora i parametrów kamery. (I28f61)
Camera-View – wersja 1.0.0-alfa13
24 czerwca 2020 r.
Aplikacja androidx.camera:camera-view:1.0.0-alpha13
została zwolniona. Wersja 1.0.0-alfa13 zawiera te zatwierdzenia.
Poprawki błędów
- Obiekt CameraView nie powoduje już awarii z wystąpieniem IllegalArgumentException po powiązaniu z identyfikatorem cyklu życia, którego cykl życia zmienia się w stan Zniszczony wkrótce po powiązaniu. Cykle życia powiązania w stanie USUNIĘTO nie będą próbowały otworzyć kamery. (I7c2b8)
- Element PreviewView StreamState jest teraz dostępny za pomocą funkcji CameraView.getPreviewStreamState() (I21a2b)
Rozszerzenia do aparatu w wersji 1.0.0-alfa12
10 czerwca 2020 r.
Aplikacja androidx.camera:camera-extensions:1.0.0-alpha12
została zwolniona. Wersja 1.0.0-alpha12 zawiera te zatwierdzenia.
Poprawki błędów
- Naprawa awarii przy uruchamianiu aplikacji Aparat X, gdy telefon jest w trybie Nie przeszkadzać.
InitializationException
zawieraCameraUnavailableException
, który zostanie ustawiony naListenableFuture
wyniku inicjowania zamiast do awarii aplikacji. (I9909a, b/149413835)
Camera-View – wersja 1.0.0-alfa12
10 czerwca 2020 r.
Aplikacja androidx.camera:camera-view:1.0.0-alpha12
została zwolniona. Wersja 1.0.0-alpha12 zawiera te zatwierdzenia.
Poprawki błędów
- Dodaj interfejs
PreviewView#getBitmap()
API, który zwraca mapę bitową treści wyświetlane na podglądzie. (I9b500, b/157659818)
Rozszerzenia do aparatu w wersji 1.0.0-alfa11
27 maja 2020 r.
Aplikacja androidx.camera:camera-extensions:1.0.0-alpha11
została zwolniona. Wersja 1.0.0-alpha11 zawiera te zatwierdzenia.
Camera-View – wersja 1.0.0-alfa12
10 czerwca 2020 r.
Aplikacja androidx.camera:camera-view:1.0.0-alpha12
została zwolniona. 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 mapę bitową treści wyświetlane na podglądzie. (I9b500, b/157659818)
Camera-View – wersja 1.0.0-alfa11
27 maja 2020 r.
Aplikacja androidx.camera:camera-view:1.0.0-alpha11
została zwolniona. Wersja 1.0.0-alpha11 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Dodaj interfejs
PreviewView#getPreviewStreamState
API, który umożliwia aplikacjom sprawdzanie, czy podgląd jest przesyłany strumieniowo. Gdy tryb PreviewView jest w trybie TEXTURE_VIEW, stan STREAMING gwarantuje też widoczność obrazu podglądu. (Ic0906, b/154652477) - Dodano interfejs API
PreviewView#setDeviceRotationForRemoteDisplayMode()
, aby umożliwić obrót urządzenia przy obliczaniu przekształcenia, jeśli aplikacja działa w trybie zdalnego wyświetlania. (I59b95, b/153514525)
Poprawki błędów
- Rozwiązaliśmy problem z zniekształceniem podglądu w aparatach
FULL/LIMITED/LEVEL_3
z Androidem 7.0 i starszymi wersjami. Wymuszone użycie trybuImplementationMode#TEXTURE_VIEW
, jeśli Android jest w wersji 7.0 lub starszej. (I83e30, b/155085307) - Usunięto parametr
CameraInfo
zPreviewView#createSurfaceProvider()
. TerazPreviewView
pobiera go wewnętrznie zSurfaceRequest
. (If18f0, b/154652477) - Poprawiliśmy domyślny format obrazu w rejestracji wideo na 16:9 w funkcji CameraView. (Ie6a7b, b/153237864)
- Napraw problem z czarnym ekranem (
PreviewView
) po przesunięciu fragmentu elementuPreview
, a następnie przesunięciu z powrotem w ViewPager2. Naprawiono też problem, gdyremoveView(previewview)
, a potemaddView(previewView)
. (Iab555, b/149877652, b/147354615) - Zaktualizuj interfejs API
CameraView#takePicture()
, aby umożliwić zapisywanie obrazów wUri
iOutputStream
. Zaktualizuj aplikację testową, aby używaćUri
jako przykładu kanonicznego. (Ia2459, b/153607583) - Typ skali komponentu PreviewView można ustawić na podstawie układu XML, ustawiając atrybut
ScaleType
. (I08565, b/153015659) CameraView.ScaleType
został(a) usunięty(a). Zamiast tego użyjPreviewView.ScaleType
, aby ustawić lub pobrać typ skali za pomocą CameraView. (Ia8974, b/153014831)- Jeśli aplikacja
PreviewView
nie ma jeszcze koloru tła, domyślnie przyznaj mu ten kolor. Dzięki temu jej zawartość nie będzie widoczna przed rozpoczęciem transmisji podglądu. (I09fad)
Rozszerzenia do aparatu w wersji 1.0.0-alfa10
15 kwietnia 2020 roku
Aplikacja androidx.camera:camera-extensions:1.0.0-alpha10
została zwolniona. Wersja 1.0.0-alpha10 zawiera te zatwierdzenia.
Poprawki błędów
- Poprawki związane z opublikowaniem aparatu Camera-Core
Camera-View – wersja 1.0.0-alfa10
15 kwietnia 2020 roku
Aplikacja androidx.camera:camera-view:1.0.0-alpha010
została zwolniona. Wersja 1.0.0-alpha010 zawiera te zatwierdzenia.
Poprawki błędów
- Rozwiązano poprzedni znany problem, który powodował, że implementacja jednostki SurfaceView na platformie
PreviewView
nie działała prawidłowo na niektórych urządzeniach i mogła powodować awarię aplikacji po wznowieniu podglądu. (I5ed6b)
Rozszerzenia do aparatu w wersji 1.0.0-alfa09
1 kwietnia 2020 r.
Aplikacja androidx.camera:camera-extensions:1.0.0-alpha09
została zwolniona. Wersja 1.0.0-alpha09 zawiera te zatwierdzenia.
Poprawki błędów
- Zaktualizowano, aby zapewnić obsługę poprawek błędów w artefaktach
camera-camera2:1.0.0-beta02
,camera-core:1.0.0-beta02
icamera-lifecycle:1.0.0-beta02
Camera-View – wersja 1.0.0-alfa09
Opublikowano 1 kwietnia 2020 r.
androidx.camera:camera-view:1.0.0-alpha09
. Wersja 1.0.0-alpha09 zawiera te zatwierdzenia.
Znane problemy
- Używanie funkcji
ImplementationMode.SURFACE_VIEW
z elementemPreviewView
może nie działać dobrze na niektórych urządzeniach, ponieważSurfaceView
używane do podglądu utraciło ważność po zatrzymaniu cyklu życia okna, w którym się znajdowało. Po ponownym uruchomieniu kamera zostanie ponownie uruchomiona i może podjąć próbę wznowienia podglądu, zanim powierzchnia urządzeniaSurfaceView
zacznie znów obowiązywać. Na razie użyjImplementationMode.TEXTURE_VIEW
.
Zmiany w interfejsie API
- Nazwa elementu
PreviewView.setImplementationMode()
została zmieniona naPreviewView.setPreferredImplementationMode()
. - Nazwa elementu
PreviewView.getImplementationMode()
została zmieniona naPreviewView.getPreferredImplementationMode()
. - Zastąpiono element
PreviewView.getSurfaceProvider()
przez elementPreviewView.createSurfaceProvider(CameraInfo)
. W miarę możliwości do optymalizacji podglądu przy użyciuImplementationMode.SURFACE_VIEW
używane jest wystąpienieCameraInfo
z możliwością wartości null. Jeśli jest przekazywana instancja o wartości null lub jeśli ustawisz preferowany tryb implementacji naImplementationMode.TEXTURE_VIEW
, używany jest wewnętrznie interfejsImplementationMode.TEXTURE_VIEW
. Poniższy przykładowy kod pokazuje, jak przykładowo podgląd był wcześniej używany z podglądem.
preview.setSurfaceProvider(previewView.previewSurfaceProvider) cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview)
W tej chwili możesz napisać:
val camera = cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview) previewView.preferredImplementationMode = ImplementationMode.TEXTURE_VIEW preview.setSurfaceProvider(previewView.createSurfaceProvider(camera.cameraInfo))
Adnotacja
@UiThread
została dodana do:PreviewView.getSurfaceProvider()
, co oznacza, że należy ją wywoływać z wątku głównego. (I192f3)Dodano element
PreviewView.setScaleType()
, który umożliwia ustawienie rodzaju skali podglądu. Może mieć jedną z wartości w poluPreviewView.ScaleType
i ma wartość domyślnąPreviewView.ScaleType.FILL_CENTER
.Dodano
PreviewView.getScaleType()
.Usunęliśmy obsługę ustawiania trybu implementacji dla elementu
PreviewView
w układzie XML przy użyciu atrybutuimplementationMode
.Dodaj interfejs
createMeteringPointFactory()
API do PreviewView, aby umożliwić konwersję (x, y) wPreviewView
naMeteringPoint
. (Ib36d7)
Poprawki błędów
- Rozwiązaliśmy problemy, które powodowały wyświetlanie nieprawidłowego podglądu po zmianie rozmiaru elementu
PreviewView
. (I71101)
Rozszerzenia do aparatu w wersji 1.0.0-alfa08
26 lutego 2020 r.
Aplikacja androidx.camera:camera-extensions:1.0.0-alpha08
została zwolniona. Wersja 1.0.0-alpha08 zawiera te zatwierdzenia.
Camera-View – wersja 1.0.0-alfa08
26 lutego 2020 r.
Aplikacja androidx.camera:camera-view:1.0.0-alpha08
została zwolniona. Wersja 1.0.0-alpha08 zawiera te zatwierdzenia.
Poprawki błędów
- Zastąpiono
ListenableFuture
wSurfaceRequest.provideSurface()
naExecutor
iCallback
. Upraszcza to interfejs API, ponieważ nie wymaga już obsługi wyjątków wprovideSurface()
i wymusza, że nie można anulować wywołania zwrotnegoprovideSurface()
. Ma to na celu zapobieganie awariom na starszych urządzeniach spowodowanych przedwczesnym udostępnieniem tych platform. ObiektSurfaceRequest.Result
jest teraz używany do śledzenia, jakSurfaceRequest
korzysta z podanegoSurface
. (I7854b) - Zmieniono nazwę
SurfaceRequest.setSurface(Surface)
naSurfaceRequest.provideSurface(Surface)
iSurfaceRequest.setWillNotComplete()
naSurfaceRequest.willNotProvideSurface()
. (I224fe) - Naprawiono inicjowanie wariantów aplikacji z włączoną funkcją ProGuard. Zachowano flagę, która ustawia domyślnego dostawcę
CameraXConfig
. (I2d6c1)
Rozszerzenia do aparatu w wersji 1.0.0-alfa07
10 lutego 2020 r.
Aplikacja androidx.camera:camera-extensions:1.0.0-alpha07
została zwolniona. Wersja 1.0.0-alpha07 zawiera te zatwierdzenia.
Poprawki błędów
- Argumenty, które były wcześniej przekazywane w funkcjach
ImageCapture.OnImageSavedCallback.onError()
iImageCapture.OnImageCapturedCallback.onError()
, zostały zastąpione pojedynczym argumentemImageCaptureException
, który nadal zawiera wszystkie przekazane wcześniej informacje. - Argument pliku przekazany wcześniej w funkcji
ImageCapture.OnImageSavedCallback.onImageSaved()
został usunięty. (I750d2)
Camera-View: wersja 1.0.0-alfa07
10 lutego 2020 r.
Aplikacja androidx.camera:camera-view:1.0.0-alpha07
została zwolniona. Wersja 1.0.0-alpha07 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Implementacja
TextureView
interfejsuPreviewView
ustawia teraz rozmiar obiektuTextureView
na wartość wyjściową czujnika aparatu, a następnie skaluje go tak, aby wypełnić element nadrzędny (PreviewView
). Jeśli chcesz, aby podgląd z aparatu wypełniał całą część interfejsu użytkownika (np. cały ekran), nie ustawiaj stałej wartości rozmiaru elementuPreviewView
ani nie otaczaj zawartości elementu (na przykład przy użyciu atrybutu „wrap_content
”), przez co podgląd aparatu może wypełniać tylko część obszaruPreviewView
(jeśli ma mniejszy rozmiar obrazu wyjściowego czujnika aparatu). Zamiast tego ustaw wymiarPreviewView
tak, jak jego element nadrzędny (na przykład przy użyciu atrybutu „match_parent
”). (1204869)
Poprawki błędów
- Zaktualizowano
ImageCapture
, aby umożliwić zapisywanie obrazów w usługachUri
iOutputStream
. Połączono przeciążone metody (takePicture
) w jedną. Zaktualizowano aplikację testową, aby używała stronyUri
jako przykładu kanonicznego. (Ia3bec) - Nazwa konta
Preview.PreviewSurfaceProvider
została zmieniona naPreview.SurfaceProvider
. Deweloperzy nie muszą już tworzyć własnych elementówListenableFuture
w interfejsieSurfaceProvider
, a podawanieSurface
odbywa się teraz za pomocą nowego obiektuSurfaceRequest
. MetodaPreview.getPreviewSurfaceProvider()
została usunięta ze względu na możliwość jej nadużycia, gdyPreview
jest sparowany z innymi klasami, takimi jakPreviewView
. (I20105) - Argumenty, które były wcześniej przekazywane w funkcjach
ImageCapture.OnImageSavedCallback.onError()
iImageCapture.OnImageCapturedCallback.onError()
, zostały zastąpione pojedynczym argumentemImageCaptureException
, który nadal zawiera wszystkie przekazane wcześniej informacje. - Argument pliku przekazany wcześniej w funkcji
ImageCapture.OnImageSavedCallback.onImageSaved()
został usunięty. (I750d2) - Interfejs API został zaktualizowany. Metody
getZoomRatio()
,getMaxZoomRatio()
,getMinZoomRatio()
igetLinearZoom()
obiektuCameraInfo
zostały scalone z metodągetZoomState()
, która zwraca instancjęZoomState
. (Ib19fe)
Rozszerzenia do aparatu w wersji 1.0.0-alfa06
22 stycznia 2020 r.
Aplikacja androidx.camera:camera-extensions:1.0.0-alpha06
została zwolniona. Wersja 1.0.0-alpha06 zawiera te zatwierdzenia.
Aktualizacje
- Różne poprawki i aktualizacje dotyczące zmian w Aparacie Core i Aparacie 2.
Camera-View – wersja 1.0.0-alfa06
22 stycznia 2020 r.
Aplikacja androidx.camera:camera-view:1.0.0-alpha06
została zwolniona. Wersja 1.0.0-alpha06 zawiera te zatwierdzenia.
Aktualizacje
- Różne poprawki i aktualizacje dotyczące zmian w Aparacie Core i Aparacie 2.
Rozszerzenia do aparatu w wersji 1.0.0-alfa05
18 grudnia 2019 r.
Aplikacja androidx.camera:camera-extensions:1.0.0-alpha05
została zwolniona. Wersja 1.0.0-alpha05 zawiera te zatwierdzenia.
Poprawki błędów
- Zaktualizowano zgodnie z wewnętrznymi interfejsami API aparatu.
Camera-View – wersja 1.0.0-alfa05
18 grudnia 2019 r.
Aplikacja androidx.camera:camera-view:1.0.0-alpha05
została zwolniona. Wersja 1.0.0-alpha05 zawiera te zatwierdzenia.
Znane problemy
- Podczas korzystania z widoku podglądu format obrazu może być nieprawidłowy (b/146215202).
Nowe funkcje
- Wdrożyliśmy nową klasę o nazwie
PreviewView.TextureViewImplementation
, która synchronizuje cykl życia obiektu SurfaceTexture z użyciem powierzchni TextureView przez aparat.
Rozszerzenia do aparatu w wersji 1.0.0-alfa04
4 grudnia 2019
Aplikacja androidx.camera:camera-extensions:1.0.0-alpha04
została zwolniona. Wersja 1.0.0-alfa04 rozszerzeń aparatu zawiera te zatwierdzenia
Zmiany w interfejsie API
Sprawdzanie dostępności i włączenia rozszerzenia odbiera teraz parametr
CameraSelector
jako parametr wejściowy. Musi to być ta sama wartośćCameraSelector
, która jest używana do powiązania zastosowania.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 – wersja 1.0.0-alfa04
4 grudnia 2019
Aplikacja androidx.camera:camera-view:1.0.0-alpha04
została zwolniona. Wersja 1.0.0-alfa04 widoku kamery zawiera te zatwierdzenia
Zmiany w interfejsie API
- Dostępna jest klasa
PreviewView
do łatwego wyświetlania danych wyjściowych z przykładu użycia wersji przedpremierowej w aplikacji. Elementy typu
PreviewView
można uwzględnić w układzie:<androidx.camera.view.PreviewView android:id="@+id/preview_view" … />
PreviewView
udostępniaPreviewSurfaceProvider
, aby łatwo połączyć przypadek użycia w wersji testowej.preview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
W nazwach interfejsów API „
ZoomLevel
” to teraz „ZoomRatio
”Niektóre parametry metody zmieniły wartość null
Rozszerzenia do aparatu i widoku aparatu w wersji 1.0.0-alfa03
9 października 2019 r.
Opublikowano androidx.camera:camera-extensions:1.0.0-alpha03
i androidx.camera:camera-view:1.0.0-alpha03
. To są zobowiązania zawarte w camera-extensions:1.0.0-alpha03
i zobowiązania zawarte w camera-view:1.0.0-alpha03
.
Nowe funkcje
- Dodano inicjator kontekstu dla rozszerzeń. Wersja rozszerzeń zwiększona do 1.1.0
Rozszerzenia do aparatu i widoku aparatu w wersji 1.0.0-alfa02
5 września 2019 r.
Zwolniono androidx.camera:camera-extensions:1.0.0-alpha02
i androidx.camera:camera-view:1.0.0-alpha02
. To są zobowiązania zawarte w ramach aparatu-extensions:1.0.0-alpha02 oraz zobowiązania uwzględnione w ramach kamery-view:1.0.0-alpha02.
- Dodano testy sprawdzające, czy w domenie
PreviewImageProcessorImpl
prawidłowo zaimplementowane są sygnatury czasowe. - Napraw błąd testu
ExtensionTest
na Nexusie 5 (poziom interfejsu API 21) i upewnij się, że jest dostępny podgląd.
Rozszerzenia do aparatu i widoku aparatu w wersji 1.0.0-alpha01
7 sierpnia 2019 r.
Zwolniono androidx.camera:camera-extensions:1.0.0-alpha01
i androidx.camera:camera-view:1.0.0-alpha01
.
To są zobowiązania zawarte w kamerach-extensions:1.0.0-alpha01
oraz zobowiązania zawarte w kamerze:1.0.0-alpha01
- Nowa biblioteka z kolejnymi rozszerzeniami aparatu, która zapewnia dostęp do efektów na obsługiwanych urządzeniach. Ta biblioteka jest nadal rozwijana.
- Nowe zajęcia dotyczące widoku aparatu. Ta biblioteka jest nadal rozwijana.