可惜这个问题没人答,我也想知道,
查看 mmsystem.h // bcb中midiStreamOpen ()
mmedia.hlp // API中midiStreamOpen ()
看得累死!!!!
现在我只知道读资源流这一步,
怎样放这个流,还不知;
查看 mmsystem.h // bcb中midiStreamOpen ()
mmedia.hlp // API中midiStreamOpen ()
看得累死!!!!
现在我只知道读资源流这一步,
怎样放这个流,还不知;
我们现缺少 API 编程方面的书,MIDI流还涉及回调函数等,
弄不懂;
我在信箱里,收到了你的留言,咱们确是老乡,多多交流;你可能是拨号上网,很少见
到你,这里是专线上网,若不出故障,白天都在线;
关于你提出的问题:
直接用API 播放MIDI流,能行,但苦于无资料,大家似乎也无能为力;我建议
先将资源MIDI流,存成MIDI文件,再用MCI 的MCISendString("PLAY FILEName.MID",...)
播放出来;
如: 资源文件test.rc,这是一个纯文本文件,内容如下:
MidiID MIDI "filename.mid"
并将test.rc,用Add Project加到BCB或delphi工程中,
会自动编译成test.res, 工程编译后,这个Filename.mid
会自动嵌入到 .exe中,就可脱离原filename.mid;
在程序中,将访问到这个资源流:
#include "mmsystem.h" // MCI API头定义
TResourceStream *rs=
new TResourceStream((int)HInstance,"MidiID","MIDI");
rs->SaveToFile("filename.mid"); // 再存成文件,有点可笑
delete rs;
SendMCIString("play filename,mid",NULL,0,NULL); 有点勉强.
mciSendString( )