私は、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 センサーが物理的な傾斜操作を終了し、次の傾斜操作の準備ができていることをどのように確認できますか?