Android直播开发之旅(9):OkCamera,Android 相机应用开发通用库
OkCamera,Android 相机应用开发通用库
转载请声明出处:http://blog.csdn.net/andrexpert/article/details/79302576
明天就可以回家过年了,有点小激动,于是乎赶紧写篇文章压压惊!本文主要介绍最近写的一个Camera开发通用库-OkCamera ,OkCamera库是我另外一个开源项目(AndroidFastDevelop,目前孵化中...)的一个模块,主要为应用开发提供各种Camera操作。AndroidFastDevelop,顾名思义,它是一个Android应用快速开发框架,其目标是通过该框架能够快速、简洁而不失优美的开发性能较高的Material Design风格APP。它基于MVP或MVVM模式实现,将提供一些功能较为强大的常用控件、音视频开发库、权限管理库、UVCCamera以及常用第三方框架的高级封装等。
AndroidFastDevelop是我2018年前期的奋斗目标,这里还是回到OkCamera的介绍。一句话,我希望通过OkCamera库,能够满足你使用Camera做出能够想到的功能,比如变焦、录像、拍照、推流、美化等等...
一、如何使用OkCamera库
1. 添加到Android Studio工程
(1) 修改根目录下的build.gradle文件
allprojects {repositories {...maven { url 'https://jitpack.io' }}}
(2)添加依赖到module的build.gradle文件
dependencies { compile 'com.github.jiangdongguo:OkCamera:1.0'
}
2. APIs介绍
(1) 创建CameraHelper ,为Camera传递SurfaceView,开始渲染
CameraHelper mCamHelper = CameraHelper.createCameraHelper();mCamHelper.setSurfaceView(mSurfaceView);
其中,mSurfaceView是SurfaceView的一个实例,用于渲染Camera数据。当然,如果你需要监听变焦、预览数据等事件,需要注册CameraHelper.OnCameraHelperListener
事件监听器,代码如下:
mCamHelper.setOnCameraHelperListener(new CameraHelper.OnCameraHelperListener() {@Overridepublic void OnTakePicture(String path, Bitmap bm) {// do something...}@Overridepublic void onCameraFocus(boolean success, Camera camera) {// do something...}@Overridepublic void onCameraPreview(byte[] data, Camera camera) {// do something...}@Overridepublic void onZoomChanged(int maxZoomVaule, int zoomValue) {// do something...}});
(2) 拍摄JPG图片,OKCamera会始终保证你拍出来的照片方向是正常的
mCamHelper.takePicture(picPath);
(3) 录制Mp4视频,OkCamera会根据手机的方向自动适应
mCamHelper.startRecordMp4(videoPath);
mCamHelper.stopRecordMp4();
(4) 手动对焦、切换分辨率 or 切换前后置摄像头
mCamHelper.cameraFocus();
mCamHelper.switchCamera();
mCamHelper.updateResolution(int width, int height);
除此之外,OkCamera还会自动对焦等。当然,目前截止,OkCamera仅完成50%左右,后续还会添加各种配置参数API以及结合OpenCV来处理图像。如果你有这里没有的需求,也可以留言,我会尽量做到覆盖到Camera所有相关功能。
GitHub项目:https://github.com/jiangdongguo/OkCamera (欢迎讨论,star & fork)
Android直播开发之旅(9):OkCamera,Android 相机应用开发通用库相关推荐
- ffmpeg开发之旅(4):MP3编码格式分析与lame库编译封装
ffmpeg开发之旅(4):MP3编码格式分析与lame库编译封装 原文链接:http://blog.csdn.net/andrexpert/article/77683776 一.Mp3编码格式分析 ...
- Android直播开发之旅(4):MP3编码格式分析与lame库编译封装
转载请声明出处:http://blog.csdn.net/andrexpert/article/77683776 一.Mp3编码格式分析 MP3,全称MPEG Audio Layer3,是一种高效的计 ...
- Android直播开发之旅(7):Android视频直播核心技术(架构)详解
(转载请声明出处:http://blog.csdn.net/andrexpert/article/details/76919535) 一.直播架构解析 目前主流的直播架构中主要有两种方案,即流媒体转发 ...
- ESP32 开发之旅② Arduino For ESP32说明
从这一篇开始,博主将会带领各位读者进入ESP32开发的征程.在此,博主认为各位读者已经具备以下前提: 读者具有C语言以及Arduino的开发知识: 读者了解过博主的ESP8266开发系列: 读 ...
- Android直播开发之旅(3):AAC编码格式分析与MP4文件封装(MediaCodec+MediaMuxer)
Android直播开发之旅(3):AAC编码格式分析与MP4文件封装(MediaCodec+MediaMuxer) (码字不易,转载请声明出处:http://blog.csdn.net/andrexp ...
- Android直播开发之旅(25):使用AES算法加密多媒体文件(+RSA+MD5+Base64)
文章目录 1. AES算法 1.1 AES加密过程 1.1.1 字节代替(SubBytes) 1.1.2 行移位(ShiftRows) 1.1.3 列混合(MixColumns) 1.1.4 加轮密钥 ...
- Android直播开发之旅(17):使用FFmpeg提取MP4中的H264和AAC
最近在开发中遇到了一个问题,即无法提取到MP4中H264流的关键帧进行处理,且保存到本地的AAC音频也无法正常播放.经过调试分析发现,这是由于解封装MP4得到的H264和AAC是ES流,它们缺失解码时 ...
- Android直播开发之旅(13):使用FFmpeg+OpenSL ES播放PCM音频
文章目录 1. OpenSL ES原理 1.1 OpenSL ES核心API讲解 1.1.1 对象(Object)与接口(Interface) 1.1.2 [OpenSL ES的状态机制](https ...
- Android直播开发之旅(15):libjpeg库的编译移植与使用
1. libjpeg介绍 libJPEG库是一款功能强大的JPEG图像处理开源库,它支持将图像数据压缩编码为JPEG格式和对原有的JPEG图像解压缩,Android系统底层处理图片压缩就是用得lib ...
最新文章
- CAD绘图软件中如何查询图纸的版本是多少
- Mysql对用户操作加审计功能——高级版
- django models 文件夹
- PyTorch1.2.0版本来啦!居然还有全套视频!让你快速熟练掌握深度学习框架!
- 重载 重载递增递和减运算符
- 010 异步处理Rest服务
- 我国共计34个省级行政区,包括23个省、5个自治区、4个直辖市、2个特别行政区。
- Js获取外网IP地址
- c++ primer plus第六版英文版,有需要的小伙伴自取哦
- 单循环链表和双向循环链表
- QT控件 之(TreeView)实现右键菜单栏功能,双击事件能实现区分不同的节点的点击效果
- 《灵飞经》①洪武天下 第四章 灵道石鱼
- 提高多表关联数据查询效率
- 计算不规则四边形(多边形)的面积
- linux redhate7 yum源,CentOS6.x网易163yum源配置
- 哈尔滨计算机管理,哈尔滨戴斯酒店计算机管理系统.doc
- Failed to read schema document 'http://code.alibabatech.com/schema/dubbo/dubbo.xsd'问题解决方法
- linux-rootkit
- Tandem Repeats Finder:串联重复序列查找工具
- 二维数组名取地址加一