ICamera的问题,大大的问题,付上代码

nntt 2010-09-29 09:40:56
static void CMKLCameraCtl_Notify( void* pUser, AEECameraNotify* pNotify )
{
CMKLCameraCtl* pCtl = (CMKLCameraCtl*)pUser;
if ( pCtl == NULL )
{
return;
}

switch ( pNotify->nStatus )
{
case CAM_STATUS_START:
{
DBGPRINTF( "%s\r\n", "111111111111111111111111111111111111111" );
}
break;

case CAM_STATUS_DONE:
{
DBGPRINTF( "%s\r\n", "222222222222222222222222222222222222222" );
}
break;

case CAM_STATUS_ABORT:
{
DBGPRINTF( "%s\r\n", "333333333333333333333333333333333333333" );
}
break;

case CAM_STATUS_FRAME:
{
DBGPRINTF( "%s\r\n", "4444444444444444444444444444444444444444" );
IBitmap* pFrame = NULL;
AEEBitmapInfo bi;

if ( SUCCESS != ICAMERA_GetFrame( pCtl->m_pCameraCtl, &pFrame ) )
{
return;
}

if ( pFrame == NULL )
{
return;
}

IBITMAP_GetInfo( pFrame, &bi, sizeof(bi) );
IDISPLAY_BitBlt( ((AEEApplet*)GETAPPINSTANCE())->m_pIDisplay, 0, 0, bi.cx, bi.cy, pFrame, 0, 0, AEE_RO_COPY );
IDISPLAY_UpdateEx( ((AEEApplet*)GETAPPINSTANCE())->m_pIDisplay, TRUE );
IBITMAP_Release(pFrame);
}
break;
}
}

boolean CMKLCameraCtl_Start( CMKLCameraCtl* pCtl )
{
if ( pCtl == NULL )
{
return FALSE;
}

if ( SUCCESS != ISHELL_CreateInstance( ((AEEApplet*)GETAPPINSTANCE())->m_pIShell, AEECLSID_CAMERA, (void**)&pCtl->m_pCameraCtl ) )
{
return FALSE;
}

AEESize size;
size.cx = 240;
size.cy = 320;

ICAMERA_RegisterNotify( pCtl->m_pCameraCtl, CMKLCameraCtl_Notify, (void*)pCtl );
ICAMERA_SetDisplaySize( pCtl->m_pCameraCtl, &size );
ICAMERA_SetParm( pCtl->m_pCameraCtl, CAM_PARM_PREVIEW_TYPE, CAM_PREVIEW_SNAPSHOT, 0 );
ICAMERA_Preview( pCtl->m_pCameraCtl );
DBGPRINTF( "%s\r\n", "-----------------------------------------" );
return TRUE;
}


上面代码在模拟器里面,CMKLCameraCtl_Notify回调时执行CAM_STATUS_START,并没有执行CAM_STATUS_FRAME,
而在海信E6上面执行为CAM_STATUS_DONE和CAM_STATUS_ABORT,也没有执行CAM_STATUS_FRAME,请问代码出现的问题在哪,还缺少什么调置,为什么我老执行不了CAM_STATUS_FRAME,我看别人的软件就可以正常预览和拍照,快崩溃了,曹老师有没有demo给一个
...全文
1888 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lantiane40915 2011-10-08
  • 打赏
  • 举报
回复
请问下是怎么解决的?我也碰到了同样的问题
nntt 2010-10-08
  • 打赏
  • 举报
回复
已解决,谢谢
hhygcy 2010-10-05
  • 打赏
  • 举报
回复
以前写过一个文章 看看是不是有用 http://blog.csdn.net/hhygcy/archive/2009/03/12/3983207.aspx
hhygcy 2010-10-05
  • 打赏
  • 举报
