視頻編程
(2)創(chuàng)建類
iCamera = CCamera::NewL(*this,0);
(3)保留攝像頭
iCamera->Reserve();
2.調(diào)用observer,ReserveComplete()方法
void CImageCapturerEngine::ReserveComplete(TInt aError)
{
if(aError == KErrNone)
{
iCamera->PowerOn();
}
else
{
iObserver.OnError(aError);
}
}
注意其中的PowerOn()給相機(jī)上電
3.調(diào)用Observer的PowerOnComplete()函數(shù)通知系統(tǒng)上電完成
void CImageCapturerEngine::PowerOnComplete(TInt aError)
{
TInt err = aError;
if(aError == KErrNone)
{
TCameraInfo info;
iCamera->CameraInfo(info);
if ((info.iOptionsSupported&TCameraInfo::EContrastSupported)!=0)
{
TRAP(err, iCamera->SetContrastL(CCamera::EContrastAuto));
}
TRAP(err,StartViewFinderL());
if(err==KErrNone)
{
TRAP(err,PrepareImageCaptureL(KDefaultImageFormat));
}
}
if(err!=KErrNone)
{
iObserver.OnError(aError);
}
}
4.設(shè)置對(duì)比度,預(yù)覽圖像
void CImageCapturerEngine::ViewFinderFrameReady(CFbsBitmap&
aFrame)
{
iObserver.OnFrame(aFrame);
}
5.準(zhǔn)備捕捉圖像
void CImageCapturerEngine::ImageReady(CFbsBitmap* aBitmap,HBufC8*
/*aData*/,TInt aError)
{
if(aError == KErrNone)
{
iObserver.OnImage(aBitmap);
}
else
{
iObserver.OnError(aError);
}
}
6.重要的函數(shù):開(kāi)始預(yù)覽圖像和停止預(yù)覽
void CImageCapturerEngine::StartViewFinderL()
{
TSize imageSize(KDefaultImageWidth,KDefaultImageHeight);
if(iCamera->ViewFinderActive())
{
// iObserver.OnError(KErrAlreadyActive)
}
else
{
iCamera->StartViewFinderBitmapsL(imageSize);
}
if(!iCamera->ViewFinderActive())
{
// iObserver.OnError(KErrNotActivated);
}
}
void CImageCapturerEngine::StopViewFinder()
{
iCamera->StopViewFinder();
}
7.捕捉圖像
void CImageCapturerEngine::CaptureImage()
{
iCamera->CaptureImage();
}
補(bǔ)充:
(1)iCamera->SetContrastL(CCamera::EContrastAuto));
EContrastAuto-自動(dòng)設(shè)置
還可以設(shè)置-100到100之間的值
完整版本請(qǐng)見(jiàn)http://www.aishangyp.com
曙海教育
曙海嵌入式
(MTK培訓(xùn),Android培訓(xùn),FPGA培訓(xùn),DSP培訓(xùn),iPhone培訓(xùn))
上海總部電話:021-51875830 深圳:4008699035 北京:010-51292078
網(wǎng)址:http://www.51qianru.cn
版權(quán)所有-曙海教育 轉(zhuǎn)發(fā)請(qǐng)注明出處
|