void COV9650_TestDlg::OnBnClickedPreview() //预览按钮的响应函数
{
// TODO: 在此添加控件通知处理程序代码
if(m_isPlay)
{
SetDlgItemText(IDC_PREVIEW,_T("Preview")); //设置按钮显示
Stop();
GetDlgItem(IDC_Close)->Invalidate(TRUE);
m_isPlay=FALSE;
}
else
{
SetDlgItemText(IDC_PREVIEW,_T("Stop")); //设置按钮显示
Play();
m_isPlay=TRUE;
}
}
void COV9650_TestDlg::OnBnClickedClose()
{
// TODO: 在此添加控件通知处理程序代码
BOOL ret;
if(m_isPlay) //如果正在播放
Stop(); //停止播放
ret = DeviceIoControl(hCam,IOCTL_CAM_HIDE,NULL,0,NULL,0,NULL,NULL); //隐藏信息
if(!ret)
AfxMessageBox(_T("hide info false!"));
CloseHandle(hCam); //关闭设备句柄
CDialog::OnCancel(); //关闭对话框
}
BYTE gamma_enable = (BYTE)1;
BYTE gamma_disable = (BYTE)2;
void COV9650_TestDlg::Play()
{
BOOL ret;
ret = DeviceIoControl(hCam,CAM_IOCTL_SAMSUNG_PREVIEW_START,NULL,0,NULL,0,NULL,NULL); //启动预览功能
if(!ret)
AfxMessageBox(_T("Start preview false!"));
ret = DeviceIoControl(hCam,IOCTL_CAM_CONT,NULL,0,NULL,0,NULL,NULL); //开始播放
if(!ret)
AfxMessageBox(_T("Start play video false!"));
}
void COV9650_TestDlg::Stop()
{
BOOL ret;
ret = DeviceIoControl(hCam,IOCTL_CAM_SETGAMMA,NULL,0,&gamma_disable,1,NULL,NULL); //关闭预览功能
if(!ret)
AfxMessageBox(_T("Stop preview false!"));
ret = DeviceIoControl(hCam,IOCTL_CAM_STOP,NULL,0,NULL,0,NULL,NULL); //停止播放
if(!ret)
AfxMessageBox(_T("Cannot stop!"));
}
你先把保存数据的那些代码注释掉,先实现预览,一步一步来。
你试试上面这个代码可不可以,我也用的天嵌的,可以播放,“ret = DeviceIoControl(hCam,CAM_IOCTL_SAMSUNG_PREVIEW_START,NULL,0,NULL,0,NULL,NULL); ”这是我改的,功能和原来的一样。