AlbumCameraRecorder

AlbumCameraRecorder

Android多媒体操作库 相册相机录音一体化

AlbumCameraRecorder是一个高效的Android多媒体操作库,集成相册、相机和录音功能。支持自定义权限请求、图片处理和UI样式,兼容Android 4.1至13版本。该库支持简单配置即可实现相册选择、拍照和录音等功能。提供丰富的回调接口和调试信息,具有强大的兼容性和可定制性,适用于各种Android多媒体应用开发需求。

多媒体操作库相册拍照录像AndroidX自定义Github开源项目

AlbumCameraRecorderX

最低支持版本 许可证

这个版本是AndroidX版本的分支。任何版本号后面带X的都是基于AndroidX版本。

目前已在正式项目中投入使用。

如果您有任何建议或想要添加功能,可以在Issues中提出

English

这是一个高效的多媒体支持操作库,可以通过简单的配置操作照片、相册、录音、录像等功能。

还支持图片、视频、音频的9宫格展示功能。

  • 这个开源库的部分代码来自 Matisse
  • 这个开源库的相机代码来自 CameraView

非X版本分支

非X库版本,不再维护(https://github.com/zhongjhATC/AlbumCameraRecorder/tree/master)

特性

  • 拍照功能完全支持自定义!更多详情请查看Demo的使用方法,如果需要深入了解,您需要了解更多代码 CameraFragment架构介绍
  • 支持相册、录音、录像等功能一体化(类似抖音等),也可以单独配置其中一个功能。
  • 支持自定义权限请求,可以直接让库完成权限请求
  • 虽然功能众多,但可以根据需求引入部分库
  • 丰富的回调接口和调试信息,使用现有API可以实现丰富的效果。
  • 兼容性强,无论是低版本的4.1还是当前最新版本的Android 13,都进行了相关的兼容处理
  • 支持所有图片读取和处理的自定义,比如自定义Glide、Fresco等
  • 支持从相册中选择图片
  • 支持相册根据手机文件选择不同文件夹
  • 高度自定义,支持各种最大选择多少张图片、视频等,还支持只显示自定义文件大小
  • 支持自定义相册样式、颜色、大小等
  • 拍照时支持闪光灯和前后摄像头切换
  • 录像和拍照时支持双指触摸缩放,单指上下滑动控制亮度
  • 录像、拍照、按钮等所有UI都可自定义,所有SVG图片都很好处理动画细节
  • 录像支持分段录制,未来将添加视频编辑
  • 图片编辑支持涂鸦、输入文字、马赛克处理、旋转、裁剪等处理
  • 支持录音处理
  • 所有录制的照片都可以进行深度压缩,图片可以自定义压缩,Demo提供了LuBan压缩,视频提供了FFMPEG压缩
  • 完善的缓存管理系统
  • 改进的动画效果,后续会继续添加
  • 性能优化,内存泄漏 -- 都经过仔细处理

导入

步骤 1. 在你的build文件中添加JitPack仓库

allprojects {
	repositories {
		...
		maven { url 'https://www.jitpack.io' }
	}
}

步骤 2. 添加依赖

dependencies {
     // 如果你想简化代码并同时使用multilibrary和progresslibrary、albumCameraRecorderCommon,可以直接使用组合库
     implementation 'com.github.zhongjhATC.AlbumCameraRecorder:combined:1.1.100X'

     // 公共库,如果不使用上面的组合库
     implementation 'com.github.zhongjhATC.AlbumCameraRecorder:common:1.1.100X'
     // 核心库,用于调用显示相册、屏幕录制、录音等
     implementation 'com.github.zhongjhATC.AlbumCameraRecorder:multilibrary:1.1.100X'
     // 主要用于获取数据后显示相关上传进度。如果你只需要获取照片、视频和录音,不需要使用这个
     implementation 'com.github.zhongjhATC.AlbumCameraRecorder:progresslibrary:1.1.100X'

     // 与编辑图片一起使用
     implementation 'com.github.zhongjhATC.AlbumCameraRecorder:imageedit:1.1.100X'
     // 支持编辑视频使用,目前只有压缩功能,继续添加相关功能,因为库使用ffmpeg,占用文件大小25M,根据实际情况选择是否使用
     implementation 'com.github.zhongjhATC.AlbumCameraRecorder:videoedit:1.1.100X'
     // 因为库使用mp4parser,占用文件大小约300kb,根据实际情况选择是否使用
     implementation 'com.github.zhongjhATC.AlbumCameraRecorder:videomerge:1.1.100X'
}

快照

市场常用手机兼容性测试

100%通过兼容性测试报告

使用(建议下载Demo了解更多功能)

启用多媒体相关功能

    // 拍摄相关设置
    CameraSetting cameraSetting = new CameraSetting();
    // 支持的类型:图片、视频
    cameraSetting.mimeTypeSet(MimeType.ofAll());

    // 相册
    mAlbumSetting = new AlbumSetting(false)
            // 支持的类型:图片、视频
            .mimeTypeSet(MimeType.ofAll())
            // 是否显示多选图片的数量
            .countable(true)
            // 自定义过滤器
            .addFilter(new GifSizeFilter(320, 320, 5 * BaseFilter.K * BaseFilter.K))
            // 开启原图
            .originalEnable(true)
            // 最大原图大小,仅当originalEnable为true时有效
            .maxOriginalSize(10);

    // 录音
    RecorderSetting recorderSetting = new RecorderSetting();

    // 全局设置
    GlobalSetting globalSetting = MultiMediaSetting.from(MainActivity.this).choose(MimeType.ofAll());
    globalSetting.cameraSetting(cameraSetting);
    globalSetting.albumSetting(albumSetting);
    globalSetting.recorderSetting(recorderSetting);

    mGlobalSetting
            .setOnMainListener(errorMessage -> {
                Log.d(TAG, errorMessage);
                Toast.makeText(MainSimpleActivity.this.getApplicationContext(), errorMessage, Toast.LENGTH_LONG).show();
            })
            // 设置路径和7.0保护路径等
            .allStrategy(new SaveStrategy(true, "com.zhongjh.cameraapp.fileprovider", "aabb"))
            // 用于 glide-V4
            .imageEngine(new Glide4Engine())
            // 最多5张图片或最多3个视频
            .maxSelectablePerMediaType(null,
                                    5,
                                    3,
                                    3,
                                    alreadyImageCount,
                                    alreadyVideoCount,
                                    alreadyAudioCount)
                            .forResult(REQUEST_CODE_CHOOSE);

获取相关返回数据

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode != RESULT_OK)
        return;
    List<LocalFile> result = MultiMediaSetting.obtainLocalFileResult(data);
}

