Android 仿微信视频拍摄 支持触摸拍摄 长按拍摄
最近即时通讯项目需要涉及视频及图片拍摄,仿照微信写了一个。
方便一下大家,封装成lib上传了
1.简介
Android 仿微信视频拍摄 支持触摸拍摄 长按拍摄,采用camera2,需要API>21 后续考虑支持API>18
解决前置摄像头镜像问题
支持一步调用
支持AndroidX
已经自主处理了6.0+权限配置,无需你烦心权限处理,可不在你的APP配置权限
已经自主处理7.0+的provider配置问题,不用烦心~
使用MediaRecord,不会加大你的APP大小
2.预览
3.集成到自己的项目中
Step 1. 添加 JitPack 仓库到你的配置文件
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
Step 2. 添加本库依赖
dependencies {
implementation 'com.github.jxj2118:JCamera:v1.0.0'
}
Step 3. 开启DataBinding (PS. 后期有时间考虑移除)
android {
...
dataBinding {
enabled true
}
}
4.用法
打开相机
//如不设置 会默认打开上一次配置的结果
JCamera.instance
//.openPreCamera()// 是否打开为前置摄像头
.allowPhoto(true)// 是否允许拍照 默认允许
.allowRecord(true)// 是否允许录像 默认允许
.setMaxRecordTime(3)//最长录像时间 秒
.start(this,PHOTO_OR_VIDEO_FOR_CAMERA)//PHOTO_OR_VIDEO_FOR_CAMERA 请求码 回调时可用
获取拍摄返回
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (resultCode == Activity.RESULT_OK && requestCode == PHOTO_OR_VIDEO_FOR_CAMERA){
data?.let {
// JCamera.resultIsImg(data) 返回是否为图片
if (JCamera.resultIsImg(data)){
// JCamera.getResultPath(data) 获取结果路径
text.text = "Image Path:\n${JCamera.getResultPath(data)}"
}else{
text.text = "Video Path:\n${JCamera.getResultPath(data)}"
}
}
}
}
PS. 所有设置 会默认打开上一次配置的结果
5.~~
如果有问题请提交issues,我会抽空更新
如果帮了你的忙,麻烦star~谢谢