//测试了一下mciSendString函数可以正常播放,没问题。
procedure TForm1.Button1Click(Sender: TObject);
var c:array[0..255] of char;
begin
ZeroMemory(@c,sizeof(c));
mciSendString('Open d:\long.mid alias OpenFile type MPEGVideo',c,sizeof(c),0)
end;
procedure TForm1.Button2Click(Sender: TObject);
var c:array[0..255] of char;
begin
ZeroMemory(@c,sizeof(c));
mciSendString('Play OpenFile',c,sizeof(c),0)
end;
procedure TForm1.Button3Click(Sender: TObject);
var c:array[0..255] of char;
begin
ZeroMemory(@c,sizeof(c));
mciSendString('Stop OpenFile',c,sizeof(c),0)
end;
procedure TForm1.Button4Click(Sender: TObject);
var c:array[0..255] of char;
begin
ZeroMemory(@c,sizeof(c));
mciSendString('Close OpenFile',c,sizeof(c),0)
end;
//你用这个代码试试。
procedure TForm1.Button1Click(Sender: TObject);
var c:array[0..255] of char;
OpenName:TOpenDialog;
s:array[0..255] of char;
begin
OpenName := TOpenDialog.Create(self);
try
OpenName.Files.Add('mid files(*.mid)|*.mid|All files(*.*)|*.*||') ;
if OpenName.Execute then
begin
ZeroMemory(@c,sizeof(c));
ZeroMemory(@s,sizeof(s));
GetShortPathName(pChar(OpenName.FileName),s,sizeof(s));
Edit1.Text := s;
mciSendString(pAnsiChar('Open ' + String(s) + ' alias OpenFile type MPEGVideo'),c,sizeof(c),0)
end;
finally
OpenName.Free;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var c:array[0..255] of char;
begin
ZeroMemory(@c,sizeof(c));
mciSendString('Play OpenFile',c,sizeof(c),0)
end;
procedure TForm1.Button3Click(Sender: TObject);
var c:array[0..255] of char;
begin
ZeroMemory(@c,sizeof(c));
mciSendString('Stop OpenFile',c,sizeof(c),0)
end;
procedure TForm1.Button4Click(Sender: TObject);
var c:array[0..255] of char;
begin
ZeroMemory(@c,sizeof(c));
mciSendString('Close OpenFile',c,sizeof(c),0)
end;
[QUOTE=小虾;568087]//你用这个代码试试。
procedure TForm1.Button1Click(Sender: TObject);
var c:array[0..255] of char;
OpenName:TOpenDialog;
s:array[0..255] of char;
b...[/QUOTE]
procedure TForm1.Button1Click(Sender: TObject);
var lResult, sTmpPath:Array[0..255] of char;
begin
ZeroMemory(@lResult, sizeof(lResult));
ZeroMemory(@sTmpPath, sizeof(sTmpPath));
GetShortPathName('D:\计算机技术\09年\播放MIDI音乐\播放MIDI音乐\long.mid', sTmpPath, sizeof(sTmpPath));
mciSendString(pAnsiChar('Open ' + String(sTmpPath) + ' alias OpenFile type MPEGVideo'),lResult,sizeof(lResult),0)
end;
procedure TForm1.Button2Click(Sender: TObject);
var c:array[0..255] of char;
begin
ZeroMemory(@c,sizeof(c));
mciSendString('Play OpenFile',c,sizeof(c),0)
end;
procedure TForm1.Button3Click(Sender: TObject);
var c:array[0..255] of char;
begin
ZeroMemory(@c,sizeof(c));
mciSendString('Stop OpenFile',c,sizeof(c),0)
end;
procedure TForm1.Button4Click(Sender: TObject);
var c:array[0..255] of char;
begin
ZeroMemory(@c,sizeof(c));
mciSendString('Close OpenFile',c,sizeof(c),0)
end;
[QUOTE=小虾;568120]procedure TForm1.Button1Click(Sender: TObject);
var lResult, sTmpPath:Array[0..255] of char;
begin
ZeroMemory(@lResult, sizeof(lResult));
...[/QUOTE]
这样就放不出了.
我想给做成这种....的:
procedure TForm1.FormCreate(Sender: TObject);
var
lResult, sTmpPath:Array[0..255] of char;
c:array[0..255] of char;
begin
ZeroMemory(@lResult, sizeof(lResult));
ZeroMemory(@sTmpPath, sizeof(sTmpPath));
ZeroMemory(@c,sizeof(c));
GetShortPathName('D:\计算机技术\09年\播放MIDI音乐\播放MIDI音乐\game10.MID', sTmpPath, sizeof(sTmpPath));
mciSendString(pAnsiChar('Open ' + String(sTmpPath) + ' alias OpenFile type MPEGVideo'),lResult,sizeof(lResult),0)
mciSendString('Play OpenFile',c,sizeof(c),0)
end;