SDKを使用してアプリケーションを作成しています.1人のユーザーしかいないため、他のユーザーがいる場合は、そのユーザーがKinectに近い場合でもアプリケーションが保持します追跡した最初のスケルトンを追跡します。私はSkeletomストリームクラスを使用することができたのMSDNライブラリから1つのスケルトンをロックする方法
:
プロパティ:AppChoosesSkeletonsの=は、アプリケーションが追跡するために、どのスケルトンを選択したかどうかを決定するブール値を取得または設定します。
メソッド:SkeletonStream.ChooseSkeletons(Int32)=追跡する1つのスケルトンを選択します。 構文:public void ChooseSkeletons(int trackingId1)
私はプログラミングがよくなく、C#を使用していますが、コードのようなものを書くことを考えましたが、無効な式を使用しています。
SkeletonFrame SFrame = e.OpenSkeletonFrame();
if (SFrame == null) return;
Skeleton[] Skeletons = new Skeleton[SFrame.SkeletonArrayLength];
SFrame.CopySkeletonDataTo(Skeletons);
int firstSkeleton = Skeletons[0].TrackingId;
sensor.SkeletonStream.ChooseSkeletons(int firstSkeleton);
if (firstSkeleton == null)
return;
if (SkeletonTrackingState.Tracked == firstSkeleton.TrackingState)
{
//body...
問題がsensor.SkeletonStream.ChooseSkeletons(int firstSkeleton
であり、それはint firstSkeleton cannot be used
を言います。
誰かが私を助けてくれますか?ありがとう!
は、教えてください、どこで、いつ、あなたがそのエラーを取得します。 – Likurg
@Likurg私は、それがうまくいくかどうか、あるいはそれが最善の方法であるかどうかわからない別の方法でそれを書いた。skeleton closestSkeleton =(スケルトンのsからs.TrackingState == SkeletonTrackingState.Tracked && s.Joints [JointType.Head ])。TrackingState == JointTrackingState.Tracked select s).OrderBy(s => s.TrackingId).FirstOrDefault(); '以前に投稿したコードから、問題は' sensor.SkeletonStream.ChooseSkeletons(int firstSkeleton); int first skeletonは使えないと言っていました。私の論理はまあまあではないと思います。欠けているものがありますが、どうやってそれを行うのか分かりません。あなたの答えは – Paola
です。スケルトン 'TrackingID'を使ってみましたか?おそらく最初のものに注意を払うだけでしょうか? –