• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

不用MediaPlayer播放Midi_Delphi

Delphi 搞代码 3年前 (2018-08-09) 326次浏览 已收录 0个评论

你厌倦MediaPlayer吗?用了它你的EXE会大7K。
uses
  Windows, Classes, Forms, MMSystem, WinProcs;

var
  wDeviceID: Word;
  PlayWindow: HWnd;

procedure OpenMCI(PWindow: HWnd; FileName, DeviceType: PChar);
var

http://www.gaodaima.com/?p=65908不用MediaPlayer播放Midi_Delphi

  OpenParms: Tmci_Open_Parms;
  Style: LongInt;
begin
  PlayWindow := PWindow;
  OpenParms.lpstrDeviceType := DeviceType;
  OpenParms.lpstrElementName := FileName;
  Style := Mci_Open_Type or Mci_Open_Element;
  mciSendCommand(0, MCI_OPEN, Style, LongInt(@OpenParms));
  wDeviceID := OpenParms.wDeviceID;
end;

procedure PlayMCI;
var
  Info: TMci_Play_Parms;
begin
  Info.dwCallback := PlayWindow;
  mciSendCommand(wDeviceID, MCI_PLAY, Mci_Notify, LongInt(@Info));
end;

procedure MidiPlay(MidiName: PChar);
const
  DevType: PChar=’Sequencer’;
begin
  if MidiName = ‘StopMidi’ then
    CloseMCI
  else
  begin
    OpenMci(Application.Handle, MidiName, DevType);
    PlayMci;
  end;
end;

procedure CloseMCI;
begin
  mciSendCommand(wDeviceID, MCI_CLOSE, 0, 0);
  wDeviceID := 0;
end;

end.

使用方法:
MidiPlay("Feeling.mid")); // 注意,这里必须是 PChar 或 char*
MidiPlay("StopMidi"); 

欢迎大家阅读《不用MediaPlayer播放Midi_Delphi,跪求各位点评,若觉得好的话请收藏本文,by 搞代码


喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址