1
我試圖將Kinect傳感器的深度數據記錄到文件中,然後使用openNi進行播放。 我寫了一個基於openNi實例的簡單程序。我使用java包裝。使用OpenNI錄製和閱讀oni文件時出現問題。
的問題是,當我嘗試閱讀,我錄製到.oni文件,我得到這個錯誤:
org.OpenNI.StatusException: The file is corrupted!
這裏是我的記錄代碼:
Context context = new Context();
// add the NITE License
License license = new License("PrimeSense", "0KOIk2JeIBYClPWVnMoRKn5cdY4="); // vendor, key
context.addLicense(license);
DepthGenerator depth = DepthGenerator.create(context);
Recorder recorder = Recorder.create(context, "oni");
context.createProductionTree(recorder.getInfo());
recorder.setDestination(RecordMedium.FILE, "KinectLog.oni");
recorder.addNodeToRecording(depth);
context.startGeneratingAll();
int tmp = 0;
while(tmp < 100){
tmp++;
context.waitAnyUpdateAll();
recorder.Record();
System.out.println("recording");
}
也許我必須在錄製後通過調用一些.release()方法來清理?記錄器沒有這樣的方法。
這裏是我打.oni文件代碼:
Context context = new Context();
// add the NITE License
License license = new License("PrimeSense", "0KOIk2JeIBYClPWVnMoRKn5cdY4="); // vendor, key
context.addLicense(license);
context.openFileRecordingEx("KinectLog.oni");
就這麼注塑StatusException的openFileRecordingEx。
任何人都知道我在做什麼錯了?