回复
虽然我不做这个东西很久了 但是还是记得有个setSize或者setFrameSize的接口
原来好像还要搞一个dependencies的classID
那些接口很多都是异步的 都是通过这个callback来告诉你成功失败的
nntt 2010-09-30
  • 打赏
  • 举报
回复
现在得到的图像老是240 * 180,请问哪里设置呢
源码下载地址: https://pan.quark.cn/s/c20c5da6957d 卸载 首先,需要核实是否存在先前安装的记录,或者系统是否预置了httpd服务,可通过以下命令进行验证: # rpm -qa | grep httpd 或者: # yum list | grep httpd 我之前已经进行过一次安装,因此在此会看到相应的显示结果: 然后我将着手卸载我的httpd,首要步骤是终止httpd服务的运行,对应的命令如下: # systemctl stop httpd.service 接着,无论是使用 rpm -e 还是 yum -erase 命令均可实现卸载,但需注意使用rpm -e命令前必须自行移除相关依赖包,因此我选择使用yum -erase命令进行卸载,具体命令为: # yum erase httpd.x86_64 在执行过程中会提示确认操作 在Linux环境中,CentOS 7 是一种非常普遍的操作系统,特别是在服务器应用方面。Apache HTTP Server(通常简称为Apache或httpd)是最广受欢迎的网页服务器软件之一,主要用于承载网站及相关服务。本资源将详尽说明在CentOS 7系统中关于Apache服务的安装与移除流程。 ### 移除Apache服务 1. **核实安装情况**: 在执行卸载操作前,必须先确认Apache是否已安装。这可以通过查询已安装的软件包列表来完成,可选用以下任一命令: ```bash # rpm -qa | grep httpd # yum list | grep httpd ``` 若Apache已安装,上述命令将返回相关的软件包信息。 2. **终止服务运行**: 在卸载前,必须先停止正在运行的A...
下载代码方式:https://pan.quark.cn/s/a4b39357ea24 在信息技术行业,特别是在操作系统部署及维护方面,统一可扩展固件接口(UEFI)与Linux系统如Debian的相互配合是一个关键议题。本篇将深入分析"在Debian 9.13系统中通过UEFI启动的UEFI Shell"这一焦点,并阐述如何处理安装期间遭遇的启动障碍。 UEFI作为替代传统BIOS的新型固件架构,它带来了更为先进、更为安全的启动机制,同时支持更大容量的存储设备以及更迅捷的启动时间。在部署Debian 9.13(Stretch版本)时,用户可以选择运用UEFI模式进行安装,从而获取上述种种好处。然而,UEFI启动过程需要特定的引导管理器,一般而言是GRUB2的UEFI版本,即称作grubx64.efi。 描述中所述情形可能是由于安装阶段GRUB2引导管理器的UEFI版本未能被恰当地生成或设置,因而系统无法经由UEFI模式启动。在此情形下,"uefishell"工具便显得尤为重要。UEFI Shell是一个命令行界面,它允许用户在UEFI环境中执行多样任务,包括手动引导操作系统。它提供了一个临时的补救措施,使用户得以纠正引导故障。 为了借助UEFI Shell来纠正启动故障,必须遵循以下步骤: 1. **获取UEFI Shell**:通常,UEFI Shell作为现代计算机UEFI固件的一部分预先安装,但在某些情况下,可能需要从设备制造商的官方网站上获取最新版本。 2. **插入搭载UEFI Shell的USB存储设备**:将下载的UEFI Shell文件拷贝至一个采用FAT32格式化的USB存储设备上,并将其接入计算机。 3. **进入UEFI配置界面**:重新...

7,676

社区成员

发帖
与我相关
我的任务
社区描述
本论坛以AI、IoT、PC 、XR、Auto等核心板块组成,为开发者提供便捷及高效的学习和交流平台。 高通开发者专区主页:https://qualcomm.csdn.net/
物联网人工智能开源 企业社区 北京·东城区
社区管理员
  • csdnsqst0050
  • chipseeker
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