【发布时间】:2012-10-02 13:27:31
【问题描述】:
我正在使用官方 Kinect SDK 1.5 示例之一,我正在尝试弄清楚如何添加检查以检测 Kinect 何时断开连接。目前该应用程序将冻结,因此必须有办法防止这种情况发生。
这是 SDK 示例中的主要消息循环:
// Main message loop
while (WM_QUIT != msg.message)
{
hEvents[0] = m_hNextDepthFrameEvent;
// Check to see if we have either a message (by passing in QS_ALLINPUT)
// Or a Kinect event (hEvents)
// Update() will check for Kinect events individually, in case more than one are signalled
DWORD dwEvent = MsgWaitForMultipleObjects(eventCount, hEvents, FALSE, INFINITE, QS_ALLINPUT);
// Check if this is an event we're waiting on and not a timeout or message
if (WAIT_OBJECT_0 == dwEvent)
{
Update();
}
// does not work.
bool bla = m_pNuiSensor->NuiStatus();
if (NULL == m_pNuiSensor)
{
cout << 1 << endl;
}
if (PeekMessageW(&msg, NULL, 0, 0, PM_REMOVE))
{
// If a dialog message will be taken care of by the dialog proc
if ((hWndApp != NULL) && IsDialogMessageW(hWndApp, &msg))
{
continue;
}
TranslateMessage(&msg);
DispatchMessageW(&msg);
}
}
return static_cast<int>(msg.wParam);
我添加了以下内容:
// does not work, bla will always be the same value.
bool bla = m_pNuiSensor->NuiStatus();
if (NULL == m_pNuiSensor)
{
cout << 1 << endl;
}
因为我假设NuiStatus 可能是一种检测断开连接的方法。不幸的是,它不起作用。检查m_pNuiSensor是否为NULL也是如此。
那么检测正在运行的应用程序断开连接的方法是什么?
EDIT1:我应该使用NuiSetDeviceStatusCallback吗?
【问题讨论】:
-
标题不应该是“如何检测Kinect何时被disKinected”吗?
-
@PeteBecker :) 我更改了标题以使其更清晰。
标签: c++ visual-c++ kinect