在解决etag的问题后,那个.vga文件还是不能正常播放,我只好用最后一招,通过VS.NET断点来监测程序的流程,在我检查Request.Header的时候,忽然发现一项:"Accept-Ranges: bytes0-31",这是什么东东?好像很熟的样子,通过在flashget中一看才知道,原来是断点续传的起始位置和结束位置。我忽然想起我的系统不支持断点续传,而这个再现播放的控件应该是通过断点续传实现的,这应该就是问题所在。
知道问题就好说了,从网上参考了一段代码用来搞断点续传的(Asp.net(c#)实现多线程断点续传)。
看起来确实不错,通过了flashget的测试。
可是我用来测试那个screen.vga,可是依然不能显示,究竟是什么原因呢?
继续用VS.NET断点来监测程序的流程,终于发现问题所在,原来flashget使用Accept-Ranges: bytes0-格式的header来发送请求,也就是说只讲明从什么地方开始而不讲明结束(莫认识文件尾部),而上面的程序也是针对flashget来设计的,却没有考虑到Accept-Ranges: bytes0-31这种有头有尾的格式。
那就容易了,到现在,也该自己写写代码了,不能总靠从网上找现成的,呵呵
以下是整个load.aspx的代码: