我想问一下,有没有办法检查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中编写代码
答案 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。