我有一个大小为 300 字节的 wmv 文件。我想将它分成几个字节(例如:(每个 150 字节)或(3 100 字节))。如何在 C# 语言中实现这一点?
问问题
1048 次
3 回答
0
我会尝试在不显式拆分的情况下对其进行流式传输(tcp 堆栈将根据需要对其进行拆分^^)。如果你有一个好的编解码器,它无论如何都会播放它。(Vlc 可以在下载时始终播放视频)
于 2011-07-18T15:46:52.240 回答
0
真正的答案是,只需使用流式服务器,而无需编写流式协议。太疯狂了。要将文件拆分为字节段,您可以使用类似下面的代码。这不是未经测试的,但它应该完成了大约 95%。
如果你还没有,你应该看看 proto 规范。 http://msdn.microsoft.com/en-us/library/cc251059(v=PROT.10).aspx 如果你有,并且你问了这个问题,那么你在地狱里没有冰块的机会让它发挥作用,
int chunkSize = 300;
var file = File.Open("c:\file.wmv", FileMode.Open);
var numberOfChunks = (file.Length/chunkSize)+1;
byte[][] fileBytes = new byte[numberOfChunks][];
for (int i = 0; i < numberOfChunks; i++)
{
int bytesToRead = chunkSize;
if (i == numberOfChunks + 1)
{
bytesToRead = (int)(file.Length - (i * chunkSize));
}
fileBytes[i] = new byte[bytesToRead];
file.Read(fileBytes[i], i * chunkSize, bytesToRead);
}
于 2011-07-18T15:59:09.743 回答
0
这实际上取决于您是否希望文件正常工作。将它们分成块很容易:将它们读入一个字节数组,有一个 for 循环将数组的一部分复制到一个大小为 CHUNK 的文件中,而不会忘记复制文件的最终字节。将它们拆分为工作文件是不同的。
于 2011-07-18T15:30:27.120 回答