不要忘记这个配置。否则,在录制和保存文件时会报错、相册选择图片预览确认时Uri会被清除

<provider android:name="androidx.core.content.FileProvider" android:authorities="${applicationId}.fileProvider" android:exported="false" android:grantUriPermissions="true"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths_public" /> </provider>

如果还有其他常见问题,您可以在网站上搜索错误关键词

如果您需要修改拍摄和录制界面及逻辑

请参考Demo进行简单扩展。如果您需要深入了解更多扩展内容,请参考CameraFragment的简单架构

如果您需要修改相机拍摄、录制参数

由于内部相机来自CameraView,因此更改分辨率、关闭录音等功能可以访问查看更多接口。那么我们如何从我们的库中获取可以在Demo实例中使用的CameraView呢?

如果您需要使用九宫格展示的数据,可以查看代码了解详情。

相关API,更多API和支持持续添加丰富

如果您使用了展示库,以下API也对您有用

历史更新

历史更新

Apk直接体验下载

最后

  1. 如果您觉得有用,请给我一个Star(GitHub

  2. 如果发现任何BUG,请留言或提交Issues(Issues

  3. 任何转载请注明出处

编辑推荐精选

TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
商汤小浣熊

商汤小浣熊

最强AI数据分析助手

小浣熊家族Raccoon,您的AI智能助手,致力于通过先进的人工智能技术,为用户提供高效、便捷的智能服务。无论是日常咨询还是专业问题解答,小浣熊都能以快速、准确的响应满足您的需求,让您的生活更加智能便捷。

imini AI

imini AI

像人一样思考的AI智能体

imini 是一款超级AI智能体,能根据人类指令,自主思考、自主完成、并且交付结果的AI智能体。

Keevx

Keevx

AI数字人视频创作平台

Keevx 一款开箱即用的AI数字人视频创作平台,广泛适用于电商广告、企业培训与社媒宣传,让全球企业与个人创作者无需拍摄剪辑,就能快速生成多语言、高质量的专业视频。

即梦AI

即梦AI

一站式AI创作平台

提供 AI 驱动的图片、视频生成及数字人等功能,助力创意创作

扣子-AI办公

扣子-AI办公

AI办公助手,复杂任务高效处理

AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!

蛙蛙写作

蛙蛙写作

AI小说写作助手,一站式润色、改写、扩写

蛙蛙写作—国内先进的AI写作平台,涵盖小说、学术、社交媒体等多场景。提供续写、改写、润色等功能,助力创作者高效优化写作流程。界面简洁,功能全面,适合各类写作者提升内容品质和工作效率。

AI辅助写作AI工具蛙蛙写作AI写作工具学术助手办公助手营销助手AI助手
问小白

问小白

全能AI智能助手,随时解答生活与工作的多样问题

问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。

热门AI助手AI对话AI工具聊天机器人
Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
下拉加载更多