【发布时间】:2013-09-05 15:47:46
【问题描述】:
我正在使用 kinect 工具包中的代码来记录和重放帧,我知道问题是它永远无法识别新的 replay_SkeletonFrameReady,因此我无法绘制我记录的骨架。请注意,我从中读取的文件中确实有数据(数据也通过 kinect 工具包方法保存)。
void replay_SkeletonFrameReady(object sender, ReplaySkeletonFrameReadyEventArgs e)
{
//..The code never makes it to this part, why is this?
processFrame(e.SkeletonFrame);
}
private void processFrame(ReplaySkeletonFrame frame)
{
if (frame != null)
{
skeletonsReplay = new Skeleton[frame.Skeletons.Length];
skeletonsReplay = frame.Skeletons;
Console.WriteLine("attempting draw");
drawMe(); //..Function that draws skeleton
}
}
private void LaunchReplay()
{
Console.WriteLine("replay launched");
Stream readFS = File.OpenRead(@Global.localDirectory +
"\\localStorage\\MySwing.replay");
replay = new KinectReplay(readFS);
//..This line of code should cause the first function to be called right?
replay.SkeletonFrameReady += replay_SkeletonFrameReady;
replay.Start();
}
【问题讨论】:
-
很抱歉,如果您已经知道问题所在,您的问题是什么?你想让它识别skeletonFrameReady吗?
-
一旦从文件中读取一个新帧,它就应该调用 replay_skeletonframeready,但这永远不会发生。所以问题是每当它读取一个新帧时,处理该帧的函数永远不会被调用。
replay.SkeletonFrameReady += replay_SkeletonFrameReady;应该调用 replay_skeletonframeready -
@EJ_Westhuizen 你在方法的各个部分设置断点了吗?你是这样确定代码永远不会达到那个程度的,还是只是因为你没有看到绘制的骨架?
标签: c# kinect kinect-sdk kinect.toolbox