【发布时间】:2012-11-28 13:15:20
【问题描述】:
我正在尝试在每一帧读取流中的字节。 我希望能够读取存储在我创建的文件中的位置和时间戳信息。
流是记录的骨架数据流,采用编码二进制格式
Stream recordStream;
byte[] results;
using (FileStream SourceStream = File.Open(@".....\Stream01.recorded", FileMode.Open))
{
if (SourceStream.CanRead)
{
results = new byte[recordStream.Length];
SourceStream.Read(results, 0, (int)recordStream.Length);
}
}
应该读取文件并且Read方法应该在推进流中的位置之前读取当前的字节序列。
有没有办法从读取的字节中提取我想要的数据(位置和时间戳),并在它前进之前将其保存在单独的变量中?
可以使用二进制阅读器给我这样做的能力。
BinaryReader br1 = new BinaryReader(recordStream);
我已将文件另存为 .recorded。我也把它保存为.txt,看看文件里有什么,但由于是编码的,所以看不懂。
更新: 我尝试使用断点运行代码以查看它是否使用我的 binaryreader 进入函数并崩溃并出现错误:ArgumentException 未处理。流不可读,在 BinaryReader 初始化和声明时
BinaryReader br1 = new BinaryReader(recordStream);
文件类型为 .recorded。
【问题讨论】:
-
这完全取决于二进制文件的格式。您有可用的文件格式定义吗?它是二进制的事实意味着您需要寻找指定的目的地并从那里读取..
-
文件格式为骨架数据流,包含时间戳(long 类型)、帧数(int 类型)、地板剪辑平面(float 类型)、包含设置的跟踪状态的骨架数据数组,跟踪id(int类型),骨架位置(float类型),关节信息,骨骼方向等........我如何寻找指定的目的地从那里读取?
-
您更新的问题,即使相关,也应与此问题分开以避免混淆。
标签: c# file stream binary kinect