我正在研究 Kinect 倾斜控件(类似于 Kinect Explorer 工具包示例中的控件,但仅由滚动条组成)。这很好,但设置倾斜角度:
CurrentKinectSensor.ElevationAngle = value;
随机导致底层 COM 引起的System.InvalidOperationException :
This API has returned an exception from an HRESULT: 0x800704D5
System.InvalidOperationException was unhandled
HResult=-2146233079
Message=This API has returned an exception from an HRESULT: 0x800704D5
Source=Microsoft.Kinect
InnerException: System.Runtime.InteropServices.COMException
HResult=-2147023659
Message=The operation could not be completed. A retry should be performed. (Exception
from HRESULT: 0x800704D5)
ErrorCode=-2147023659
InnerException:
我只能通过处理异常来处理它,但我不完全理解是什么原因。
到目前为止,我发现它在某种程度上与在 Kinect 完成对 Kinect 控制器的先前更改的物理倾斜之前设置ElevationAngle属性的新值有关。
它增加了抛出异常的可能性——换句话说,如果你过于频繁地设置ElevationAngle属性,就会发生异常。
测试设置ElevationAngle之间的最小可接受延迟约为750 毫秒,但我想这取决于要更改的角度,因为它可能会持续更长时间。
我如何知道 Kinect 传感器已完成其物理倾斜操作并准备好进行下一次倾斜操作?