如何用avcapture控件来从摄像头读取数据,也就是使用什么函数?谢谢!
解决方案 »
- [求助]窗口左侧的扩展与收缩
- MFC滚动条失效怎么实现的?.... 高分求解
- mfc 使用activeX控件的问题,急急急。。。
- [初学者] Windows API 读写串口 怎么能建立2个串口接收数据
- flash控件问题
- 请问关于 acrobat 5.0 sdk的问题.
- installshield的安装文件如何取得当前目录?
- 哪位能指示一下如何一步步在vc环境中编译winpcap,刚接触winpcap,很多不懂!
- 线程池的问题,请大虾帮忙
- 怎样检测FTP与服务器是否还在连接着?
- 谁能帮我提出一个有市场的软件项目,我想利用业余时间完成该项目
- 多线程问题---请解释一下每个线程扫描的起始和结束端口是怎么处理的
TCHAR achDeviceVersion[100] ;
CString csBuffer;
DWORD dwError ;
HMENU hMenu ;
m_hWndCap = capCreateCaptureWindow("Capture Window",WS_CHILD | WS_VISIBLE,
0,0, YCOLS, YROWS,/*m_rectView*/this->GetSafeHwnd(), (int) 0); RegisterHotKey(m_hWndCap,GlobalAddAtom("sdfsdf"),MOD_CONTROL,'S'); capCaptureGetSetup(m_hWndCap, &m_CapParms, sizeof(CAPTUREPARMS)) ;
m_CapParms.wNumVideoRequested = 10;
m_CapParms.wPercentDropForError = 10;
m_CapParms.wNumAudioRequested = 4;
m_CapParms.fAbortLeftMouse = 0x0;
m_CapParms.fAbortRightMouse = 0x0;
m_CapParms.dwRequestMicroSecPerFrame = 1000000/FRAMES_FOR_PS;
m_CapParms.dwAudioBufferSize = AUDIOBUFFERLENGTH;
m_CapParms.AVStreamMaster = AVSTREAMMASTER_AUDIO;
m_CapParms.vKeyAbort = 'S';
m_CapParms.fYield = TRUE;
capCaptureSetSetup(m_hWndCap, &m_CapParms, sizeof(CAPTUREPARMS)) ;
WAVEFORMATEX wfex;
wfex.wFormatTag = WAVE_FORMAT_PCM;
wfex.nChannels = 1;
wfex.nSamplesPerSec = 11025;
wfex.nAvgBytesPerSec = 11025;
wfex.nBlockAlign = 1;
wfex.wBitsPerSample = 8;
wfex.cbSize = 0;
capSetAudioFormat(m_hWndCap, &wfex, sizeof(WAVEFORMATEX));
hMenu = GetSubMenu(::GetMenu(GetParent()->GetSafeHwnd()), 2) ;
// capSetCallbackOnError(m_hWndCap, ErrorCallbackProc) ;
// capSetCallbackOnStatus(m_hWndCap, StatusCallbackProc) ;
capSetCallbackOnVideoStream(m_hWndCap, VideoCallbackProc) ;
capSetCallbackOnFrame(m_hWndCap, FrameCallbackProc) ;
capSetCallbackOnWaveStream(m_hWndCap, WaveStreamCallback); if (capGetDriverDescription(0, (LPTSTR)achDeviceName, sizeof(achDeviceName)/ sizeof(TCHAR),
(LPTSTR)achDeviceVersion, sizeof(achDeviceVersion)/sizeof(TCHAR)))
{
csBuffer.Format("&%d %s", 0 , achDeviceName) ;
// AppendMenu(hMenu, MF_ENABLED, IDM_O_DRIVERS, csBuffer) ;
dwError = capDriverConnect(m_hWndCap, 0);
// if (dwError)
// {
// CheckMenuItem(::GetMenu(GetParent()->GetSafeHwnd()), IDM_O_DRIVERS, MF_BYCOMMAND | MF_CHECKED) ;
// }
}
capSetVideoFormat(m_hWndCap,&m_InbmpInfoHeader,sizeof(BITMAPINFOHEADER));
DrawMenuBar() ;
CenterCaptureWindow(m_hWndCap) ;
StartNewVideoChannel(m_hWndCap, 0) ;