本课程内容由 @小驰笔记 出品,欢迎关注,获取更多交流信息~
欢迎访问个人博客:www.xiaochibiji.com`

流程图:

1、获取当前设备支持摄像头颗数

CameraManager manager = (CameraManager) activity.getSystemService(Context.CAMERA_SERVICE);
manager.getCameraIdList();

2、获取到对应摄像头的ID

CameraManager manager = (CameraManager) activity.getSystemService(Context.CAMERA_SERVICE)for (String cameraId: manager.getCameraIdList()) {             mCameraCharacteristics = manager.getCameraCharacteristics(mCameraId);// We don't use a front facing camera in this sample.Integer facing = mCameraCharacteristics.get(CameraCharacteristics.LENS_FACING);if (facing != null && facing == CameraCharacteristics.LENS_FACING_BACK) {continue;}
}
` ``## 3、根据camera id打开摄像头```CameraManager manager = (CameraManager) activity.getSystemService(Context.CAMERA_SERVICE);
manager.openCamera(mCameraId,mStateCallback, mBackgroundHandler);

4、camera状态监听

privatefinal CameraDevice.StateCallback mStateCallback = new CameraDevice.StateCallback() {@Overridepublic void onOpened(@NonNull CameraDevice cameraDevice) {}@Overridepublic void onDisconnected(@NonNull CameraDevice cameraDevice) {}@Overridepublic void onError(@NonNull CameraDevice cameraDevice, int error) {}
};

5、相关api接口

//1) CameraManager,获取camera服务
CameraManager manager = (CameraManager) activity.getSystemService(Context.CAMERA_SERVICE);//2) CameraCharacteristics,获取camera相关参数
CameraCharacteristics mCameraCharacteristics = manager.getCameraCharacteristics(mCameraId);//facing信息
Integer facing = mCameraCharacteristics.get(CameraCharacteristics.LENS_FACING);//stream map 信息
StreamConfigurationMap map = mCameraCharacteristics.get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP);
//3)open camera
manager.openCamera(mCameraId,mStateCallback, mBackgroundHandler);CameraDevice mCameraDevice;
CameraDevice.StateCallback
CaptureRequest.Builder//4)创建session
mCameraDevice.createCaptureSession(Arrays.asList(surface, mImageReader.getSurface()),new CameraCaptureSession.StateCallback() {
}//5) repeatingRequest
CameraCaptureSession mPreviewCaptureSession;
mPreviewCaptureSession.setRepeatingRequest(mPreviewRequest,null, mBackgroundHandler);

6、总结正常流程

推荐阅读:

关于我

今年,做好一件事情

从一件事改变做起

一篇文章带你了解Android 最新Camera框架

深圳上班,

从事Android Camera相关软件开发工作,

记录生活和工作的点滴,

点击关注“小驰笔记”,期待和你相遇~

从零开发一款相机APP 第六篇: Camera2相机 打开功能实现相关推荐

  1. 从零开发一款相机APP 第七篇: Camera2相机 预览功能实现

    本课程内容由 @小驰笔记 出品,欢迎关注,获取更多交流信息~ 欢迎访问个人博客:www.xiaochibiji.com 显示需要借助surface,一般采用surfaceview或者texturevi ...

  2. 从零开发一款笔记APP——神马笔记WhatsNote

    从零开发一款笔记APP--神马笔记WhatsNote 一.主要功能 二.开发过程 三.优质的笔记应用 四.附录 一.主要功能 笔记的主要功能分为三个部分: 管理 目录--多层目录结构 标签--单层结构 ...

  3. Android Camera:从零开发一款相机APP

    从零开发一款相机APP Day 1: 前言 一.Android Camera开发前景: 1)camera相关应用的领域 2)相关岗位介绍: 3)市场招聘介绍: 4)发展前景介绍: 二.学习这门课的重要 ...

  4. 从零开发一款相机 第五篇:Camera api1实现预览、拍照、录像功能

    本课程内容由 @小驰笔记 出品,欢迎关注,获取更多交流信息~ 欢迎访问个人博客:www.xiaochibiji.com 这节课,我们主要讲解如果使用camera api1接口,实现预览.拍照以及录像功 ...

  5. 手牵手,使用uni-app从零开发一款视频小程序 (系列上 准备工作篇)

    系列文章 手牵手,使用uni-app从零开发一款视频小程序 (系列上 准备工作篇) 手牵手,使用uni-app从零开发一款视频小程序 (系列下 开发实战篇) 前言 好久不见,很久没更新博客了,前段时间 ...

  6. 开发一款外卖App应该具备哪些功能?

    手机app的出现改变了每个人的消费习惯,也改变了每个人的日常生活方式,没有遗漏任何东西.你是否还记的你上次中午下班去吃饭的情景?我不记得我上次中午下班出去吃饭是什么时候了,因为我已经习惯了打开外卖Ap ...

  7. 开发一款旅游APP应包含哪些功能板块呢?

    现在生活节奏快.工作高强度往往压的我们喘不过气,甚至已经严重影响我们的身心健康.旅游出行这件事已经出现在越来越多人的生活计划里.随着国民旅游意愿高涨,旅游行业市场增长十分迅猛,面对急剧上升的旅游需求, ...

  8. 打车类app怎么获取司机位置 开发_详谈开发一款打车APP应用的解决方案

    随着移动互联网的发展,使得人们的日常生活越来越便捷,其中改变最大的便是交通出行.正是如此,有些企业于是联想到其中的商机,想要借助于长沙APP开发,打造一款打车APP应用.那么接下来,长沙APP制作创研 ...

  9. 安卓新手如何学习开发一款游戏APP呢?

    毫无疑问,开发一款自己的App对于初学者来说,无论从技术学习,还是找工作,开发手机游戏而言,都是一大利器.那么如何才能快速上手,开发一款属于自己的app.本篇文章仅以自己的一些经验给更多的Androi ...

