android 录制视频过程中拍照,GitHub - 616852636/CameraView: 仿微信拍照Android控件(点击拍照,长按录小视频)...
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控件(点击拍照,长按录小视频)...相关推荐
- JCameraView 仿微信拍照Android控件(点击拍照,长按录小视频)
使用方法 Gradle依赖: compile 'cjt.library.wheel:camera :1.1.9' 引用源码 : clone源码后 引入lib -> camera 尝试运行 : ...
- Android开发技巧——定制仿微信图片裁剪控件
拍照--裁剪,或者是选择图片--裁剪,是我们设置头像或上传图片时经常需要的一组操作.上篇讲了Camera的使用,这篇讲一下我对图片裁剪的实现. 背景 下面的需求都来自产品. 裁剪图片要像微信那样,拖动 ...
- android yuv加水印_在Android采集视频过程中增加水印功能实现
CSDN旧文搬迁! 在Android采集视频过程中增加水印,并且水印包含一个变化的时间戳,这里考虑方案实现的时候,就想到了ffmpeg,ffmpeg包含很多filter能实现水印添加的功能. 基本实现 ...
- Android studio安装过程中入的坑的记录与记录
Android studio安装过程中入的坑的记录与记录 * 由于最近项目的需求,所以最近一直在配置安卓的开发环境,之前用的是Eclipse + ADT的模式开发的,配置环境也花了一些时间,但是由于谷 ...
- 解决Android Studio安装过程中“SDK tools directory is missing”的问题
解决Android Studio安装过程中"SDK tools directory is missing"的问题 参考文章: (1)解决Android Studio安装过程中&qu ...
- Android Studio使用过程中Java类突然报红,但项目可运行解决方案
Android Studio使用过程中Java类突然报红,但项目可运行解决方案 参考文章: (1)Android Studio使用过程中Java类突然报红,但项目可运行解决方案 (2)https:// ...
- android 仿照ios 图片选择,GitHub - wildma/PictureSelector: Android 图片选择器(仿 IOS 图片选择控件)...
PictureSelector Android 图片选择器(仿 IOS 图片选择控件) 效果图 功能特点 支持通过拍照获取图片 支持通过相册获取图片 支持图片是否裁剪两种场景 支持仿 IOS 底部弹出 ...
- Android控件点击圆形阴影反馈解决方案
Android控件点击圆形阴影反馈解决方案 愿景 对于手机App而言,没有反馈效果的按钮使用体验是不舒服的.最近在深入学习Material Design,对其中的ripple效果比较感兴趣.我想着尝试 ...
- WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆)
原文:WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆) 版权声明:本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可.欢迎转载.使用.重新发布,但务必保 ...
最新文章
- JAVA取数两个数组交集,考虑重复和不重复元素
- flume采集最简demo
- php和openresty效率,openresty say_hello 性能测试
- 基于时序数据库做监控,这里有超流行的开源方案
- 27岁华裔小伙搞出美国新冠最准预测模型,一人干翻专业机构,彭博:Superstar...
- Eclipse离线安装Java Decompiler插件
- 基于高斯分布的异常检测算法 项目描述
- linux 创建mbr分区,MBR分区类型简介
- Docker 之 Docker Machine
- 根据用户的不同登录不同的页面
- omf多路径 oracle_Oracle OMF 功能详解
- CF 1720 D1. Xor-Subsequence (easy version) dp 1800
- C/C++实现http下载文件
- PADS逻辑系列含义
- Linux 中用 dd 命令来测试硬盘读写速度
- html 制作速卖通店招,怎么制作速卖通店招?速卖通店招的尺寸是多少?
- fdbus examples 分析-- fdb_test_server.cpp
- 5.20软件构造心得
- 网站木马后门查杀工具Linux系统专用
- 菱科闭式冷却塔的环保性
热门文章
- android 粘贴文字,android 复制、粘贴文字
- 软件测试中的程序接缝指什么,接缝滑移-定滑移量常用测试标准与方法
- 计算机word求差函数,【2人回答】Word表格求差函数(不是Excel中哦)-3D溜溜网
- qemu-system-riscv64 源码编译 及 运行参数
- 《计算机网络》笔记——TCP/IP HTTP/HTTPS
- 【C编程】找出7个默森尼数。法国数学家默森尼曾提出下列公式:Mp=2^p-1。当p是素数并且Mp也是素数时,称Mp为默森尼数,
- 数学建模学习(59):云模型数据处理进行选优
- mysql weekofmonth_MySQL里求给定的时间是所在月份的第几个礼拜
- 用友grp_U8财务软件账套无法修改资产管理的折旧摊销业务设置
- 均胜c语言面试题,2014年广东省高考英语听说考试真题F