🔥一个高效的多媒体支持操作库,可多方面的简单配置操作相册、拍照、录制、录音等功能。也支持配套使用的展示图片、视频、音频的九宫格功能。 (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.)
Kotlin
1,144
1,151 commits
updated Oct 16, 2026
An efficient multimedia support operation library that allows simple configuration of various functions such as taking photos, accessing albums, recording videos, and recording audio.
It also supports a matching nine-grid function for displaying pictures, videos, and audios.
No longer maintained(https://github.com/zhongjhATC/AlbumCameraRecorder/tree/androidx)
allprojects {
repositories {
...
maven { url 'https://www.jitpack.io' }
}
}
dependencies {
// If you want to simplify the code and use multilibrary, grid, and albumCameraRecorderCommon at the same
implementation 'com.github.zhongjhATC.AlbumCameraRecorder:combined:2029'
// Common library, if you don't use the combined library above
implementation 'com.github.zhongjhATC.AlbumCameraRecorder:common:2029'
// Core library for calling and displaying album, screen recording, audio recording, etc.
implementation 'com.github.zhongjhATC.AlbumCameraRecorder:multilibrary:2029'
// Used as a supplement, mainly for displaying relevant content after obtaining data and showing corresponding upload progress. If you only need to obtain data such as photos, videos, and audios, you don't need to use this.
implementation 'com.github.zhongjhATC.AlbumCameraRecorder:grid:2029'
// Used for image editing
implementation 'com.github.zhongjhATC.AlbumCameraRecorder:imageedit:2029'
// Used for video editing, currently only has compression function. More functions will be added later. Since this library uses ffmpeg, it takes up 25M of file size. Choose whether to use it according to the actual situation.
implementation 'com.github.zhongjhATC.AlbumCameraRecorder:videoedit:2029'
}
android.enableJetifier=true
android.useAndroidX=true
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
// 1. This enables java.time APIs from API level 26. Not required if minSdkVersion is 26.
// 2. minifyEnabled true is the key switch for desugaring size‑optimization; only used code will be kept.
coreLibraryDesugaringEnabled true
}

100% passed thecompatibility test report..

