网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 编程文档 > DELPHI > 正文

不用MediaPlayer播放Midi

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务

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

var
  wDeviceID: Word;
  PlayWindow: HWnd;

procedure OpenMCI(PWindow: HWnd; FileName, DeviceType: PChar);
var
  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"); 

  • 下一篇资讯: 用Delphi编写IE扩展
  • 设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师