AlbumCameraRecorder: An Android Multimedia Library for Photos, Video, Audio, and Nine-Grid Display
An efficient multimedia support operation library, can be a variety of simple configuration operation album, photo, recording, recording and other functions.Also support supporting the use of the display of pictures, video, audio of the nine grid function. .
At a glance
- What is it?
- AlbumCameraRecorder is a Kotlin Android library that provides album selection, camera capture, video recording, audio recording, image editing, video compression, and a nine-grid display component through a configurable API. The kotlin branch is the current active line; the androidx branch is no longer maintained.
- Who is it for?
- AlbumCameraRecorder is a solid pick for Android developers who need a single library covering album selection, camera capture, video recording, audio recording, and a nine-grid display in one configurable API. The CameraX migration in the kotlin branch makes it easier to customize capture parameters and add watermarks.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 6 days ago.
- What is it written in?
- Mainly Kotlin, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 25, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What AlbumCameraRecorder Covers and Who Uses It
AlbumCameraRecorder is a Kotlin Android library that bundles five distinct capabilities into one dependency set: album selection with folder navigation, camera photo capture, video recording with segmented recording support, audio recording, and a nine-grid view for displaying the selected media after capture. The project targets Android developers who build social apps, messaging apps, or any app that needs Douyin-style combined media selection, similar to the combined album, recording, and audio mode described in the README.
The current active branch is the kotlin branch, which migrated from the legacy CameraX-free implementation to CameraX. This migration simplifies customizing capture parameters and adding dynamic watermarks according to the README. The androidx branch at the old URL is no longer maintained except for serious bugs.
The library supports Android 4.1 (API 16) through the latest Android 16, which the README's compatibility section describes as 100% passing on a market-wide compatibility test report available in WeTest.md.
Module Structure and Selective Import
AlbumCameraRecorder is split into multiple modules so teams can import only what they need. The README describes the available modules:
combined: a convenience wrapper that includes multilibrary, grid, and albumCameraRecorderCommon together. common: the shared base library required if not using combined. multilibrary: the core library for calling and displaying album, camera recording, and audio recording. grid: the nine-grid display component for showing obtained data and upload progress. imageedit: image editing with color graffiti, text input, mosaic processing, rotation, and cropping. videoedit: video compression using ffmpeg; the README notes this adds approximately 25MB to the APK.
The README recommends using the combined module to simplify the integration when all features are needed, while individual modules suit apps that need only specific capabilities.
Installing AlbumCameraRecorder
The library is distributed through JitPack. The README gives four-step installation instructions. First, add the JitPack repository to the build file:
allprojects {
repositories {
maven { url 'https://www.jitpack.io' }
}
}Second, add the dependencies for the modules you need:
implementation 'com.github.zhongjhATC.AlbumCameraRecorder:combined:2029'Third, add Jetifier and AndroidX flags to gradle.properties:
android.enableJetifier=true
android.useAndroidX=trueFourth, configure Java 8 compatibility and core library desugaring in the app module's compileOptions:
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
coreLibraryDesugaringEnabled true
}The desugaring configuration is required to use java.time APIs on devices below API 26. The README notes that minifyEnabled true is the key switch for desugaring size optimization.
Configuration: Launching the Multimedia Picker
The library exposes CameraSetting and AlbumSetting builder objects for configuring what the picker launches. The README's usage example shows the structure:
CameraSetting cameraSetting = new CameraSetting();
cameraSetting.mimeTypeSet(MimeType.ofAll());
AlbumSetting albumSetting = new AlbumSetting(false)
.mimeTypeSet(MimeType.ofAll())
.countable(true)
.addFilter(new GifSizeFilter(320, 320, 5 * BaseFilter.K * BaseFilter.K))
.originalEnable(true)
.maxOriginalSize(10);This configures the camera to accept all mime types and the album picker to show selectable counts, apply a GIF size filter, and enable original image selection up to 10MB. The README describes rich configuration options including maximum selectable counts for photos and videos, folder-based navigation matching the device's file system, custom permission handling, custom image loaders (Glide, Fresco), and style customization for colors and sizes.
Features: Watermarks, Compression, and Shared Elements
The library supports watermarks during both shooting and recording, including dynamic watermarks. Flash and front/back camera switching are supported during capture. Two-finger touch zooms in and out; single-finger sliding adjusts brightness. Long-press button recording is fully customizable using SVG images for animation.
Image editing supports color graffiti, text input, mosaic processing, rotation, and cropping. Video editing currently provides compression through ffmpeg. The README notes that more video editing features will be added in the future.
Segmented recording is available for video. The library includes shared element animations and complete animation effects throughout the UI. The README describes cache management, performance optimization with careful memory leak handling, and a motion photo feature that supports viewing motion photos in the system gallery.
Limitations and Alternatives
The videoedit module's 25MB ffmpeg footprint is a significant APK size cost. Teams that need video compression should evaluate whether the app's size budget can accommodate this before including videoedit.
The androidx branch is no longer maintained. Apps that are still on the androidx branch must migrate to the kotlin branch for future updates. The README includes a migration guide in the file listing showing code changes from old to new versions.
The library is MIT-licensed. The last push was on 2026-09-24, indicating active development. Recent releases include version 2029 on 2026-08-20, 2028 on 2026-07-31, and 2027 on 2026-07-23. The version naming uses integers rather than semantic versioning, which is unusual but consistent across the kotlin branch releases.
The README does not document a bundled image loading library: it supports plugging in Glide, Fresco, or any other image loader through a customization interface. Teams already using a specific image loading library can continue using it without adding a second one.
The closest alternative for the album selection use case is PictureSelector by LuckSiege, which covers similar ground with photo and video selection for Android. AlbumCameraRecorder's advantage is the built-in camera capture, audio recording, and nine-grid display in one library, whereas PictureSelector focuses primarily on the selection UI without the full capture integration.
Editorial conclusion
AlbumCameraRecorder is a solid pick for Android developers who need a single library covering album selection, camera capture, video recording, audio recording, and a nine-grid display in one configurable API. The CameraX migration in the kotlin branch makes it easier to customize capture parameters and add watermarks. The androidx branch is no longer maintained, so new projects should use the kotlin branch only. The videoedit module adds 25MB to the APK because of its ffmpeg dependency; evaluate whether video compression is actually needed before including it. Last push was on 2026-09-24.
Frequently asked questions
How does a camera recorder library like AlbumCameraRecorder work on Android?
AlbumCameraRecorder uses CameraX as its camera backend in the current kotlin branch. CameraX simplifies customizing capture parameters and adding watermarks. The library exposes CameraSetting and AlbumSetting builders that configure which mime types to accept, file size filters, and selection limits before launching the combined picker activity.
How do I add AlbumCameraRecorder to my Android project?
Add the JitPack repository to your build file under allprojects > repositories, then add the implementation dependency: com.github.zhongjhATC.AlbumCameraRecorder:combined:2029 for all features, or individual module dependencies for a subset. Also add android.enableJetifier=true and android.useAndroidX=true to gradle.properties.
What is the difference between the kotlin branch and the androidx branch of AlbumCameraRecorder?
The kotlin branch is the current active development line. It uses CameraX for camera operations, making it easier to customize capture parameters and add dynamic watermarks. The androidx branch is no longer maintained except for serious bugs, so new projects should use the kotlin branch.
Does AlbumCameraRecorder support video compression?
Yes, through the videoedit module, which uses ffmpeg for video compression. The README notes that this module adds approximately 25MB to the APK. More video editing features are planned for future releases.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/zhongjhatc-albumcamerarecorder)