
Tým CameraX s nadšením oznamuje vydání verze 1.5! Tato nejnovější aktualizace se zaměřuje na to, aby vám přinesla profesionální funkce na dosah ruky a zároveň usnadnila konfiguraci fotoaparátu více než kdy dříve.
Pro nahrávání videa mohou nyní uživatelé bez námahy zachytit úžasná zpomalená videa nebo videa s vysokou snímkovou frekvencí. A co je důležitější, nové rozhraní Feature Group API umožňuje s jistotou aktivovat složité kombinace, jako je 10bitové HDR a 60 FPS , a zajistit tak konzistentní výsledky na všech podporovaných zařízeních.
Pokud jde o snímání obrazu , získáte maximální flexibilitu díky podpoře pro snímání nezpracovaných, nekomprimovaných souborů DNG (RAW). Navíc nyní můžete využít výstup Ultra HDR i při použití výkonných rozšíření fotoaparátu.
Základem těchto funkcí je nové rozhraní SessionConfig API , které zjednodušuje nastavení a rekonfiguraci kamery. Nyní se pojďme ponořit do podrobností o těchto vzrušujících nových funkcích.
Výkonné nahrávání videa: Kombinace vysoké rychlosti a funkcí
CameraX 1.5 výrazně rozšiřuje své video možnosti a umožňuje kreativnější a robustnější nahrávání.
Zpomalené video a video s vysokou snímkovou frekvencí
Jedna z našich nejočekávanějších funkcí, zpomalené video, je nyní k dispozici. Nyní můžete nahrávat vysokorychlostní video (např. 120 nebo 240 fps) a kódovat ho přímo do dramatického zpomaleného videa. Případně můžete nahrávat se stejnou vysokou snímkovou frekvencí a vytvořit tak výjimečně plynulé video.
Implementace je jednoduchá, pokud jste obeznámeni s rozhraním VideoCapture API.
Konfigurace a navázání případu užití: Použijte vrácenou `videoCapabilities` ( která obsahuje informace o podporované kvalitě videa) k vytvoření ` HighSpeedVideoSessionConfig` . Poté musíte dotazovat podporované rozsahy snímkové frekvence pomocí ` cameraInfo.getSupportedFrameRateRanges()` a nastavit požadovaný rozsah. Pro nahrávání zpomalených videí volte `setSlowMotionEnabled(true) , jinak se budou nahrávat videa s vysokou snímkovou frekvencí. Posledním krokem je použití běžné ` Recorder.prepareRecording().start()` k zahájení nahrávání videa.
Kompatibilita a omezení
Vysokorychlostní nahrávání vyžaduje specifickou podporu pro CameraConstrainedHighSpeedCaptureSession a CamcorderProfile . Vždy provádějte kontrolu možností a vysokorychlostní nahrávání povolujte pouze na podporovaných zařízeních, abyste předešli špatnému uživatelskému zážitku. V současné době je tato funkce podporována na zadních fotoaparátech téměř všech zařízení Pixel a vybraných modelech jiných výrobců.
Pro více informací se podívejte na příspěvek na blogu .
Kombinujte funkce s jistotou: API skupiny funkcí
CameraX 1.5 představuje rozhraní Feature Group API , které eliminuje dohady o kompatibilitě funkcí. Na základě rozhraní API pro kombinované dotazy funkcí v systému Android 15 můžete nyní s jistotou povolit více funkcí najednou, což zaručuje stabilní relaci kamery. Skupina funkcí v současné době podporuje: HDR (HLG), 60 fps, stabilizaci náhledu a Ultra HDR . Například na telefonech řady Pixel 10 a Galaxy S25 můžete současně povolit HDR, 60 fps a stabilizaci náhledu. Budoucí vylepšení se plánují zahrnout nahrávání v rozlišení 4K a ultraširokoúhlý zoom.
Rozhraní API pro skupiny prvků umožňuje dva základní případy použití:
Případ užití 1: Upřednostnění nejlepší kvality
Pokud chcete nahrávat s využitím nejlepší možné kombinace funkcí, můžete zadat seznam s prioritami. CameraX se je pokusí aktivovat v pořadí, v jakém zařízení vybere první kombinaci, kterou plně podporuje.
V tomto příkladu se CameraX pokusí povolit funkce v tomto pořadí:
- HDR + 60 FPS + stabilizace obrazu
- HDR + 60 snímků za sekundu
- HDR + stabilizace náhledu
- HDR
- 60 FPS + stabilizace obrazu v náhledu
- 60 snímků za sekundu
- Náhled stabilizace
- Žádný
Případ použití 2: Vytvoření uživatelského rozhraní nastavení
Nyní můžete přesně zobrazit, které kombinace funkcí jsou podporovány v uživatelském rozhraní nastavení vaší aplikace, a deaktivovat přepínače pro nepodporované možnosti, jako je to na obrázku níže.

Chcete-li zjistit, zda má být přepínač zašedlý, použijte následující kódy ke kontrole podpory kombinací funkcí. Nejprve se dotazujte na stav každé jednotlivé funkce. Jakmile je funkce povolena, znovu se dotazujte na zbývající funkce s povolenými funkcemi, abyste zjistili, zda jejich přepínače nyní musí být zašedlé z důvodu omezení kompatibility.
Více informací naleznete v příspěvku na blogu Feature Group .
Další vylepšení videa
- Vylepšení souběžného používání kamery: S verzí CameraX 1.5.1 nyní můžete souběžně propojit případy užití Preview + ImageCapture + VideoCapture pro každou konfiguraci SingleCameraConfig v režimu bez kompozice . Navíc v režimu kompozice (stejné případy užití jako u CompositionSettings ) můžete nyní nastavit CameraEffect , který se použije na konečný výsledek kompozice.
- Dynamické ztlumení: Nyní můžete spustit nahrávání s vypnutým zvukem pomocí PendingRecording.withAudioEnabled(boolean initialMuted ) a umožnit uživateli později ztlumení zapnout pomocí Recording.mute(boolean muted) .
- Vylepšená manipulace s nedostatečným úložištěm: CameraX nyní spolehlivě odesílá chybu VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE , což umožňuje vaší aplikaci elegantně zvládat situace s nedostatkem úložiště a informovat uživatele.
- Zesílení při slabém osvětlení: Na podporovaných zařízeních (jako je řada Pixel 10) můžete povolit funkci CameraControl.enableLowLightBoostAsync pro automatické zesvětlení náhledu a video streamů v tmavém prostředí.
Profesionální zachycení obrazu
CameraX 1.5 přináší zásadní vylepšení ImageCapture pro vývojáře, kteří požadují maximální kvalitu a flexibilitu.
Popusťte uzdu kreativní kontrole se záznamem ve formátu DNG (RAW)
Pro úplnou kontrolu nad následným zpracováním nyní CameraX podporuje snímání ve formátu DNG (RAW). To vám dává přístup k nezpracovaným, nekomprimovaným obrazovým datům přímo ze snímače fotoaparátu, což umožňuje profesionální úpravy a barevné korekce. API podporuje snímání samotného souboru DNG nebo simultánní snímání výstupů JPEG a DNG. Ukázkový kód níže ukazuje, jak současně snímat soubory JPEG a DNG.
Ultra HDR pro rozšíření fotoaparátu
Získejte to nejlepší z obou světů: ohromující výpočetní fotografie z rozšíření fotoaparátu (jako je noční režim) v kombinaci s brilantními barvami a dynamickým rozsahem Ultra HDR. Tuto funkci nyní podporuje mnoho novějších prémiových telefonů s Androidem, jako je řada Pixel 9/10 a řada Samsung S24/S25.
Vylepšení základního API a použitelnosti
Nový způsob konfigurace: SessionConfig
Jak je vidět z výše uvedených příkladů, SessionConfig je nový koncept v CameraX 1.5. Centralizuje konfiguraci a zjednodušuje API dvěma klíčovými způsoby:
- Už žádná manuální volání unbind() : Rozhraní API CameraX jsou vědoma životního cyklu. Implicitně „odpojí“ vaše případy užití, když je aktivita nebo jiný vlastník životního cyklu zničen. Aktualizace případů užití nebo přepínání kamer však stále vyžaduje volání unbind() nebo unbindAll() před opětovným navázáním. Nyní s verzí CameraX 1.5, když navážete nový objekt SessionConfig , CameraX bez problémů aktualizuje relaci za vás, čímž eliminuje potřebu volání unbind.
- Deterministické řízení snímkové frekvence: Nové rozhraní SessionConfig API zavádí deterministický způsob správy snímkové frekvence. Na rozdíl od předchozí metody setTargetFrameRate , která byla pouze nápovědou, tato nová metoda zaručuje, že po úspěšné konfiguraci bude použit zadaný rozsah snímkové frekvence. Pro zajištění přesnosti je nutné dotazovat podporované snímkové frekvence pomocí metody CameraInfo.getSupportedFrameRateRanges(SessionConfig) . Předáním úplné metody SessionConfig může CameraX přesně určit podporované rozsahy na základě konfigurace streamu.
Funkce Camera-Compose je nyní stabilní
Víme, jak moc si užíváte Jetpack Compose, a s radostí oznamujeme, že knihovna camera-compose je nyní stabilní ve verzi 1.5.1 ! Tato verze obsahuje kritické opravy chyb souvisejících s používáním CameraXViewfinder s funkcemi Compose, jako jsou moveableContentOf a Pager , a také vyřešení problému s roztahováním náhledu. V budoucích verzích budeme do camera-compose přidávat další funkce.
Vylepšení analýzy obrazu a ovládání kamery
- Nastavení síly hořáku: Získejte přesnou kontrolu nad hořákem zařízení pomocí nových API. Maximální podporovanou sílu můžete zjistit pomocí CameraInfo.getMaxTorchStrengthLevel() a poté nastavit požadovanou úroveň pomocí CameraControl.setTorchStrengthLevel() .
- Podpora NV21 v ImageAnalysis : Nyní si můžete vyžádat formát obrázku NV21 přímo z ImageAnalysis , což zjednodušuje integraci s dalšími knihovnami a API. To je možné vyvoláním ImageAnalysis.Builder.setOutputImageFormat(OUTPUT_IMAGE_FORMAT_NV21) .
Začněte ještě dnes
Aktualizujte své závislosti na CameraX 1.5 ještě dnes a prozkoumejte nové vzrušující funkce. Nemůžeme se dočkat, co vytvoříte.
Chcete-li používat CameraX 1.5, přidejte prosím do souboru libs.versions.toml následující závislosti. (Doporučujeme používat verzi 1.5.1, která obsahuje mnoho oprav kritických chyb a souběžná vylepšení kamery.)