在VS2010 用的QT框架做的海康sdk开发,预览不出图像。
直接贴代码
qt_test::qt_test(QWidget *parent, Qt::WFlags flags)
: QMainWindow(parent, flags)
{
ui.setupUi(this);
connect(ui.pushButton_3, SIGNAL(clicked()), this, SLOT(CamerStart())); //开始
connect(ui.pushButton, SIGNAL(clicked()), this, SLOT(CamerStop())); //停止
connect(ui.pushButton_4, SIGNAL(clicked()), this, SLOT(CamerExit())); //关闭
HWND hwnd = (HWND)ui.frame->winId();
//初始化
NET_DVR_Init();
//注册设备
NET_DVR_DEVICEINFO_V30 StruDeviceInfo;
IUserID = NET_DVR_Login_V30("192.168.1.64",8000,"admin","liginfo1001",&StruDeviceInfo);
if(IUserID < 0)
{
qDebug()<<"login error!\n";
NET_DVR_Cleanup();
return;
}
//启动预览
NET_DVR_PREVIEWINFO StruPlayInfo = {0};
StruPlayInfo.hPlayWnd = hwnd;
StruPlayInfo.lChannel = 1;
StruPlayInfo.dwStreamType = 1;
StruPlayInfo.dwLinkMode = 0;
StruPlayInfo.bBlocked = 0;
IRealPlayHandle = NET_DVR_RealPlay_V40(IUserID,&StruPlayInfo,NULL,NULL);
/*
NET_DVR_CLIENTINFO ClientInfo = {0};
ClientInfo.hPlayWnd = hwnd;
ClientInfo.lChannel = 1;
ClientInfo.lLinkMode = 0;
ClientInfo.sMultiCastIP = NULL;
IRealPlayHandle = NET_DVR_RealPlay_V30(IUserID,&ClientInfo,g_RealDataCallBack_V30,NULL,0);
*/
if(IRealPlayHandle<0)
{
qDebug()<<"play error!\n";
NET_DVR_Logout(IUserID);
NET_DVR_Cleanup();
return;
}
else
{
}
}
UI界面上画了三个按键用来控制的,一个frame 用来显示图像,我获取这个frame的句柄,然后调用NET_DVR_RealPlay_V30,播放,frame上市空的什么都没有。什么原因,新手,没搞过,我的平台是windows 跨平台用的QT做的