Camera2Record

Project Url: CKTim/Camera2Record
Introduction: Camera2 api 实现点击拍照,长按录制。
More: Author   ReportBugs   
Tags:

Camera2 api 实现点击拍照,长按录制。

更多介绍参考简书地址:http://www.jianshu.com/p/f8c694a4fb57

一、先看一下效果图:

capture.gif record.gif

二、3 步集成到自己的项目中:

1.在 AndroidManifest.xml 申明所需要的权限: (注:请确保进入 Camera2 的时候已经拥有这三项权限了,Android6.0 需要动态去申请权限)

   <uses-permission android:name="android.permission.CAMERA" />
   <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
   <uses-permission android:name="android.permission.RECORD_AUDIO" />

2.在 project 的 build.gradle 和 app 的 build.gradle 下分别申明如下代码:

project 的 build.gradle:

allprojects {
    repositories {
        maven { url 'https://jitpack.io' }//这句代码
    }
}

app 的 build.gradle:

dependencies {
    compile 'com.github.CKTim:Camera2Record:v1.0.0'
}

3.打开 Camera2:

因为每个人对拍完照或者录完像后的处理都不一样,所以这里我采用拍完跳转 activity 的方式,将拍照录像后的地址传递给了下一个 activity,当然这个 activty 界面逻辑什么的都是由你自己去编写的,你可以对获取到的图片视频地址进行你需要的编辑,例如再次压缩或者重拍等操作: getIntent().getStringExtra(Camera2Config.INTENT_PATH_SAVE_PIC);//获取图片地址 getIntent().getStringExtra(Camera2Config.INTENT_PATH_SAVE_VIDEO);//获取视频地址

如下用法:

    //配置 Camera2 相关参数,
    Camera2Config.RECORD_MAX_TIME = 10;//最长录制时间
    Camera2Config.RECORD_MIN_TIME=2;//最短录制时间
    Camera2Config.RECORD_PROGRESS_VIEW_COLOR=R.color.colorAccent;//录制进度条颜色
    Camera2Config.PREVIEW_MAX_HEIGHT=1000;////最大高度预览尺寸,默认大于 1000 的第一个
    Camera2Config.PATH_SAVE_VIDEO=;//视频保存地址,注意需要以/结束,例如 Camera2/
    Camera2Config.PATH_SAVE_PIC=;图片保存地址,注意需要以/结束,例如 Camera2/
    Camera2Config.ENABLE_CAPTURE=true;//是否开启拍照功能
    Camera2Config.ENABLE_RECORD=true;//是否开启录像功能
    //拍完照需要跳转的 activity,这个 activity 自己编写,可以获取到保存的视频或者图片地址
    Camera2Config.ACTIVITY_AFTER_CAPTURE = Camera2RecordFinishActivity.class;
    btnOpenCamera2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
               //进入 Camera2 界面
                Camera2RecordActivity.start(MainActivity.this);
            }
        });
Apps
About Me
GitHub: Trinea
Facebook: Dev Tools