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 相机应用开发通用库相关推荐

  1. ffmpeg开发之旅(4):MP3编码格式分析与lame库编译封装

    ffmpeg开发之旅(4):MP3编码格式分析与lame库编译封装 原文链接:http://blog.csdn.net/andrexpert/article/77683776 一.Mp3编码格式分析 ...

  2. Android直播开发之旅(4):MP3编码格式分析与lame库编译封装

    转载请声明出处:http://blog.csdn.net/andrexpert/article/77683776 一.Mp3编码格式分析 MP3,全称MPEG Audio Layer3,是一种高效的计 ...

  3. Android直播开发之旅(7):Android视频直播核心技术(架构)详解

    (转载请声明出处:http://blog.csdn.net/andrexpert/article/details/76919535) 一.直播架构解析 目前主流的直播架构中主要有两种方案,即流媒体转发 ...

  4. ESP32 开发之旅② Arduino For ESP32说明

        从这一篇开始,博主将会带领各位读者进入ESP32开发的征程.在此,博主认为各位读者已经具备以下前提: 读者具有C语言以及Arduino的开发知识: 读者了解过博主的ESP8266开发系列: 读 ...

  5. Android直播开发之旅(3):AAC编码格式分析与MP4文件封装(MediaCodec+MediaMuxer)

    Android直播开发之旅(3):AAC编码格式分析与MP4文件封装(MediaCodec+MediaMuxer) (码字不易,转载请声明出处:http://blog.csdn.net/andrexp ...

  6. 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 加轮密钥 ...

  7. Android直播开发之旅(17):使用FFmpeg提取MP4中的H264和AAC

    最近在开发中遇到了一个问题,即无法提取到MP4中H264流的关键帧进行处理,且保存到本地的AAC音频也无法正常播放.经过调试分析发现,这是由于解封装MP4得到的H264和AAC是ES流,它们缺失解码时 ...

  8. 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 ...

  9. Android直播开发之旅(15):libjpeg库的编译移植与使用

    1. libjpeg介绍  libJPEG库是一款功能强大的JPEG图像处理开源库,它支持将图像数据压缩编码为JPEG格式和对原有的JPEG图像解压缩,Android系统底层处理图片压缩就是用得lib ...

最新文章

  1. CAD绘图软件中如何查询图纸的版本是多少
  2. Mysql对用户操作加审计功能——高级版
  3. django models 文件夹
  4. PyTorch1.2.0版本来啦!居然还有全套视频!让你快速熟练掌握深度学习框架!
  5. 重载 重载递增递和减运算符
  6. 010 异步处理Rest服务
  7. 我国共计34个省级行政区,包括23个省、5个自治区、4个直辖市、2个特别行政区。
  8. Js获取外网IP地址
  9. c++ primer plus第六版英文版,有需要的小伙伴自取哦
  10. 单循环链表和双向循环链表
  11. QT控件 之(TreeView)实现右键菜单栏功能,双击事件能实现区分不同的节点的点击效果
  12. 《灵飞经》①洪武天下 第四章 灵道石鱼
  13. 提高多表关联数据查询效率
  14. 计算不规则四边形(多边形)的面积
  15. linux redhate7 yum源,CentOS6.x网易163yum源配置
  16. 哈尔滨计算机管理,哈尔滨戴斯酒店计算机管理系统.doc
  17. Failed to read schema document 'http://code.alibabatech.com/schema/dubbo/dubbo.xsd'问题解决方法
  18. linux-rootkit
  19. Tandem Repeats Finder:串联重复序列查找工具
  20. 二维数组名取地址加一

热门文章

  1. 中国股市中的庄散之间的较量!
  2. 盘点最具影响力的30位网络人
  3. 扩展Redis的JSON处理模块,非常强调性能的RedisJson!速学
  4. WIN10圆形进度条
  5. 故宫不仅有彩妆,还和网易联合出手游啦!2019新游戏碗里来| SIU
  6. 教师培训教育述职PPT模板
  7. [车联网安全自学篇] Android安全之常用逆向工具汇总
  8. 兼容浏览器,hack的一些总结
  9. 西交大计算机考博学术英语,英语组举办题为《英语考博经验分享》的学术交流活动通讯...
  10. linux 垂直同步,垂直同步有什么用