// 拍摄有关设置
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)
// 最大原图size,仅当originalEnable为true的时候才有效
.maxOriginalSize(10);
// 录音机
RecorderSetting recorderSetting = new RecorderSetting();
// 全局
mGlobalSetting = MultiMediaSetting.from(MainSimpleActivity.this).choose(MimeType.ofAll());
// 开启相册功能
mGlobalSetting.albumSetting(albumSetting);
// 开启拍摄功能
mGlobalSetting.cameraSetting(cameraSetting);
// 开启录音功能
mGlobalSetting.recorderSetting(recorderSetting);
mGlobalSetting
// for glide-V4
.imageEngine(new Glide4Engine())
// 最大5张图片、最大3个视频、最大1个音频。如果需要使用九宫格,请把九宫格GridView的maxCount也改动 mBinding.dmlImageList.setMaxMediaCount();
.maxSelectablePerMediaType(null, MAX_IMAGE_SELECTABLE, MAX_VIDEO_SELECTABLE, MAX_AUDIO_SELECTABLE,
alreadyImageCount,
alreadyVideoCount,
alreadyAudioCount)
.forResult(requestLauncherACR);
protected final ActivityResultLauncher<Intent> requestLauncherACR = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {
if (result.getResultCode() != RESULT_OK) {
return;
}
if (null == result.getData()) {
return;
}
List<LocalMedia> data = MultiMediaSetting.obtainLocalMediaResult(result.getData());
printProperty(data);
});
For simple expansion, please refer to the Demo. For in-depth expansion, learn more aboutBrief Introduction to CameraFragment Architecture However, please note that if configuration is supported, configuration takes priority. Only when there is no configuration, custom expansion can be done here.
If you use the displayed nine-grid library, the following APIs will be useful for you:
Historical updates Historical updatessummarized from version 1.0.1.
If you find it useful, please give a Star(GitHub)
If you find any bugs, please leave a message or an Issue(Issues)
Any reproduction must indicate the source.
26 followers · starred Sep 2022
234 followers · starred Sep 2022
81 followers · starred Jan 2025
🔥一个高效的多媒体支持操作库,可多方面的简单配置操作相册、拍照、录制、录音等功能。也支持配套使用的展示图片、视频、音频的九宫格功能。 (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.)
Kotlin
1,144
1,151 commits
updated Oct 16, 2026
An efficient multimedia support operation library that allows simple configuration of various functions such as taking photos, accessing albums, recording videos, and recording audio.
It also supports a matching nine-grid function for displaying pictures, videos, and audios.
No longer maintained(https://github.com/zhongjhATC/AlbumCameraRecorder/tree/androidx)
allprojects {
repositories {
...
maven { url 'https://www.jitpack.io' }
}
}
dependencies {
// If you want to simplify the code and use multilibrary, grid, and albumCameraRecorderCommon at the same
implementation 'com.github.zhongjhATC.AlbumCameraRecorder:combined:2029'
// Common library, if you don't use the combined library above
implementation 'com.github.zhongjhATC.AlbumCameraRecorder:common:2029'
// Core library for calling and displaying album, screen recording, audio recording, etc.
implementation 'com.github.zhongjhATC.AlbumCameraRecorder:multilibrary:2029'
// Used as a supplement, mainly for displaying relevant content after obtaining data and showing corresponding upload progress. If you only need to obtain data such as photos, videos, and audios, you don't need to use this.
implementation 'com.github.zhongjhATC.AlbumCameraRecorder:grid:2029'
// Used for image editing
implementation 'com.github.zhongjhATC.AlbumCameraRecorder:imageedit:2029'
// Used for video editing, currently only has compression function. More functions will be added later. Since this library uses ffmpeg, it takes up 25M of file size. Choose whether to use it according to the actual situation.
implementation 'com.github.zhongjhATC.AlbumCameraRecorder:videoedit:2029'
}
android.enableJetifier=true
android.useAndroidX=true
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
// 1. This enables java.time APIs from API level 26. Not required if minSdkVersion is 26.
// 2. minifyEnabled true is the key switch for desugaring size‑optimization; only used code will be kept.
coreLibraryDesugaringEnabled true
}

100% passed thecompatibility test report..

// 拍摄有关设置
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)
// 最大原图size,仅当originalEnable为true的时候才有效
.maxOriginalSize(10);
// 录音机
RecorderSetting recorderSetting = new RecorderSetting();
// 全局
mGlobalSetting = MultiMediaSetting.from(MainSimpleActivity.this).choose(MimeType.ofAll());
// 开启相册功能
mGlobalSetting.albumSetting(albumSetting);
// 开启拍摄功能
mGlobalSetting.cameraSetting(cameraSetting);
// 开启录音功能
mGlobalSetting.recorderSetting(recorderSetting);
mGlobalSetting
// for glide-V4
.imageEngine(new Glide4Engine())
// 最大5张图片、最大3个视频、最大1个音频。如果需要使用九宫格,请把九宫格GridView的maxCount也改动 mBinding.dmlImageList.setMaxMediaCount();
.maxSelectablePerMediaType(null, MAX_IMAGE_SELECTABLE, MAX_VIDEO_SELECTABLE, MAX_AUDIO_SELECTABLE,
alreadyImageCount,
alreadyVideoCount,
alreadyAudioCount)
.forResult(requestLauncherACR);
protected final ActivityResultLauncher<Intent> requestLauncherACR = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {
if (result.getResultCode() != RESULT_OK) {
return;
}
if (null == result.getData()) {
return;
}
List<LocalMedia> data = MultiMediaSetting.obtainLocalMediaResult(result.getData());
printProperty(data);
});
For simple expansion, please refer to the Demo. For in-depth expansion, learn more aboutBrief Introduction to CameraFragment Architecture However, please note that if configuration is supported, configuration takes priority. Only when there is no configuration, custom expansion can be done here.
If you use the displayed nine-grid library, the following APIs will be useful for you:
Historical updates Historical updatessummarized from version 1.0.1.
If you find it useful, please give a Star(GitHub)
If you find any bugs, please leave a message or an Issue(Issues)
Any reproduction must indicate the source.
26 followers · starred Sep 2022
234 followers · starred Sep 2022
81 followers · starred Jan 2025