gpt4 book ai didi

c++ - 如何在程序运行时检测kinect何时断开/拔出?

转载 作者:太空狗 更新时间:2023-10-29 21:47:43 26 4
gpt4 key购买 nike

我正在使用官方 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 吗?

最佳答案

documentation它说 NuiStatus 返回 HRESULT 而不是 bool,所以它不应该是

HRESULT bla = m_pNuiSensor->NuiStatus();
if (bla == E_NUI_NOTCONNECTED)
{
cout << 1 << endl;
}

代替?

关于c++ - 如何在程序运行时检测kinect何时断开/拔出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12691222/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com