JCameraView

控件介绍

这是一个模仿微信拍照的Android开源控件,主要的功能有如下:

点击拍照。

前后摄像头的切换。

长按录视频(视频长度为10秒内)。

长按录视频的时候,手指上滑可以放大视频。

录制完视频可以浏览并且重复播放。

可以设置小视频保存路径。

示例截图

GIF图略有卡顿

使用步骤

Android Studio

添加下列代码到project gradle

allprojects {

repositories {

jcenter()

maven {

url 'https://dl.bintray.com/cjt/maven'

}

}

}

添加下列代码到module gradle

最新版本(0.1.9)更新内容:

compile 'cjt.library.wheel:camera:0.1.9' //修复BUG

旧版本

compile 'cjt.library.wheel:camera:0.1.7' //修复无法获取最佳分辨率导致的StackOverFlowError

compile 'cjt.library.wheel:camera:0.1.6' //修复部分机型切换前置摄像头崩溃问题和添加动态权限申请

compile 'cjt.library.wheel:camera:0.1.2' //修复部分机型不支持缩放导致崩溃

compile 'cjt.library.wheel:camera:0.1.1' //修复切换前置摄像头崩溃BUG

compile 'cjt.library.wheel:camera:0.1.0' //修复BUG

compile 'cjt.library.wheel:camera:0.0.9' //添加保持屏幕常亮唤醒状态

//需新增权限

compile 'cjt.library.wheel:camera:0.0.8' //添加手动对焦,对焦提示器,修复切换到前置摄像头崩溃的BUG

compile 'cjt.library.wheel:camera:0.0.7' //修复了长按录视频崩溃的BUG和兼容到Android4.0

compile 'cjt.library.wheel:camera:0.0.3'

布局文件中添加

android:id="@+id/cameraview"

android:layout_width="match_parent"

android:layout_height="match_parent"

app:iconMargin="20dp"

app:iconWidth="30dp"

app:iconSrc="@drawable/ic_camera_enhance_black_24dp"/>

属性

属性说明

iconWidth

右上角切换摄像头按钮的大小

iconMargin

右上角切换摄像头按钮到上、右边距

iconSrc

右上角切换摄像头按钮图片

AndroidManifest.xml中添加权限

//0.0.9需要新增权限

Activity设置为全屏

View decorView = getWindow().getDecorView();

decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN);

ActionBar actionBar = getSupportActionBar();

actionBar.hide();

初始化JCameraView控件

//(0.1.4+)动态权限获取

CheckPermissionsUtil checkPermissionsUtil = new CheckPermissionsUtil(this);

checkPermissionsUtil.requestAllPermission(this);

mJCameraView = (JCameraView) findViewById(R.id.cameraview);

//(0.0.7+)设置视频保存路径(如果不设置默认为Environment.getExternalStorageDirectory().getPath())

mJCameraView.setSaveVideoPath(Environment.getExternalStorageDirectory().getPath());

//(0.0.8+)设置手动/自动对焦,默认为自动对焦

mJCameraView.setAutoFoucs(false);

mJCameraView.setCameraViewListener(new JCameraView.CameraViewListener() {

@Override

public void quit() {

//返回按钮的点击时间监听

MainActivity.this.finish();

}

@Override

public void captureSuccess(Bitmap bitmap) {

//获取到拍照成功后返回的Bitmap

}

@Override

public void recordSuccess(String url) {

//获取成功录像后的视频路径

}

});

JCameraView生命周期

@Override

protected void onResume() {

super.onResume();

mJCameraView.onResume();

}

@Override

protected void onPause() {

super.onPause();

mJCameraView.onPause();

}

备注

该项目可能存在着许多的BUG,并且代码逻辑可能不太严谨,但是从中是我从中还是获得了许多快乐,BUG的解决,完整的运行让我刚到相当有成就感,同时我将它开源出来供大家一起学习,所谓独乐乐不如众乐乐,也可以让快步入社会的我到时候面试的多一份底气。(最后想请教一下前置摄像头录视频的时候如何将视频水平翻转)

