Android Camera分析(7)

2020-12-22 09:00

完整讲解了android中camera的工作机制,代码分析。对了解整个android工作流程会有很大的帮助。

staticsp<Camera>connect();

~Camera();

voidstatus_tstatus_tstatus_tvoidstatus_tstatus_tstatus_tString8voidvoidvoidvoidvoid

void

disconnect();

getStatus(){returnmStatus;}

setPreviewDisplay(constsp<Surface>&surface);startPreview();

stopPreview();autoFocus();takePicture();

setParameters(constString8&params);getParameters()const;

setShutterCallback(shutter_callbackcb,void*cookie);setRawCallback(frame_callbackcb,void*cookie);setJpegCallback(frame_callbackcb,void*cookie);setFrameCallback(frame_callbackcb,void*cookie);setErrorCallback(error_callbackcb,void*cookie);

setAutoFocusCallback(autofocus_callbackcb,void*cookie);

//ICameraClientinterfacevirtualvoidvirtualvoidvirtualvoidvirtualvoidvirtualvoidvirtualvoid

//……}

从接口中可以看出Camera类刚好实现了一个Camera的基本操作,例如播放(startPreview)、

停止(stopPreview)、暂停(takePicture)等。在Camera类中connect()是一个静态函数,它用于得到一个Camera的实例。在这个类中,具有设置回调函数的几个函数:setShutterCallback、setRawCallback和setJpegCallback等,这几个函数是为了提供给上层使用,上层利用这几个设置回调函数,这些回调函数在相应的回调函数中调用,例如使用setShutterCallback设置的回调函数指针被shutterCallback所调用。

在定义中,ICameraClient类双继承了IInterface和IBinder::DeathRecipient,并定义了一

个Camera客户端的接口,BnCameraClient继承了BnInterface<ICameraClient>,这是为基于Android的基础类Binder机制实现在进程通讯而构建的。事实上,根据BnInterface类模版的定义BnInterface<ICameraClient>类相当于双继承了BnInterface和ICameraClient。这是Android一种常用的定义方式。

继承了DeathNotifier类之后,这样当这个类作为IBinder使用的时候,当这个Binder即将Died

的时候被调用其中的binderDied函数。继承这个类基本上实现了一个回调函数的功能。

2.4头文件ICamera.h

ICamera.h描述的内容是一个实现Camera功能的接口,其定义如下所示:classICamera:publicIInterface{public:

shutterCallback();

rawCallback(constsp<IMemory>&picture);jpegCallback(constsp<IMemory>&picture);frameCallback(constsp<IMemory>&frame);errorCallback(status_terror);autoFocusCallback(boolfocused);


Android Camera分析(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:3G网络优化难点及解决方案译文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: