如何为两个Kinect运行同一个应用程序的两个实例?

时间:2014-03-26 02:12:37

标签: vb.net kinect

我想问一下,有没有办法检查Kinect目前是否正在使用(sensor.start),以便我们可以将另一个Kinect用于另一个应用程序或同一个应用程序?我尝试过使用Kinect.IsRunning,但它无法正常工作。

以下是这种情况:我有一个在一个Kinect上运行的应用程序,但我想运行这个应用程序两次。我有两个Kinect连接到我的电脑。问题是每当我运行第二个应用程序时,它将检测到要使用的相同Kinect导致第二个应用程序崩溃。我想这个应用程序可以知道第一个Kinect传感器是否已经启动,它将用于下一个。我读过这篇文章,但它并没有帮助我解决这个问题。 http://social.msdn.microsoft.com/Forums/en-US/e8e96d97-ec02-430e-b80c-a40ae6b92604/running-two-instances-of-the-same-app-for-two-kinects?forum=kinectsdknuiapi

到目前为止,我将Kinect ID硬编码到我的应用程序中,但这意味着我需要有两个效率不高的应用程序。如果我需要更改Kinect,我需要在代码中再次更改ID。任何人都可以帮助我。请?我认为应该不难,但我仍然没有找到任何功能来做到这一点。我在VB.Net中编写代码

1 个答案:

答案 0 :(得分:0)

我会做这样的事情:

For Each _sensor As KinectSensor In KinectSensor.KinectSensors
    sensor = _sensor

    ...//setup event handlers and such

    Try
        sensor.Start() //If it gets past this, then we can exit as it has
                       // successfully started a kinect
        Exit For

    Catch ex As ApplicationException
        MsgBox("That Kinect is being used in another application, moving to the next")
    Catch ex2 As IOException
        MsgBox("Error")
    End Try
Next

这将搜索所有的kinects,尝试启动它们,如果抛出ApplicationException,它将移动到下一个kinect。