在Series 60平台上,CCamera类包装了摄像头相关的API。为了使用这些API,应用程序必须实现一个MCameraObserver(或MCameraObserver2)的派生类。MCameraObserver类与CCamera类之间的关系是观测者设计模式(Observer Design Pattern)在Symbian系统中的具体体现。图像采集可通过以下三种方式实现:
(1)用CCamera∷CaptureImage()启动静态图像的捕获。当其调用完成之后,MCameraObserver∷ImageReady()会被异步调用。用户可在该函数中访问刚刚捕获的图像。此方式一般用来实现手机的照相功能。
(2)用CCamera∷StartVideoCapture()启动视频捕获。当视频缓冲区被预置数目的视频帧填充之后,MCameraObserver∷FrameBufferReady()会被异步调用。用户可在该函数中访问视频缓冲区。此方式一般用来实现手机的摄像功能。
(3)用CCamera∷StartViewFinderBitmapsL()启动取景器(View Finder)数据的传输。当其调用完成之后,MCameraObserver∷ViewFinderFrameReady()会被周期性地调用。用户可在该函数中访问刚刚获取的视景帧(View Finder Frame)。此方式一般用来实现手机照相或摄像过程中的取景器功能。