1

これは、アプリで録音を設定する方法です。

    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();、1秒間に約30回電話をかけます。すべてが機能し、画面などにKinect入力が表示されます。

KinectLog.oniすべてがうまくいくように見えますが、結果のサンプルを開こうとすると、次のNiViewerようになります。

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

何が問題なのですか?

4

1 に答える 1

1

私はそれを見つけました、私はするのを忘れました:

recorder->Release();
delete recorder;

最後に。

于 2012-10-15T06:11:16.440 に答える