Android Camera分析(8)

2020-12-22 09:00

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

DECLARE_META_INTERFACE(Camera);virtualvoidvirtualstatus_tvirtualvoidvirtualstatus_tvirtualvoidvirtualstatus_tvirtualstatus_tvirtualstatus_tvirtualString8

};

classBnCamera:publicBnInterface<ICamera>{public:

virtualstatus_t

onTransact(uint32_tcode,

constParcel&data,Parcel*reply,uint32_tflags=0);

};

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

在camera类中,主要定义Camera的功能接口,这个类必须被继承才能够使用。值得注意的是,这些接口和Camera类的接口有些类似,但是它们并没有直接的关系。事实上,在Camera类的各种实现中,一般都会通过调用ICamera类的实现类来完成。

2.5头文件ICameraService.h

ICameraService.h用于描述一个Camera的服务,定义方式如下所示:classICameraService:publicIInterface{public:

DECLARE_META_INTERFACE(CameraService);virtualsp<ICamera>

};

classBnCameraService:publicBnInterface<ICameraService>{public:

virtualstatus_t

onTransact(uint32_tcode,

constParcel&data,Parcel*reply,uint32_tflags=0);

};

由于具有纯虚函数,ICameraService以及BnCameraService必须被继承实现才能够使用,在

ICameraService只定义了一个connect()接口,它的返回值的类型是sp<ICamera>,这个ICamera是提供实现功能的接口。注意,ICameraService只有连接函数connect(),没有断开函数,断开的功能由ICamera接口来提供。

connect(constsp<ICameraClient>&cameraClient)=0;disconnect()=0;

setPreviewDisplay(constsp<ISurface>&surface)=0;

setHasFrameCallback(boolinstalled)=0;startPreview()=0;

stopPreview()=0;autoFocus()=0;takePicture()=0;

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


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

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

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

马上注册会员

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