2012-10-14 38 views
1

这就是我安装我的应用程序的记录:使用OpenNI记录Kinect深度的问题 - “文件已损坏!”

xn::NodeInfoList recordersList; 
    rc = context.EnumerateProductionTrees(XN_NODE_TYPE_RECORDER, NULL, recordersList); 
    CHECK_RC(rc, "enumerate recorders"); 
    xn::NodeInfo chosen = *recordersList.Begin(); 

    recorder = new xn::Recorder(); 
    rc = recorder->Create(context, "oni"); 
    CHECK_RC(rc, "create recorder"); 
    rc = context.CreateProductionTree(chosen, *recorder); 
    CHECK_RC(rc, "create production tree"); 
    rc = recorder->SetDestination(XN_RECORD_MEDIUM_FILE, "KinectLog.oni"); 
    CHECK_RC(rc, "set destination for recording"); 
    rc = recorder->AddNodeToRecording(depthGenerator, XN_CODEC_16Z_EMB_TABLES); 
    CHECK_RC(rc, "add node to recording"); 

然后我打电话每秒rc = context.WaitAnyUpdateAll();约30倍;一切正常,我可以看到我的屏幕上输入的Kinect等

一切似乎去罚款,但是当我尝试打开示例NiViewer中所产生的KinectLog.oni,我得到:

[email protected] ~/OpenNI/Samples/Bin/x64-Release $ ./NiViewer ~/devel/k/KinectLog.oni 
Open failed: The file is corrupted! 
Press any key to continue . . . 

有什么事情是问题吗?

回答

1

我找到了,我忘了做:

recorder->Release(); 
delete recorder; 

末。