77范文网 - 专业文章范例文档资料分享平台

Android Camera分析(12)

来源:网络收集 时间:2020-12-22 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

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

if(mDeathNotifier==NULL){

mDeathNotifier=newDeathNotifier();

}

binder->linkToDeath(mDeathNotifier);

mCameraService=interface_cast<ICameraService>(binder);

}

LOGE_IF(mCameraService==0,"noCameraService!?");returnmCameraService;

}

其中最重要的一点是binder=sm->getService(String16("media.camera"));;这个调用用来得到

一个名称为"media.camera"的服务,这个调用返回值的类型为IBinder,根据实现将其转换成类型ICameraService使用。

一个函数connect的实现如下所示:

sp<Camera>Camera::connect(){

sp<Camera>c=newCamera();

constsp<ICameraService>&cs=getCameraService();if(cs!=0){

c->mCamera=cs->connect(c);

}

if(c->mCamera!=0){

c->mCamera->asBinder()->linkToDeath(c);c->mStatus=NO_ERROR;

}returnc;

}

connect通过调用getCameraService得到一个ICameraService,再通过ICameraService的

cs->connect(c)得到一个ICamera类型的指针。调用connect将得到一个Camera的指针,正常情况下Camera的成员mCamera已经初始化完成。

一个具体的函数startPreview如下所示:

status_tCamera::startPreview(){

returnmCamera->startPreview();

}

这些操作可以直接对mCamera来进行,它是ICamera类型的指针。其他一些函数的实现也与setDataSource类似。

libmedia.so中的其他一些文件与头文件的名称相同,它们是:

frameworks/base/libs/ui/ICameraClient.cppframeworks/base/libs/ui/ICamera.cppframeworks/base/libs/ui/ICameraService.cpp

在此处,BnCameraClient和BnCameraService类虽然实现了onTransact()函数,但是由于还有纯

虚函数没有实现,因此这个类都是不能实例化的。

ICameraClient.cpp中的BnCameraClient在别的地方也没有实现;而ICameraService.cpp中的

BnCameraService类在别的地方被继承并实现,继承者实现了Camera服务的具体功能。

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库Android Camera分析(12)在线全文阅读。

Android Camera分析(12).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/1169296.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: