Aparat X

CameraX to dodatek do Jetpacka, który ułatwia dodawanie możliwości aparatu do aplikacji. Biblioteka zawiera szereg poprawek dotyczących zgodności i rozwiązań tymczasowych, które pomagają zapewnić spójne wrażenia programistów na wielu urządzeniach.

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.3 - 1.4.0-beta01 -
rdzenie kamery 1.3.3 - 1.4.0-beta01 -
efekty kamery - - 1.4.0-beta01 -
Rozszerzenia-aparatów 1.3.3 - 1.4.0-beta01 -
cykl życia aparatu 1.3.3 - 1.4.0-beta01 -
Camera-MLkit-vision - - 1.4.0-beta01 -
widok z kamery 1.3.3 - 1.4.0-beta01 -
wizjer-aparat - - 1.3.0-beta02 1.4.0-alfa06
film z aparatu 1.3.3 - 1.4.0-beta01 -
Ostatnia aktualizacja tej biblioteki: 14 maja 2024 r.

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:

Groovy

dependencies {
  // CameraX core library using the camera2 implementation
  def camerax_version = "1.4.0-beta01"
  // 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-beta01"
    // 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.

Utwórz nowy numer

Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.

Wizjer aparatu w wersji 1.0

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.

Wersja 1.4

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 tabeli Viewfinder, aby lepiej odzwierciedlić podstawowe implementacje, i dodaj stałe stałe dla funkcji TransformationInfo.sourceRotation. (Ic6149)
  • Dodano element ZoomGestureDetector.ZoomEvent, który przedstawia stany gestu powiększenia. (I84cdf)

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 i VideoCapture(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 do ImageCaptureCapabilities, aby wysyłać zapytania o możliwości urządzenia. Domyślnym formatem wyjściowym jest OUTPUT_FORMAT_JPEG. Przechwytuje obrazy SDR w formacie JPEG. Jeśli urządzenie obsługuje funkcję ultra HDR, a format wyjściowy jest ustawiony na OUTPUT_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 polu CameraInfo, aby uzyskać informacje o fizycznej kamerze i dodać obiekt ustawiający/pobierający fizyczny identyfikator kamery w komponencie CameraSelector (Ic5b90)
  • Zamień CameraController#COORDINATE_SYSTEM_VIEW_REFERENCED na ImageAnalysis#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 i CameraExtensionsControl umożliwiają aplikacjom monitorowanie i dostosowywanie ustawień siły rozszerzenia. Aplikacje mogą uzyskiwać instancję CameraExtensionsInfo lub CameraExtensionsControl za pomocą nowo dodanej metody ExtensionsManager#getCameraExtensionsInfo() lub ExtensionsManager#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 obiektu PreviewView. Pozwala to przekształcić współrzędne z jednego obiektu UseCase na drugi. Przykład: przekształcanie współrzędnych wykrytych obiektów w ImageAnalysis na nakładkę PreviewView. (I947ab)
  • Zadbaj o bardziej ogólny charakter interfejsu API camera-viewfinder-core, aby można było go używać w camera-viewfinder i camera-viewfinder-compose. (I1e295)
  • Dodaj funkcję getSurface do tablicy ViewfinderSurfaceRequest. (I781a0)
  • Używaj wersji camera-viewfinder-core w usłudze camera-viewfinder i wycofaj ViewfinderSurfaceRequest i CameraViewfinder. (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 ustawienie ResolutionSelector z preferowaną rozdzielczością i dopasowaniem AspectRatioStrategy do UseCase 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 z ImageAnalysis 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 lub ImageCapture. Ten artefakt zawiera implementacje OpenGL interfejsu API CameraEffect, 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. W CameraInfo 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 na ScreenFlashListener i przeniesiono ScreenFlashUiCompleter#getExpirationTimeMillis do parametru expirationTimeMillis parametru ScreenFlash#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() na isMirroring() (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 na ScreenFlash, ScreenFlashUiControl#applyScreenFlashUi na ScreenFlash#apply, ScreenFlashUiControl#clearScreenFlashUi na ScreenFlash#clear i dodano metodę getScreenFlashUiApplyTimeoutSeconds zamiast bezpośrednio ujawniać działanie aplikacji SCREEN_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 zasada ImageCapture 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 i OnImageSavedCallback.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 od PreviewView lub nowo dodanego ScreenFlashView, 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ą funkcji ImageCapture.Builder#setPostviewEnabled(). Rozmiar po wyświetleniu można wybrać za pomocą pola ImageCapture.Builder#setPostviewResolutionSelector(). Podczas wywoływania funkcji takePicture(), onPostviewBitmapAvailable i onCaptureProcessProgressed można zaimplementować w OnImageSavedCallback lub OnImageCapturedCallback, 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 testowej UseCase. (Ie5b6c)
  • Dodano interfejsy API, aby obsługiwać więcej jakości w VideoCapture. Za pomocą Recorder.Builder#setVideoCapabilitiesSource(int) można użyć protokołu VIDEO_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. Jednak CamcorderProfile 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 elementu CameraController. (I9a96c, b/308240643)

Poprawki błędów

  • Z Aparatu 1.3.1: poprawiliśmy działanie 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)
  • 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ów ImageAnalysis. (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 elementem ResolutionSelector. 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 elementami ImageCapture i podglądem. Ta poprawka zwróci prawidłową wartość, gdy aplikacje będą wysyłać zapytania o dostępność funkcji ImageAnalysis za pomocą funkcji ExtensionsManager#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.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 ustawienie ResolutionSelector z preferowaną rozdzielczością i dopasowaniem AspectRatioStrategy do przypadku użycia ImageAnalysis. (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

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 elementami ImageCapture i podglądem. Ta poprawka zwróci prawidłową wartość, gdy aplikacje będą wysyłać zapytania o dostępność funkcji ImageAnalysis za pomocą funkcji ExtensionsManager#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, gdy VideoCapture, 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) na setAllowedResolutionMode i zmieniono nazwę stałych ResolutionSelector#HIGH_RESOLUTION_FLAG_OFF/ON na PREFER_CAPTURE_RATE_OVER_HIGHER_RESOLUTION/PREFER_HIGHER_RESOLUTION_OVER_CAPTURE_RATE. (If84e8)
  • Usunięto wycofane interfejsy API ImageAnalysis.setTargetRotationDegrees(int), ImageCapture.setTargetRotationDegrees(int) i VideoCapture.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 od VideoCapture do VideoCapture.Builder#setDynamicRange(). (Ib0377)
  • Do interfejsu ExtensionsManager dodano interfejs API isImageAnalysisSupported, który pozwala aplikacjom określać, czy zastosowanie funkcji ImageAnalysis można powiązać z podglądem i ImageCapture po włączeniu rozszerzeń. (I1bc63)
  • Nowa klasa VideoCapabilities uzyskana z Recorder 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. Metody getSupportedQualities() i isQualitySupported() metody QualitySelector są wycofywane. Zamiast niej użyj metod getSupportedQualities() i isQualitySupported() obiektu VideoCapabilities. (I04014).
  • Nazwa CameraController#setVideoCaptureTargetQuality() została zmieniona na setVideoCaptureQualitySelector i przyjmuje argument QualitySelector, który zapewnia większą elastyczność konfigurowania jakości wideo. Pole CameraController#getVideoCaptureTargetQuality() zostało odpowiednio zmienione na getVideoCaptureQualitySelector. (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 dla ImageProxy.toBitmap(). Jeśli nie można zdekodować tablicy bajtów JPEG, zwracany jest element UnsupportedOperationException. (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 API CameraInfo#getSupportedFrameRates().

Zmiany w interfejsie API

  • Zmieniliśmy nazwy stałych ResolutionSelector#HIGH_RESOLUTION_FLAG_OFF/ON na ALLOWED_RESOLUTIONS_NORMAL/SLOW i nazwę funkcji konstruktora setHighResolutionEnabledFlag na setAllowedResolutionMode. (Iae817)
  • Funkcja CameraInfo#getSupportedFrameRateRanges() zwraca teraz wartość Set, a nie List, 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życie setTargetRotationDegrees i wycofał interfejsy API ImageAnalysis.setTargetRotationDegrees(int), ImageCapture.setTargetRotationDegrees(int) i VideoCapture.setTargetRotationDegrees(int). (Ia9010)
  • Dodano nowe interfejsy API Preview#getTargetFrameRate i Preview.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łędu ERROR_RECORDING_GARBAGE_COLLECTED, gdy obiekt Recording 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 w StreamConfigurationMapCompat 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ł obiekt ConcurrentModificationException. (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 obrazu VideoCapture umożliwiają wyrównywanie obrazu z podglądu z kamery podczas korzystania z przedniego aparatu. Są 3 opcje: MirrorMode, OFF, ON i ON_FRONT_ONLY. Aby dopasować widok do podglądu aparatu, zalecamy użycie funkcji ON_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 i setTargetResolution. Użyj nowego interfejsu API ResolutionSelector. (I542c3)
  • Dodano publiczne interfejsy API do obsługi podwójnych kamer jednocześnie, w tym:
    1. List<List<CameraInfo>> getAvailableConcurrentCameraInfos()
    2. ConcurrentCamera bindToLifecycle(@NonNull ConcurrentCameraConfig concurrentCameraConfig)
    3. boolean isConcurrentCameraModeOn() oraz ConcurrentCameraConfig, SingleCameraConfig i ConcurrentCamera (Iab1c1)
  • Ustaw ImageProcessor.Response#getOutputImage bez wartości null (Ib9c60)
  • Dodano interfejsy API powielania: VideoCapture, w tym VideoCapture.Builder.setMirrorMode(int) i VideoCapture.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 interfejsach VideoCapture.Builder i getTargetFramerate() API w VideoCapture (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 systemie DefaultSurfaceProcessor. Awaria może wystąpić, gdy powiązany jest element VideoCapture, 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 tym VideoCapture.Builder.setTargetRotation(int), VideoCapture.setTargetRotation(int), VideoCapture.setTargetRotationDegrees(int) i VideoCapture.getTargetRotation(). Interfejsy API są przydatne w aplikacjach, które blokują orientację urządzenia. Dodano również: ImageCapture.setTargetRotationDegrees(int) i ImageAnalysis.setTargetRotationDegrees(int). (Id3ffe, b/205242781)
  • Zezwalaj na efekty VIDEO_CAPTURE i PREVIEW|VIDEO_CAPTURE. Efekty kierowane na kryterium VIDEO_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 strumienia VideoCapture. (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 na Bitmap. Obsługiwany format ImageProxy to ImageFormat.YUV_420_888 i PixelFormat.RGBA_8888. Jeśli format będzie nieprawidłowy, funkcja IllegalArgumentException 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ć elementu CameraCharacteristics. (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. Dodano CameraSelector#LENS_FACING_EXTERNAL jako eksperymentalną funkcję wyboru kamer zewnętrznych. (Icaf3e)
  • Dodaj #setEffect() do urządzenia CameraController, aby móc dodawać efekty do obrazu wyjściowego aparatu. (I1d21f).
  • Dodaj metodę invalidate() do projektu SurfaceRequest. 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 potoku ImageCapture. (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 wideo BitRate i Recorder#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 na OutputOptions.getDurationLimitMillis oraz OutputOptions.setDurationLimit na OutputOptions.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 funkcji startRecording do AudioConfig, aby uniknąć niepotrzebnych próśb o uprawnienia w przypadkach, w których dźwięk nie jest potrzebny. (I28755)
  • Usuń klasy metadanych, OnVideoSavedCallback, OutputFileOptions i OutputFileResults, które nie są już używane po zastosowaniu nowego interfejsu API przechwytywania wideo. (I38cd8)
  • Zastosuj nowy interfejs API przechwytywania wideo. Metody getVideoCaptureTargetSize i setVideoCaptureTargetSize zostały zastąpione metodami getVideoCaptureTargetQuality oraz setVideoCaptureTargetQuality, ponieważ metoda setTargetResolution 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ądzeniu ViewPager2. W ramach poprawki PreviewView będzie ponownie używać obrazu SurfaceView, jeśli żądana rozdzielczość nie zostanie zmieniona. (Ib3f27)
  • Obsługuj przycinanie filmów (funkcja WYSIWYG), gdy używany jest interfejs API ViewPort lub CameraController. (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 wersja CAPTURE_MODE_MINIMIZE_LATENCY.
  • Wycofaj: android.camera.core.VideoCapture.
  • Dodano setStreamUseCase() jako publiczny interfejs API Camera2Interop.
  • Dodano wymagany poziom interfejsu API dla: setOutputImageRotationEnabled.
  • Nazwa elementu ImageAnalysis.Analyzer#getTargetResolutionOverride() została zmieniona na ImageAnalysis.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 organizacyjnej OutputConfiguration. 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ów Preview/VideoCapture. Dodano obejście pozwalające uniknąć wybierania rozdzielczości 1920 x 1080 w podglądzie lub VideoCapture 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 ustawionego SurfaceProvider 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 i MLKitAnalyzer to oficjalne interfejsy API.
  • Interfejs API Exposed do ustawiania metadanych lokalizacji w zapisanym filmie.
  • Zmień nazwę społeczności ImageAnalysis.Analyzer#getTargetResolutionOverride() na ImageAnalysis.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() na ImageAnalysis.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 API androidx.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 i MLKitAnalyzer. (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śli FocusMeteringAction 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łudze ImageCapture i dodaj parametr isZslSupported w polu CameraInfo, aby zapytać o możliwości urządzenia. Tryb CAPTURE_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 funkcja AssertionError 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ługa VideoCapture jest powiązana z elementem ImageCapture i podglądem na urządzeniu z kamerą na poziomie PEŁNYM lub wyższym. Strategia zastępcza QualitySelector sprawia, że VideoCapture 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 dniu ImageCapture.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 i setOutputImageFormat)
  • 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 API isFocusMeteringSupported, który umożliwia aplikacjom sprawdzanie, czy dany obiekt FocusMeteringAction jest obsługiwany przez bieżącą kamerę.
  • Udostępniono interfejs getResolutionInfo API, aby dostarczyć informacje o rozwiązaniu dla wersji przedpremierowej, ImageCapture i ImageAnalysis.
  • 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 listy CameraInfos na podstawie CameraSelector.
  • 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 parametr CameraSelector
  • 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ą. Dodano ViewPort#getLayoutDirection, ViewPort.Builder#setLayoutDirection i ViewPort.Builder#setScaleType do dostosowania widocznego obszaru.
  • Zmieniono ExperimentalUseCaseGroupLifecycle na formalne publiczne interfejsy API.
  • Zmiany w istniejących interfejsach API
  • Renamed MediaStoreOutputOptions.getCollection, by MediaStoreOutputOptions.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 tryb ImageCapture#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 dniu ImageCapture.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 funkcja AssertionError. (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życiu MediaCodec.CodecException, zwłaszcza na urządzeniach z interfejsem API 21–22.VideoCapture<Recorder> (Ie7f68)
  • Poprawione obrazy obiektu CameraExtensionsActivity nie są usuwane w usłudze ImageCaptureTest

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łędu InvalidConfigException. Jeśli nadal nie można skonfigurować urządzenia Recorder, 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ład QualitySelector.QUALITY_HD zmienia się na Quality.HD, a QualitySelector.FALLBACK_STRATEGY_LOWER zostaje zmieniony na instancję zwracaną przez FallbackStrategy.lowerQualityOrHigherThan(Quality). Interfejs API używany do tworzenia QualitySelector został zmieniony na interfejs API oparty na listach. Nowy interfejs API QualitySelector.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 przez QualitySelector.Procedure. QualitySelector.Procedure zajęcia zostały usunięte. (I43343)
  • Zasób PendingRecording.withEventListener() został usunięty. Detektor zdarzeń należy teraz przekazać do interfejsu PendingRecording.start(). To wymaganie dotyczące detektora zdarzeń ma zachęcać do obsługi błędów asynchronicznych, które są zgłaszane w zdarzeniu VideoRecordEvent.Finalize. (I1e71d)
  • Nazwa funkcji ActiveRecording została zmieniona na Recording, 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 funkcji REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE może być przeznaczona do obsługi specjalnych funkcji i nie obsługuje standardowych kolorów. CameraX nie obsługuje funkcji Preview, ImageCapture, ImageAnalysis ani VideoCapture tych kamer. dlatego należy odfiltrować te kamery, aby uniknąć nieprawidłowego użycia urządzenia. (Ib8cda)
  • Funkcja CameraSelector#filter nie zwraca już polecenia IllegalArgumentException, 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ści CameraCharacteristics.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 to CAPTURE_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 tryb ImageCapture#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 i ViewPort.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 interfejsu androidx.annotation.OptIn zamiast wycofanego interfejsu androidx.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ą metody CameraSelector podanej w komponencie CameraXConfig.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 funkcjach setZoomRatio i setLinearZoom 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

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

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 to Log#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

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 na FLASH_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ąpienie CameraInfo zamiast CameraSelector, więc dostępne jest bezpośrednie mapowanie na kamerę, dla której fabryka będzie generować punkty. Wszystkie klasy używające klasy DisplayOrientedMeteringPointFactory również przyjmują wystąpienie CameraInfo zamiast CameraSelector. (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 i FIT_END z FIT. 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 numer ProcessCameraProvider#getInstance(). Umożliwia to dostosowanie obiektu CameraXConfig bez konieczności implementowania CameraXConfig.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 zawiera CameraUnavailableException, który zostanie ustawiony na ListenableFuture wyniku inicjowania zamiast awarii aplikacji. (I9909a, b/149413835)
  • Usunięto awarię podczas wywoływania funkcji startFocusAndMetering na urządzeniach, na których CONTROL_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 zawiera CameraUnavailableException, który zostanie ustawiony na ListenableFuture wyniku inicjowania zamiast do awarii aplikacji. (I9909a, b/149413835)

Poprawki błędów

  • Zaktualizowano dokumenty javadocs dla: setTargetResolution i setTargetRotation. (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 tabeli ImageCapture 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 oraz CameraXConfig.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 interfejsu ImageProxy jest możliwy po zamknięciu interfejsu ImageReaderProxy. Powoduje to również, że wszystkie ImageProxy odbierane przez Analyzer muszą zostać zamknięte przed zamknięciem ImageReaderProxy. (I4b299, b/145956416, b/154155377, b/156357269)
  • Usunięto parametr CameraInfo z PreviewView#createSurfaceProvider(). Teraz PreviewView pobiera go wewnętrznie z SurfaceRequest. (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 tabeli ImageCapture 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 elementu Camera bez powiązania elementu UseCase.

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 elementu ImageProxy wygenerowanego przez ImageCapture, 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 funkcji bindToLifecycle 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 elementu ImageProxy wygenerowanego przez ImageCapture, 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 funkcji bindToLifecycle 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 funkcji Preview.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) na SurfaceRequest.provideSurface(Surface) i SurfaceRequest.setWillNotComplete() na SurfaceRequest.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 w SurfaceRequest.provideSurface() na Executor i Callback. Upraszcza to interfejs API, ponieważ nie wymaga już obsługi wyjątków w provideSurface() i wymusza, że nie można anulować wywołania zwrotnego provideSurface(). Ma to na celu zapobieganie awariom na starszych urządzeniach spowodowanych przedwczesnym udostępnieniem tych platform. Obiekt SurfaceRequest.Result jest teraz używany do śledzenia, jak SurfaceRequest korzysta z podanego Surface. (I7854b)
  • Zmieniono nazwę SurfaceRequest.setSurface(Surface) na SurfaceRequest.provideSurface(Surface) i SurfaceRequest.setWillNotComplete() na SurfaceRequest.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 elementy Surface 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ługach Uri i OutputStream. Połączono przeciążone metody (takePicture) w jedną. Zaktualizowano aplikację testową, aby używała strony Uri jako przykładu kanonicznego. (Ia3bec)
  • Nazwa konta Preview.PreviewSurfaceProvider została zmieniona na Preview.SurfaceProvider. Deweloperzy nie muszą już tworzyć własnych elementów ListenableFuture w interfejsie SurfaceProvider, a podawanie Surface odbywa się teraz za pomocą nowego obiektu SurfaceRequest. Metoda Preview.getPreviewSurfaceProvider() została usunięta ze względu na możliwość jej nadużycia, gdy Preview jest sparowany z innymi klasami, takimi jak PreviewView. (I20105)
  • Dodano użytkowników getTargetRotation() i getTargetName() do listy Preview. (Iceee7)
  • Dodano getTargetRotation(), getBackpressureStrategy() i getImageQueueDepth() w grupie ImageAnalysis. (I9d6d9)
  • Dodano getTargetRotation() i getCaptureMode() w: ImageCapture() (I5bc17)
  • Argumenty, które były wcześniej przekazywane w funkcjach ImageCapture.OnImageSavedCallback.onError() i ImageCapture.OnImageCapturedCallback.onError(), zostały zastąpione pojedynczym argumentem ImageCaptureException, który nadal zawiera wszystkie przekazane wcześniej informacje.
  • Argument pliku przekazany wcześniej w funkcji ImageCapture.OnImageSavedCallback.onImageSaved() został usunięty. (I750d2)
  • Preview i ImageCapture zajęć są teraz oznaczone jako ostateczne. (I2500B)
  • Interfejs API został zaktualizowany. Metody getZoomRatio(), getMaxZoomRatio(), getMinZoomRatio() i getLinearZoom() elementu CameraInfo zostały scalone z instancją getZoomState(), która zwraca instancję ZoomState. (Ib19fe)
  • Usunęliśmy pola interfejsu API OPTION_TARGET_CLASS i OPTION_TARGET_NAME z CameraXConfig, 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 artefakt camera-camera2 znajduje się w interfejsie build.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ędzia Camera2CameraInfo.extractCameraId(). Poniższy przykładowy kod pokazuje, jak to zrobić:

    Camera camera = provider.bindToLifecycle(...);
    String cameraId =
        Camera2CameraInfo.extractCameraId(camera.getCameraInfo());
    

    Klasa Camera2CameraInfo wymaga klasy ExperimentalCamera2Interop.

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 na useCaseForAspectRatio i rozszerzono dokumentację referencyjną.
  • Metody FocusMeteringAction.Builder.from() zostały zastąpione konstruktorami FocusMeteringAction.Builder().
  • Usunięto DisplayOrientedMeteringPointFactory(android.content.Context, androidx.camera.core.CameraSelector, float, float). Aplikacje powinny używać konstruktora, który przyjmuje parametr Display 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 parametru Display.
  • Rozszerzyliśmy dokumentację referencyjną dotyczącą setZoomRatio i setLinearZoom.

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 i cancelFocusMetering 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 lub CameraView 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 i CameraControl.
  • Wdrożono TorchControl dla enableTorch() i getTorchState().

Zmiany w interfejsie API

  • Ukryto intDefs i przesunęliśmy stałe IntDef poza definicję IntDef.
  • Przeniesiono rotationDegrees z zajęć OnImageCaptureCallback do ImageInfo.
  • Przeniesiono rotationDegrees z zajęć Analyzer do ImageInfo.

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ści Camera2Config dostarczonej przez androidx.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() i hasCamera(), które wcześniej były dostępne w ramach rozmowy klasowej CameraX, są teraz dostępne w ProcessCameraProvider.

  • Instancja elementu ProcessCameraProvider na proces jest uzyskiwana asynchronicznie przy użyciu metody statycznej ProcessCameraProvider.getInstance(), która zwraca wartość włączaną do listy, która po zakończeniu podaje parametr ProcessCameraProvider. Tutaj jest to widoczne w onCreate() dla typowych zastosowań. Wywołanie getInstance() 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 przez getInstance(). Dzięki temu dostawcy kamery będzie można pobierać z Future bez blokowania go w usłudze Future.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. Na 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 ImageAnalysismusi 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 elementu Analyzer.

  • 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 teraz ImageCapture.OnImageCapturedCallback
    • ImageCapture.OnImageSavedListener to teraz ImageCapture.OnImageSavedCallback
    • VideoCapture.OnVideoSavedListener to teraz VideoCapture.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 i cancelFocusMetering zwracają teraz wartości ListenableFutures, 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 element ListenableFuture<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 do CaptureSession), a interfejs TorchState pozostanie wyłączony.
  • Znany problem: funkcje startFocusAndMetering i cancelFocusAndMetering rozpoczynają i anulują pomiar skupienia, ale zwracają od razu completed (success), które nie odzwierciedlają udokumentowanego zachowania. Wynik FocusMeteringResult z elementu ListenableFuture<FocusMeteringResult> CameraControl.startFocusAndMetering() to fałszywy wynik, który isFocusSuccessful() 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 w PreviewView 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 opcjami RATIO_4_3 lub RATIO_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 na setTargetAspectRatioCustom(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

Dodano funkcję CameraInfo ze sprawdzaniem dostępności lampy błyskowej i interfejsów API do obracania czujnika

  • Dodano metodę CameraInfo oraz getCameraInfo, która umożliwia aplikacjom sprawdzenie, czy aparat skierowany na obiektyw kamery jest dostępny i czy aparat ma lampę błyskową. Na przykład:

    try {
        CameraInfo cameraInfo = CameraX.getCameraInfo(currentCameraLensFacing);
        LiveData<Boolean> isFlashAvailable = cameraInfo.isFlashAvailable();
        flashToggle.setVisibility(isFlashAvailable.getValue() ? View.VISIBLE : View.INVISIBLE);
    } catch (CameraInfoUnavailableException e) {
        Log.w(TAG, "Cannot get flash available information", e);
        flashToggle.setVisibility(View.VISIBLE);
    }
    
  • Dodano użytkownika CameraInfo.getSensorRotationDegrees() 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() lub setTargetAspectRatio(). 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.
  • 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 na ImageCapture.ImageCaptureError
    • Nazwa elementu VideoCapture.UseCaseError została zmieniona na VideoCapture.VideoCaptureError
  • Dodano interfejs CameraControl API z interfejsami Tap-to-Focus API

    • Dodano 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 i FocusMeteringAction 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 lub setTargetResolution).
  • 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łanie java.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

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 zawiera CameraUnavailableException, który zostanie ustawiony na ListenableFuture 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 elementu Camera bez powiązania elementu UseCase.
  • 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 rozszerzenie Application 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 i camera-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 nazwie ProcessCameraProvider, która udostępnia podstawowe funkcje poprzedniej klasy CameraX i jest uzyskiwana za pomocą metody getInstance().
  • 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ą tylko ImageCapture i Preview. Pole VideoCapture nie może jeszcze być obsługiwane. Jeśli aplikacja przypisze VideoCapture i włączy dowolny tryb rozszerzenia, zostanie zgłoszony IllegalArgumentException. (I0d87b)
  • Funkcja CameraSelector#filter nie zwraca już polecenia IllegalArgumentException, gdy zbiór wyników jest pusty. (I27804)
  • Nazwa interfejsu API ExtensionsManager#getInstance została zmieniona na getInstanceAsync, ponieważ zwraca ListenableFuture. 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życia ImageCapture, i nie wiedzą, czy zwracane informacje o opóźnieniu dotyczą maksymalnego rozmiaru zapisu czy parametru rozdzielczości wejściowej. (I74bb2)
  • Przenieś parametr CameraProvider z funkcji ExtensionsManager do interfejsu API getInstance(). Dzięki temu użytkownicy nie muszą za każdym razem wprowadzać parametru CameraProvider przy wywoływaniu funkcji ExtensionsManager. (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 elementu RotationProvider#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 na CoordinateTransform#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. Pole CameraView zostało zastąpione przez CameraController. Informacje na temat migracji znajdziesz w przewodniku po migracji. (Id5005).

Poprawki błędów

  • Tekst ExperimentalUseCaseGroupLifecycle został zamieniony na ExperimentalUseCaseGroup. (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 interfejsu androidx.annotation.OptIn zamiast wycofanego interfejsu androidx.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

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 atrybutem ExperimentalVideo jako markerClass. (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

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

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 obiektu Extensions, 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() i PreviewView#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ą funkcji Preview#setTargetRotation() i nowo dodanego elementu PreviewView#getViewPort(targetRotation). (Ib62cc)
  • Nazwa elementu createSurfaceProvider() została zmieniona na getSurfaceProvider(). 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ąpienie CameraInfo zamiast CameraSelector, więc dostępne jest bezpośrednie mapowanie na kamerę, dla której fabryka będzie generować punkty. Wszystkie klasy używające klasy DisplayOrientedMeteringPointFactory również przyjmują wystąpienie CameraInfo zamiast CameraSelector. (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 ona TextureView czy SurfaceView. (Ide693)
  • zmień nazwę trybów implementacji SURFACE_VIEW/TEXTURE_VIEW w Podglądzie na PERFORMANCE/COMPATIBLE. PERFORMANCE to stary tryb SURFACE_VIEW, a COMPATIBLE to stary tryb TEXTURE_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 zawiera CameraUnavailableException, który zostanie ustawiony na ListenableFuture 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 trybu ImplementationMode#TEXTURE_VIEW, jeśli Android jest w wersji 7.0 lub starszej. (I83e30, b/155085307)
  • Usunięto parametr CameraInfo z PreviewView#createSurfaceProvider(). Teraz PreviewView pobiera go wewnętrznie z SurfaceRequest. (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 elementu Preview, a następnie przesunięciu z powrotem w ViewPager2. Naprawiono też problem, gdy removeView(previewview), a potem addView(previewView). (Iab555, b/149877652, b/147354615)
  • Zaktualizuj interfejs API CameraView#takePicture(), aby umożliwić zapisywanie obrazów w Uri i OutputStream. 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żyj PreviewView.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 i camera-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 elementem PreviewView 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ądzenia SurfaceView zacznie znów obowiązywać. Na razie użyj ImplementationMode.TEXTURE_VIEW.

Zmiany w interfejsie API

  • Nazwa elementu PreviewView.setImplementationMode() została zmieniona na PreviewView.setPreferredImplementationMode().
  • Nazwa elementu PreviewView.getImplementationMode() została zmieniona na PreviewView.getPreferredImplementationMode().
  • Zastąpiono element PreviewView.getSurfaceProvider() przez element PreviewView.createSurfaceProvider(CameraInfo). W miarę możliwości do optymalizacji podglądu przy użyciu ImplementationMode.SURFACE_VIEW używane jest wystąpienie CameraInfo z możliwością wartości null. Jeśli jest przekazywana instancja o wartości null lub jeśli ustawisz preferowany tryb implementacji na ImplementationMode.TEXTURE_VIEW, używany jest wewnętrznie interfejs ImplementationMode.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 polu PreviewView.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 atrybutu implementationMode.

  • Dodaj interfejs createMeteringPointFactory() API do PreviewView, aby umożliwić konwersję (x, y) w PreviewView na MeteringPoint. (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 w SurfaceRequest.provideSurface() na Executor i Callback. Upraszcza to interfejs API, ponieważ nie wymaga już obsługi wyjątków w provideSurface() i wymusza, że nie można anulować wywołania zwrotnego provideSurface(). Ma to na celu zapobieganie awariom na starszych urządzeniach spowodowanych przedwczesnym udostępnieniem tych platform. Obiekt SurfaceRequest.Result jest teraz używany do śledzenia, jak SurfaceRequest korzysta z podanego Surface. (I7854b)
  • Zmieniono nazwę SurfaceRequest.setSurface(Surface) na SurfaceRequest.provideSurface(Surface) i SurfaceRequest.setWillNotComplete() na SurfaceRequest.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() i ImageCapture.OnImageCapturedCallback.onError(), zostały zastąpione pojedynczym argumentem ImageCaptureException, 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 interfejsu PreviewView ustawia teraz rozmiar obiektu TextureView 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 elementu PreviewView 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ęść obszaru PreviewView (jeśli ma mniejszy rozmiar obrazu wyjściowego czujnika aparatu). Zamiast tego ustaw wymiar PreviewView 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ługach Uri i OutputStream. Połączono przeciążone metody (takePicture) w jedną. Zaktualizowano aplikację testową, aby używała strony Uri jako przykładu kanonicznego. (Ia3bec)
  • Nazwa konta Preview.PreviewSurfaceProvider została zmieniona na Preview.SurfaceProvider. Deweloperzy nie muszą już tworzyć własnych elementów ListenableFuture w interfejsie SurfaceProvider, a podawanie Surface odbywa się teraz za pomocą nowego obiektu SurfaceRequest. Metoda Preview.getPreviewSurfaceProvider() została usunięta ze względu na możliwość jej nadużycia, gdy Preview jest sparowany z innymi klasami, takimi jak PreviewView. (I20105)
  • Argumenty, które były wcześniej przekazywane w funkcjach ImageCapture.OnImageSavedCallback.onError() i ImageCapture.OnImageCapturedCallback.onError(), zostały zastąpione pojedynczym argumentem ImageCaptureException, 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() i getLinearZoom() obiektu CameraInfo 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ępnia PreviewSurfaceProvider, 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.