背景音乐控制(100分)

  • 主题发起人 主题发起人 zhoubbss
  • 开始时间 开始时间
Z

zhoubbss

Unregistered / Unconfirmed
GUEST, unregistred user!
小弟是一位DELPHI菜鸟,想在自写的程序中加入一段背景音乐,并且可以通过‘编辑框‘控制音乐循环的次数,我写了一段,但音乐刚开始放后台循环就完成了,请问要怎么写?
procedure TForm1.Button11Click(Sender: TObject);
var
i:integer;
begin

i:=strtoint(edit1.text);
repeat
begin

sndplaysound('welcome.wav',snd_async);
i:=i-1;
edit1.Text:=inttostr(i);
end
until i=0;
end;
 
加一个Timer控件呀,
 
小弟已经初步用
sndplaysound('Filename',snd_async or snd_loop);解决了循环问题,但是怎样才能更好控制次数??
 
再加一个变量
var j:integer;

i:=strtoint(edit1.text);
j:=strtoint(edit2.text);
if j<>0 then

begin

repeat
begin

sndplaysound('welcome.wav',snd_async);
i:=i-1;
edit1.Text:=inttostr(i);
end
until i=0;
j:=j-1;
edit2.text:=inttostr(j);
end;

end;
 
通过循环简单的控制好像无法实现楼主期望的功能,因为调用sndplaysound后程序不会停留在执行sndplaysound处,而是又循环到下一次的sndplaysound处,现在需要知道sndplaysound何时播放完一次,然后在继续下一次播放并且控制播放次数。
 
抱歉借一下帖
为什么我不能提出问题呢 页面显示我没有通过认证 :~(
还有请教各位前辈
我现在在用FOXPRO6.0编写一小程序
请教如何实现调用PC喇叭发声啊
用哪个语句呢?
最后再次向贴主表示崇高地歉意和感谢~~~
 
可以使用Windows Media Player控件呀,比如在

procedure TForm1.FormCreate(Sender: TObject);
begin

mediaplayer1.filename:='*.mp3';
//背景音乐文件名
mediaplayer1.open;
mediaplayer1.play;
end;



procedure TForm1.MediaPlayer1Notify(Sender: TObject);
//如果背景音乐播放停
begin

if mediaplayer1.Position=mediaplayer1.Length then

begin

mediaplayer1.Open;
mediaplayer1.Notify:=true;
mediaplayer1.Play;
end;

end;



这样应该就可以了,我刚做过一个小程序了。
 

Similar threads

后退
顶部