主要还是站在了巨人的肩膀上,封装了以下两个库,修复仿微信拍照Android控件中存在的几个BUG。也欢迎在提出更多的使用配置需求。欢迎提出issue,一天之内回复。
图片选择 | 仿微信拍照录像 |
---|---|
示例 | 示例2 |
---|---|
- 修复录制时间过短闪退的BUG
- 新增调整前置摄像头录像镜像问题
//如果需要启用前置摄像头录像镜像调整功能需要额外引用以下库 implementation'com.github.MasayukiSuda:Mp4Composer-android:v0.3.2'
- 修复图片在部分手机上拉伸的问题
- 重写Sample工程
- 修复视频模式下,录像界面文字提示错误
- 修复视频最大长度设置无效的问题 #4
- 只要在设置的时候withMaxImageSelectable(withMaxVideoSelectable)设置为0,就可以只显示视频(图片)
- 修复内存泄漏问题
- 修复 withIsMirror 方法命名大小写问题
- 新增 前置摄像头是否开启镜像翻转选项 isMirror
- 新增单独调用相机,图片选择器功能
- SmartMediaPicker.builder()参数改为Fragment与FragmentActivity
- 修复文字提示 BUG
- 修复ResultCode BUG
- 添加实用工具类
- 不再直接依赖Glide
- 修复内存泄漏问题
- 发布
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
dependencies {
implementation 'com.github.BzCoder:SmartMediaPicker:1.1.6'
//如果需要启用前置摄像头录像镜像调整功能需要额外引用以下库
implementation'com.github.MasayukiSuda:Mp4Composer-android:v0.3.2'
}
builder = SmartMediaPicker.builder(this)
//最大图片选择数目 如果不需要图片 将数目设置为0
.withMaxImageSelectable(5)
//最大视频选择数目 如果不需要视频 将数目设置为0
.withMaxVideoSelectable(1)
//图片选择器是否显示数字
.withCountable(true)
//最大视频长度
.withMaxVideoLength(15 * 1000)
//最大视频文件大小 单位MB
.withMaxVideoSize(1)
//最大图片高度 默认1920
.withMaxHeight(1920)
//最大图片宽度 默认1920
.withMaxWidth(1920)
//最大图片大小 单位MB
.withMaxImageSize(5)
//设置图片加载引擎
.withImageEngine(new Glide4Engine())
//前置摄像头拍摄是否镜像翻转图像
.withIsMirror(false)
//弹出类别,默认弹出底部选择栏,也可以选择单独跳转
.withMediaPickerType(MediaPickerEnum.BOTH)
.build()
.show();
需要自己实现图片加载,图片加载类需要实现ImageEngine接口,当然也可以直接复制Glide4Engine.java
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
List<String> resultData = SmartMediaPicker.getResultData(this, requestCode, resultCode, data);
if (resultData != null && resultData.size() > 0) {
tv_path.setText(Arrays.toString(resultData.toArray()));
} else {
tv_path.setText("NO DATA");
}
}
- SmartMediaPicker.getFileType(String url) :获取文件类型
- SmartMediaPicker.getVideoDuration(String path):获取视频时长
- SmartMediaPicker.getVideoPhoto(String path):获取视频缩略图