主题:[原创]Turbo Pascal该如何播放mid文件?
之前在这里看到过一个大牛用Free Pascal写了一个,说是作游戏的时候可以用,但是游戏要写,总还得用Turbo pascal来写,这里想问一下,有没有人会写的?(注:播放不是说执行到播放以后,要等到播放完成才继续执行,就是说,只要用一个函数或者过程打开这个音乐文件,并且让它播放,但是不需要等到播放完,就可以执行后面的代码,应该怎么做?
顺便附带那时候那个大牛写的程序(100%不是我写的,100%是这个版的一个帖子里找来的)
//FreePascal 2.20 调试成功
PROGRAM TEST_MIDI;
function MessageBox(hWnd:LONGINT;lpText:PCHAR;lpCaption:PCHAR;uType:DWORD):LONGINT;
stdcall; external 'user32.dll' name 'MessageBoxA';
function mciExecute(pszCommand:PCHAR) : BOOLEAN;
stdcall; external 'winmm.dll' name 'mciExecute';
CONST SND_FILENAME : DWORD = $00020000; MB_OK : DWORD = 0;
var b1 : BOOLEAN;
BEGIN
writeln('initialization! please wait a few second!');
b1 := mciExecute('play c:\Windows\Media\flourish.mid');
//您也可以更换自己的MIDI背景音乐
//mciExecute指针字符串参数:play后的文件名路径必须写完整。
//设备初始化需要等待数秒钟
MessageBox(0,'播放MIDI音乐,听见了么!','MIDI音乐测试',MB_OK);
Writeln(b1);
Writeln('按回车键退出程序!');
READLN;
END.
那个帖子的地址:
http://www.programfan.com/club/post-268020.html
顺便附带那时候那个大牛写的程序(100%不是我写的,100%是这个版的一个帖子里找来的)
//FreePascal 2.20 调试成功
PROGRAM TEST_MIDI;
function MessageBox(hWnd:LONGINT;lpText:PCHAR;lpCaption:PCHAR;uType:DWORD):LONGINT;
stdcall; external 'user32.dll' name 'MessageBoxA';
function mciExecute(pszCommand:PCHAR) : BOOLEAN;
stdcall; external 'winmm.dll' name 'mciExecute';
CONST SND_FILENAME : DWORD = $00020000; MB_OK : DWORD = 0;
var b1 : BOOLEAN;
BEGIN
writeln('initialization! please wait a few second!');
b1 := mciExecute('play c:\Windows\Media\flourish.mid');
//您也可以更换自己的MIDI背景音乐
//mciExecute指针字符串参数:play后的文件名路径必须写完整。
//设备初始化需要等待数秒钟
MessageBox(0,'播放MIDI音乐,听见了么!','MIDI音乐测试',MB_OK);
Writeln(b1);
Writeln('按回车键退出程序!');
READLN;
END.
那个帖子的地址:
http://www.programfan.com/club/post-268020.html