萝卜和青菜--Android camera框架与使用
Android camera主要结构如图所示。
我们可以从三个层次去使用它:JAVA层,service层和hardwareinterface。
流程都大同小异,不同编程语言具体实现上接口略有不同, 流程框架如下:
open,
getParameters,
parameters。set
setParameters,
addcallback,
startpreview(takepicture)
Java层具体例子:
android.hardware.Camera提供了一个接口对象: Camera,用户在程序内调用这个对象的各个功能就可以了. 值得注意的是它的callback, 是可以通过setPreviewCallbackWithBuffer来设置外部缓冲区接受Camera 帧数据的,接口名为PreviewCallback, 需要你在程序中设置实现。每当camera一帧数据采集到时,这个接口会被自动调用。用户可以从你自己所属的缓冲取出数据操作了。
service层:
接口:ICamera。
调用方法:
sp<IServiceManager> sm = defaultServiceManager();
sp<IBinder> binder = sm->getService(String16("camera"));
sp<ICameraService> service = interface_cast<ICameraService>(binder);
sp<ICamera>camera= service->connect(const sp<ICameraClient>& cameraClient);
其中参数ICameraClient可以设定callback函数:
notifyCallback(int32_t msgType, int32_t ext1, int32_t ext2)
dataCallback(int32_t msgType, const sp<IMemory>& data)
dataCallbackTimestamp(nsecs_t timestamp, int32_t msgType, const sp<IMemory>& data)
其他使用方法不再赘述。
HardwareInterface层:
接口:CameraHardwareInterface,
调用方法:
CameraHardwareInterface= openCameraHardware();
流程例子:
camera_hw = openCameraHardware();
if(camera_hw == NULL){
LOGE("openCameraHardware() failed/n");
return -1;
}
camera_hw->setCallbacks(notify_cb,
data_cb,
data_cb_timestamp,
(void *)NULL);
CameraParameters parameters = camera_hw->getParameters();
parameters.setPreviewSize(1024, 600);
camera_hw->setParameters(parameters);
camera_hw->startPreview();
萝卜和青菜--Android camera框架与使用相关推荐
- Android Camera框架
总体介绍 Android Camera 框架从整体上看是一个 client/service 的架构, 有两个进程: client 进程,可以看成是 AP 端,主要包括 JAVA 代码与一些 nativ ...
- Treble 架构下的 Android Camera 框架
Camera 子系统从上到下分别是 App/Framework,CameraService,HAL Impl App/Framework vs CameraService 之间,通过 AIDL bin ...
- 介绍 Android 的 Camera 框架
总体介绍 Android Camera 框架从整体上看是一个 client/service 的架构,有两个进程: 一个是 client 进程,可以看成是 AP 端,主要包括 JAVA 代码与一些 n ...
- qcom Android Camera【转】
本文转载自:http://blog.csdn.net/Wilsonboliu/article/details/54949196 1.总体架构 Android Camera 框架从整体上看是一个 cli ...
- Android Camera架构浅析
原址 1.Camera成像原理介绍 Camera工作流程图 Camera的成像原理可以简单概括如下: 景物(SCENE)通过镜头(LENS)生成的光学图像投射到图像传感器(Sensor)表面上,然后转 ...
- 增加录像时间戳水印、 camera框架介绍
最近项目上要在mtk6589机器上增加录像的水印功能,那个纠结呀-- 一大通 度娘.google啊-- 最终整个变通的方案:做好10几个bmp(8位深度黑底白字)贴图,把文件使用ue去除掉bmp文件 ...
- Camera框架初探
先解释一些概念,然后带着思考去解读 1.CameraService. 2.Camera 3.BnCameraClient 4.BnCamera 5.Client 不得不说的是android对于bind ...
- android camera(三):camera V4L2 FIMC
关键词: android camera CMM 模组 camera参数 CAMIF V4L2 平台信息: 内核: linux 系统: android 平台:S5PV310(samsung ...
- Android 动画框架详解,第 1 部分
2019独角兽企业重金招聘Python工程师标准>>> Android 平台提供了一套完整的动画框架,使得开发者可以用它来开发各种动画效果,本文将向读者阐述 Android 的动画框 ...
最新文章
- 点击空白处遮罩层关闭_如何手动关闭win10系统自带的windows defender
- 基于RDP开源许可rdesktop基本介绍
- 关于warning: Clock skew detected. Your build may be incomplete. 的解决方法【转】
- 深入理解Linux异步I/O框架 io_uring
- ReactiveCocoa简单介绍
- 在matlab中ungetfile后,11条Matlab实用小技巧
- 通俗讲解【重定向】及其实践
- linux下软件发布,Linux Kernel 5.12发布下载,附新特性及新功能介绍
- 使用media player控件播放歌曲 winform
- Vue组件学习之事件总线和消息发布订阅
- 找不到合适的创业路该怎么办
- 深度学习2.0-33.BatchNorm
- visio画图复制粘贴到word_怎么将visio绘图导入Word(visio绘图插入word后如何调整大小)...
- 基于 Direct3D 电子海图区域绘制方法
- 如何利用PS 更改图像背景颜色
- Python数据分析师工资怎么样?
- UVa Problem 10247 Complete Tree Labeling (完全树标号)
- 物联网技术栈之网关技术
- python 怎么爬桌软件数据_python爬虫怎么从软件界面抓取数据?
- 魔兽世界服务器分组信息五区,魔兽世界服务器 魔兽世界国服所有大区的所有服务器名...