最新文章

  1. WIN8、WIN7访问Windows Server 2003服务器的数据库速度很慢、远程速度很慢的解决方法...
  2. Calling handler.OnEndpointsUpdate报错原因
  3. python谷歌网页爬虫_python爬虫入门01:教你在 Chrome 浏览器轻松抓包
  4. Pycharm怎么改背景颜色(超详细)
  5. 挂了三次科目二的我,竟被一台智能车征服 | 威马W6停车挑战
  6. 从入门到入土:Python requests代理 proxy配置 HTTP
  7. python定义变量类型_一、python基础之数据类型与变量
  8. WCF开发实战系列二:使用IIS发布WCF服务(转)
  9. ubuntu服务器开放端口_Docker服务开放了这个端口,服务器分分钟变肉机
  10. ABBYY软件PDF文本审阅操作之批阅文本
  11. photoshop教程裁剪和拉直照片以改善构图
  12. MySql安装 Staring the server出错
  13. 图像处理gamma修正(伽马γ校正)的原理和实现算法
  14. 计算机三级网络app,‎App Store 上的“计算机三级网络技术题库”
  15. PotPlayer 无损截取视频片段
  16. 用Chrome在电脑上模拟微信、QQ浏览器
  17. 浙江大华流媒体服务器型号,大华DAHUA网络视频存储服务器DH-EVS7024S-DY产品中心_DAV数字音视工程网...
  18. 复式记账法-银行业务
  19. 发那科机器人点位编辑_发那科机器人指令编辑详细介绍
  20. 硬件经典面试 100 题

热门文章

  1. 设置Ubuntu 的vim/vi 自动显示行号信息
  2. Golang HTTPS 忽略证书验证
  3. 【ARM汇编之 STM/LDM】
  4. 笔记本电脑是一种中小型计算机,综合分析各种笔记本电脑配置性能,让你选择自己需要的产品...
  5. 一、Java并发编程之线程、synchronized
  6. CString::ReverseFind()和CString::Find()区别
  7. MySQL优化之count优化
  8. Echarts学习一:制作简单的柱形图、折线图、饼图
  9. 用python买手机
  10. asp php flash java,Linux_Flash 和 ASP / PHP 以及 javascript 的交互, 唉,第一次写文章,真是 - phpStudy...