android 录制视频过程中拍照,GitHub - 616852636/CameraView: 仿微信拍照Android控件(点击拍照,长按录小视频)...相关推荐

  1. JCameraView 仿微信拍照Android控件(点击拍照,长按录小视频)

    使用方法 Gradle依赖: compile 'cjt.library.wheel:camera :1.1.9' 引用源码 :  clone源码后 引入lib -> camera 尝试运行 : ...

  2. Android开发技巧——定制仿微信图片裁剪控件

    拍照--裁剪,或者是选择图片--裁剪,是我们设置头像或上传图片时经常需要的一组操作.上篇讲了Camera的使用,这篇讲一下我对图片裁剪的实现. 背景 下面的需求都来自产品. 裁剪图片要像微信那样,拖动 ...

  3. android yuv加水印_在Android采集视频过程中增加水印功能实现

    CSDN旧文搬迁! 在Android采集视频过程中增加水印,并且水印包含一个变化的时间戳,这里考虑方案实现的时候,就想到了ffmpeg,ffmpeg包含很多filter能实现水印添加的功能. 基本实现 ...

  4. Android studio安装过程中入的坑的记录与记录

    Android studio安装过程中入的坑的记录与记录 * 由于最近项目的需求,所以最近一直在配置安卓的开发环境,之前用的是Eclipse + ADT的模式开发的,配置环境也花了一些时间,但是由于谷 ...

  5. 解决Android Studio安装过程中“SDK tools directory is missing”的问题

    解决Android Studio安装过程中"SDK tools directory is missing"的问题 参考文章: (1)解决Android Studio安装过程中&qu ...

  6. Android Studio使用过程中Java类突然报红,但项目可运行解决方案

    Android Studio使用过程中Java类突然报红,但项目可运行解决方案 参考文章: (1)Android Studio使用过程中Java类突然报红,但项目可运行解决方案 (2)https:// ...

  7. android 仿照ios 图片选择,GitHub - wildma/PictureSelector: Android 图片选择器(仿 IOS 图片选择控件)...

    PictureSelector Android 图片选择器(仿 IOS 图片选择控件) 效果图 功能特点 支持通过拍照获取图片 支持通过相册获取图片 支持图片是否裁剪两种场景 支持仿 IOS 底部弹出 ...

  8. Android控件点击圆形阴影反馈解决方案

    Android控件点击圆形阴影反馈解决方案 愿景 对于手机App而言,没有反馈效果的按钮使用体验是不舒服的.最近在深入学习Material Design,对其中的ripple效果比较感兴趣.我想着尝试 ...

  9. WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆)

    原文:WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆) 版权声明:本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可.欢迎转载.使用.重新发布,但务必保 ...

最新文章

  1. JAVA取数两个数组交集,考虑重复和不重复元素
  2. flume采集最简demo
  3. php和openresty效率,openresty say_hello 性能测试
  4. 基于时序数据库做监控,这里有超流行的开源方案
  5. 27岁华裔小伙搞出美国新冠最准预测模型,一人干翻专业机构,彭博:Superstar...
  6. Eclipse离线安装Java Decompiler插件
  7. 基于高斯分布的异常检测算法 项目描述
  8. linux 创建mbr分区,MBR分区类型简介
  9. Docker 之 Docker Machine
  10. 根据用户的不同登录不同的页面
  11. omf多路径 oracle_Oracle OMF 功能详解
  12. CF 1720 D1. Xor-Subsequence (easy version) dp 1800
  13. C/C++实现http下载文件
  14. PADS逻辑系列含义
  15. Linux 中用 dd 命令来测试硬盘读写速度
  16. html 制作速卖通店招,怎么制作速卖通店招?速卖通店招的尺寸是多少?
  17. fdbus examples 分析-- fdb_test_server.cpp
  18. 5.20软件构造心得
  19. 网站木马后门查杀工具Linux系统专用
  20. 菱科闭式冷却塔的环保性

热门文章

  1. android 粘贴文字,android 复制、粘贴文字
  2. 软件测试中的程序接缝指什么,接缝滑移-定滑移量常用测试标准与方法
  3. 计算机word求差函数,【2人回答】Word表格求差函数(不是Excel中哦)-3D溜溜网
  4. qemu-system-riscv64 源码编译 及 运行参数
  5. 《计算机网络》笔记——TCP/IP HTTP/HTTPS
  6. 【C编程】找出7个默森尼数。法国数学家默森尼曾提出下列公式:Mp=2^p-1。当p是素数并且Mp也是素数时,称Mp为默森尼数,
  7. 数学建模学习(59):云模型数据处理进行选优
  8. mysql weekofmonth_MySQL里求给定的时间是所在月份的第几个礼拜
  9. 用友grp_U8财务软件账套无法修改资产管理的折旧摊销业务设置
  10. 均胜c语言面试题,2014年广东省高考英语听说考试真题F