WEB开发网
开发学院手机开发Android 开发 Android Camera 架构介绍 阅读

Android Camera 架构介绍

 2010-03-18 16:22:00 来源:WEB开发网   
核心提示:virtual void rawCallback(const sp& picture);virtual void jpegCallback(const sp& picture);virtual void frameCallback(const sp& frame);virtual void errorCallback(

virtual void rawCallback(const sp& picture);

virtual void jpegCallback(const sp& picture);

virtual void frameCallback(const sp& frame);

virtual void errorCallback(status_t error);

virtual void autoFocusCallback(bool focused);

//……

}

从接口中可以看出Camera类刚好实现了一个 Camera的基本操作,例如播放(startPreview)、停止(stopPreview)、暂停(takePicture)等。在Camera类中connect()是一个静态函数,它用于得到一个Camera的实例。在这个类中,具有设置回调函数的几个函数:setShutterCallback、setRawCallback和setJpegCallback等,这几个函数是为了提供给上层使用,上层利用这几个设置回调函数,这些回调函数在相应的回调函数中调用,例如使用setShutterCallback设置的回调函数指针被 shutterCallback所调用。

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

继承了DeathNotifier类之后,这样当这个类作为IBinder使用的时候,当这个Binder即将Died的时候被调用其中的binderDied函数。继承这个类基本上实现了一个回调函数的功能。

2.4 头文件ICamera.h

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

class ICamera: public IInterface

{

public:

DECLARE_META_INTERFACE(Camera);

virtual void disconnect() = 0;

virtual status_t setPreviewDisplay(const sp& surface) = 0;

virtual void setHasFrameCallback(bool installed) = 0;

virtual status_t startPreview() = 0;

virtual void stopPreview() = 0;

virtual status_t autoFocus() = 0;

virtual status_t takePicture() = 0;

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:Android Camera 架构

编辑录入:coldstar [复制链接] [打 印]
赞助商链接