学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
发新话题
打印

[原创]RM文件分析器

汗!好象没有这个块,如果修改了CONT块(其它位于头部的块也一样)的内容,要重写整个文件,要重新写入数据包,并重新生成索引表,因为修改块的内容会改变块的长度,这会影响到其后数据包的位置,所以要重写整个文件,除非修改的部份和原来的内容长度一致,才可以避免这种情况。

TOP

哦,是修改CONT块,谢谢!

具体是哪一些呢,LZ能说一下吗?

我用你的程序修改信息后发现修改了很多地方,如PROP里面的DataOffset等

TOP

修改时建议先将整个块读入到内存中,然后进行修改,最后新建一个文件,将修改好的块和原文件中的其它数据复制到新文件中。

比如说:CONT块中的author成员,假设原内容是'abcd',现在修改为'abcd1234',这时要修改author_len成员,因为author的长度改变了,接着修改CONT块的size成员。由于CONT块的长度改变了,紧跟的DATA块、数据包、INDX块的位置也改变了,所以PROP块的data_offset成员、index_offset成员;INDX块的next_index_header成员;所有索引记录的offset成员都要进行修改。然后按照原文件中块的顺序写入到新文件中。

TOP

不错,谢谢:)

TOP

LZ你好

我照着你说的去改后终于能播放了,但又出现了新问题

改动之后的文件不能拖动播放,是不是还要改什么啊?

我改了PROP块的data_offset成员、index_offset成员;INDX块的next_index_header成员;
还有CONT块里面的相关内容

TOP

我用你的分析器打开了由你分析器修改的和由我的程序修改之后的文件,对比看了很多地方都没发现不同,但你的程序修改之后的文件能拖动播放,我的却不能(原文件是能拖动的)

TOP

索引记录的offset成员也要进行修改。

TOP

哦,谢谢LZ了,终于成功了

TOP

不过我在修改过程中发现文件中的某些的参数并不正确,但是确可以正常播放

不知道哪些参数是关键参数,少了就无法播放??

TOP

哦!这个我可没有研究过,不过RealPlayer的容错能力相当不错。

TOP

发新话题