我有一个大小为300字节的wmv文件。我想将它分成几个字节(例如:(每个150字节)或(3 100字节))。我如何用C#语言实现它?
答案 0 :(得分:0)
这实际上取决于您是否希望文件正常工作。将它们拆分成块很容易:将它们读入一个字节数组,有一个for循环,它将部分数组复制到一个大小为CHUNK的文件,而不会忘记复制文件的最后字节。将它们拆分为工作文件是不同的。
答案 1 :(得分:0)
我会尝试在没有显式拆分的情况下对其进行流式处理(tcp堆栈会根据需要拆分它^^)。如果你有一个很好的编解码器,无论如何它都会播放它。 (Vlc可以在下载时始终播放视频)
答案 2 :(得分:0)
真正的答案是,只使用流媒体服务器而忘记编写流媒体协议。太疯狂了。要将文件拆分为字节段,您可以使用类似下面的代码。不是那些未经测试的,但应该完成约95%。
如果你还没有,你应该看一下原型规格。 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);
}