- 注册时间
- 2005-2-11
- 最后登录
- 1970-1-1
|
自从LeeSoft发布midi和vnt播放器的源程序以来,也过了不短的时间了.但是那个源程序写的看不懂.大家都是摸索过来的,我来总结一下:
原型:long System.SndPlayFile(char fp,long filelen,long Playtype)
功能:播放声音文件
其中filelen是声音文件的长度,这里最难确定的是Playtype这个参数:
System.SndPlayFile这个函数可以播放vnt,mid.其中vnt有两种格式:高品质,长时间.
播放高品质vnt时,vnt文件的头2个字节决定了播放类型,所以播放此声音文件时Playtype=0x10000+head[0]+(head[1]<<8)
播放长时间vnt时,vnt文件的第4,5字节决定了播放类型,所以播放此声音文件时Playtype=0x20000+head[4]+(head[5]<<8)
播放NC3000的midi时,大家摸索出来的是Playtype=0,但是filelen=0
LeeSoft发布midi和vnt播放器的源程序中还有一个'M'<<16没用过,可能就是用来播放TC800的MIDI了,我是过n次,得出:
Playtype分为3个字节(比如播放vnt的参数0x18007:0x01 80 07和0x20008:0x02 00 08):其中高字节表示播放的声音类型,中间的那个字节表示播放速度,低字节表示播放的偏移量
高字节:0x0:NC3000的midi,0x1:高品质vnt,0x2:长时间vnt
中间字节:速度控制(播放midi时尤其明显)
低字节:偏移量(姑且这么说它)
其他的就不知道了,也不知道分析的对不对,LeeSoft能表态就更好了.
为了试出TC800的midi,我的TC800可都快坏了
|
|