主题 : 关于在wince5.0下开启ov9650摄像头预览 mini2440平台 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 55284
精华: 0
发帖: 7
金钱: 35 两
威望: 7 点
综合积分: 14 分
注册时间: 2011-09-15
最后登录: 2011-11-07
楼主  发表于: 2011-09-20 11:11

 关于在wince5.0下开启ov9650摄像头预览 mini2440平台

   小弟最近在学习流媒体的问题,第一步想打开ov9650的预览问题,按照TQ的源码在EVC下写了一个程序,编译通过,就是显示不出来,请问大家是什么问题呢,
   我认为,打开摄像头无非就是打开设备句柄---再利用DeviceIocontrol 打开摄像头,所以我觉得问题肯定出现在这里,现在粘贴程序如下:
1. 初始化函数:
         // TODO: Add extra initialization here
    int rc = 0;
     hCam = CreateFile (TEXT("CIS1:"),GENERIC_WRITE|GENERIC_READ,0,NULL,OPEN_EXISTING,0,NULL);//打开设备句柄
    
    if (hCam == INVALID_HANDLE_VALUE)
    {
        rc = GetLastError();
        printf ("can't open file rc = %d\r\n", rc);
        AfxMessageBox(_T("无法打开设备!请检查设备是否已被占用。"));
    }
  
    BOOL ret;
    
    ret = DeviceIoControl(hCam,IOCTL_CAM_GETINFO,NULL,0,NULL,0,NULL,NULL);        //获取摄像头信息
    if(!ret)
        AfxMessageBox(_T("获取信息失败!"));
    ret = DeviceIoControl(hCam,IOCTL_CAM_HIDE,NULL,0,NULL,0,NULL,NULL);            //隐藏信息
    if(!ret)
        AfxMessageBox(_T("隐藏信息失败!"));
    ret = DeviceIoControl(hCam,IOCTL_CAM_SETCOLKEY,NULL,16,NULL,0,NULL,NULL);    //获取颜色信息
    if(!ret)
        AfxMessageBox(_T("隐藏信息失败!"));
    // TODO: 在此添加额外的初始化代码
    
    m_isPlay=FALSE;                    //开机未播放,故设定为0
    return TRUE;  // return TRUE  unless you set the focus to a control
2.打开预览函数:

  void COv9650testDlg::Play()
{
    BOOL ret;
    ret = DeviceIoControl(hCam,CAM_IOCTL_SAMSUNG_PREVIEW_START,NULL,0,NULL,0,NULL,NULL);        //启动预览功能
    if(!ret)
        AfxMessageBox(_T("启动预览失败!"));
    ret = DeviceIoControl(hCam,IOCTL_CAM_CONT,NULL,0,NULL,0,NULL,NULL);        //开始播放
    if(!ret)
        AfxMessageBox(_T("启动播放失败!"));
}

问题肯定出现在两个函数中,到底是什么问题呢,请教各位了!
级别: 新手上路
UID: 48768
精华: 0
发帖: 6
金钱: 30 两
威望: 6 点
综合积分: 12 分
注册时间: 2011-06-04
最后登录: 2012-03-18
1楼  发表于: 2012-03-11 10:28
好多地方都看到了你发的这个问题了,最后解决了吗