回 帖 发 新 帖 刷新版面

主题:[原创]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

回复列表 (共5个回复)

沙发

把贴子再往前翻翻就找得到的:
http://www.programfan.com/club/post-208235.html

板凳

打不开(发我邮箱可以吗?E-mail:sxtyker@hotmail.com)其次,你自己也在回贴里说了程序在播放音乐的时候不能做其他的事情,那也就是说,一旦播放音乐,这个游戏就得停止运做,等音乐完成了再放?

3 楼

http://wyoi.ys168.com

里面有下载的

这个单元确实在播放音乐的时候不能做其他的事情,一旦播放音乐,这个游戏就得停止运做.
因为TP中分配的内存太少了,开了这个单元,也就用不了graph单元。至于斑竹maxumi的那个图象单元我还没有试过

4 楼

话说你不知道用Delphi写个动态连接库来?在Delphi的动态连接库里调用WinAPI函数,然后用TP调用这个动态连接库?

5 楼

TP7出现的时候还没Delphi,TP中应该不支持动态连接库

我来回复

您尚未登录,请登录后再回复。点此登录或注册