BOOL PlaySound( LPCSTR pszSound, HMODULE hmod, DWORD fdwSound );hmod=SND_LOOP The sound plays repeatedly until PlaySound is called again with the pszSound parameter set to NULL. You must also specify the SND_ASYNC flag to indicate an asynchronous sound event.
用MediaPlayer控件吧:procedure TForm2.FormShow(Sender: TObject); begin MediaPlayer1.Close; //关闭媒本播放器 MediaPlayer1.AutoRewind := True; //自动循环!!!! MediaPlayer1.FileName := '你的文件名'; MediaPlayer1.Open; //打开媒本播放器 MediaPlayer1.Play; //开始播放 end;procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction); begin MediaPlayer1.Close; //关闭媒本播放器 end;
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, MPlayer, StdCtrls;type TForm1 = class(TForm) MediaPlayer1: TMediaPlayer; procedure FormShow(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormShow(Sender: TObject); begin MediaPlayer1.Close; //关闭媒本播放器 MediaPlayer1.AutoRewind := True; //自动循环!!!! MediaPlayer1.FileName :='1.wav'; MediaPlayer1.Open; //打开媒本播放器 MediaPlayer1.Play; //开始播放 end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin MediaPlayer1.Close; //关闭媒本播放器 end; end. 放不了
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, MPlayer, StdCtrls; type TForm1 = class(TForm) MediaPlayer1: TMediaPlayer; procedure FormShow(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormShow(Sender: TObject); begin MediaPlayer1.Close; //关闭媒本播放器 MediaPlayer1.AutoRewind := True; //自动循环!!!! MediaPlayer1.FileName :='1.wav'; MediaPlayer1.Open; //打开媒本播放器 MediaPlayer1.Play; //开始播放 end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin MediaPlayer1.Close; //关闭媒本播放器 end; end. 点击播放才放, 不是自动播放,也没有循环播放
看不懂。 procedure TForm1.Button1Click(Sender: TObject); begin sndPlaySound('C:\WINDOWS\MEDIA\Chimes.wav', SND_ASYNC); end;
MediaPlayer1.FileName :='1.wav'; //这里要给出完整的路径吧
自动播放了,但没有循环播放 unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, MPlayer, StdCtrls;type TForm1 = class(TForm) MediaPlayer1: TMediaPlayer; procedure FormCreate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject); begin MediaPlayer1.Close; //关闭媒本播放器 MediaPlayer1.AutoRewind := True; //自动循环!!!! MediaPlayer1.FileName :='E:\for-Sound2\1.wav'; MediaPlayer1.Open; //打开媒本播放器 MediaPlayer1.Play; //开始播放 end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin MediaPlayer1.Close; //关闭媒本播放器 end;end.
这个可以循环播放 procedure TForm1.FormCreate(Sender: TObject); begin sndPlaySound('C:\WINDOWS\MEDIA\Chimes.wav',SND_ASYNC or SND_LOOP); end;
这个为什么不能循环procedure TForm1.FormCreate(Sender: TObject); begin MediaPlayer1.Close; //关闭媒本播放器 MediaPlayer1.AutoRewind := True; //自动循环!!!! MediaPlayer1.FileName :='E:\for-Sound2\1.wav'; MediaPlayer1.Open; //打开媒本播放器 MediaPlayer1.Play; //开始播放 end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin MediaPlayer1.Close; //关闭媒本播放器 end;
是不行,你加一个Timer吧,时间间隔设短一点 procedure TForm1.FormShow(Sender: TObject); begin Timer1.Interval := 100; MediaPlayer1.Close; //关闭媒本播放器 MediaPlayer1.FileName :='F:\Music\从头再来.mp3'; MediaPlayer1.Open; //打开媒本播放器 MediaPlayer1.Play; //开始播放 end;procedure TForm1.Timer1Timer(Sender: TObject); begin if (MediaPlayer1.Mode = mpStopped) and (MediaPlayer1.Length = MediaPlayer1.Position) then begin MediaPlayer1.Position := 0;//如果放完了再从头放 MediaPlayer1.Play; end; end; 小声说,你的问题真不太好回答的
LPCSTR pszSound,
HMODULE hmod,
DWORD fdwSound
);hmod=SND_LOOP
The sound plays repeatedly until PlaySound is called again with the pszSound parameter set to NULL. You must also specify the SND_ASYNC flag to indicate an asynchronous sound event.
begin
MediaPlayer1.Close; //关闭媒本播放器
MediaPlayer1.AutoRewind := True; //自动循环!!!!
MediaPlayer1.FileName := '你的文件名';
MediaPlayer1.Open; //打开媒本播放器
MediaPlayer1.Play; //开始播放
end;procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
MediaPlayer1.Close; //关闭媒本播放器
end;
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, MPlayer, StdCtrls;type
TForm1 = class(TForm)
MediaPlayer1: TMediaPlayer;
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormShow(Sender: TObject);
begin
MediaPlayer1.Close; //关闭媒本播放器
MediaPlayer1.AutoRewind := True; //自动循环!!!!
MediaPlayer1.FileName :='1.wav';
MediaPlayer1.Open; //打开媒本播放器
MediaPlayer1.Play; //开始播放
end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
MediaPlayer1.Close; //关闭媒本播放器
end;
end.
放不了
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, MPlayer, StdCtrls; type
TForm1 = class(TForm)
MediaPlayer1: TMediaPlayer;
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end; var
Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormShow(Sender: TObject);
begin
MediaPlayer1.Close; //关闭媒本播放器
MediaPlayer1.AutoRewind := True; //自动循环!!!!
MediaPlayer1.FileName :='1.wav';
MediaPlayer1.Open; //打开媒本播放器
MediaPlayer1.Play; //开始播放
end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
MediaPlayer1.Close; //关闭媒本播放器
end;
end.
点击播放才放,
不是自动播放,也没有循环播放
procedure TForm1.Button1Click(Sender: TObject);
begin sndPlaySound('C:\WINDOWS\MEDIA\Chimes.wav', SND_ASYNC);
end;
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, MPlayer, StdCtrls;type
TForm1 = class(TForm)
MediaPlayer1: TMediaPlayer;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
MediaPlayer1.Close; //关闭媒本播放器
MediaPlayer1.AutoRewind := True; //自动循环!!!!
MediaPlayer1.FileName :='E:\for-Sound2\1.wav';
MediaPlayer1.Open; //打开媒本播放器
MediaPlayer1.Play; //开始播放
end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
MediaPlayer1.Close; //关闭媒本播放器
end;end.
这个可以循环播放
procedure TForm1.FormCreate(Sender: TObject);
begin sndPlaySound('C:\WINDOWS\MEDIA\Chimes.wav',SND_ASYNC or SND_LOOP);
end;
这个为什么不能循环procedure TForm1.FormCreate(Sender: TObject);
begin
MediaPlayer1.Close; //关闭媒本播放器
MediaPlayer1.AutoRewind := True; //自动循环!!!!
MediaPlayer1.FileName :='E:\for-Sound2\1.wav';
MediaPlayer1.Open; //打开媒本播放器
MediaPlayer1.Play; //开始播放
end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
MediaPlayer1.Close; //关闭媒本播放器
end;
procedure TForm1.FormShow(Sender: TObject);
begin
Timer1.Interval := 100; MediaPlayer1.Close; //关闭媒本播放器
MediaPlayer1.FileName :='F:\Music\从头再来.mp3';
MediaPlayer1.Open; //打开媒本播放器
MediaPlayer1.Play; //开始播放
end;procedure TForm1.Timer1Timer(Sender: TObject);
begin
if (MediaPlayer1.Mode = mpStopped) and (MediaPlayer1.Length = MediaPlayer1.Position) then
begin
MediaPlayer1.Position := 0;//如果放完了再从头放
MediaPlayer1.Play;
end;
end;
小声说,你的问题真不太好回答的