想播放某个声音文件若干次,怎么操作? (26分)

  • 主题发起人 主题发起人 lishu2002
  • 开始时间 开始时间
L

lishu2002

Unregistered / Unconfirmed
GUEST, unregistred user!
我想在程序中控制播放的次数怎么控制?用什么函数?或者用什么控件?Mediaplayer控件能否实现?还有如何探测到一个声音文件被播放完毕??
请高手指教!!
 
可用MediaPlayer1.Position来判断是否播放完毕
 
有谁知道怎么控制循环播放次数??
 
http://vcl.vclxx.org/DELPHI/D32FREE/PDJ_SOUND.ZIP
这个控件可重复播放.wav文件
 
简单的循环语句就可以实现啊,不过是把播放做在循环语句中啊!如果只是WAV文件,使用PLAYSOUND(),不过别忘了USES MMSYSTEM;
 
我知道一般的循环语句可以实现,我想问的是有没有可以播放声音文件的同时控制播放次数的函数或者其他的控制方式!!
 
To: 不知道_0909
怎么用Mediaplayer.Position来判断声音文件是否播放完了?我在播放声音的时候
Mediaplayer控件是非可视的!
 
if Mediaplayer.Position>=MediaPlayer1.Length then
//一播放完
MediaPlayer1.play
 
你可以加上个timer,声明个变量便可以控制播放次数
 
谁有不用timer控件可以控制循环播放的方法?
 
procedure TForm1.Button1Click(Sender: TObject);
var
i,i1: integer;//i1,播放次数
begin

i:=0;
i1 := 2;

while i< i1do

begin

MediaPlayer1.Play;
if MediaPlayer1.Position >= MediaPlayer1.Length then

begin

MediaPlayer1.Play;
i := i+ 1;
end;

end;

end;
 
楼上的兄弟,你写的那个程序根本就不行,程序一运行就死机,我在写的时候老是播放一次,不过你这个我运新了一下,一次也播放不了!
 
那段代码我是经过测试的,在我的机子上运行正常,你找找自己的原因吧
 
判断放完可以用这个
if(mediaplayer1.NotifyValue = nvSuccessful and mediaplayer1.Mode = mpStopped)
 
为什么还是无法连续播放么?
 
只要用mediaplayer就可以.把它的notify属性设为True,然后在onnotify事件中写上,
if mediaplayer1.mode=mpstopped then

rewind;

再设一个变量,累加记次数就可以播放你要的次数了.
 
我试过,用mode属性判断是否已停止播放。是的话就再播放一次就可以了。判断时再加上你要不得热重播次数就可以了。
if i<=10 and media1.mode=mpstopped then

begin

.........
.......
i=i+1
end;

 
for i:=0 to 5do

begin

if(mediaplayer1.NotifyValue = nvSuccessful and mediaplayer1.Mode = mpStopped)
then
mediaplayer1.open;
end;

可以了满足你的要求,
 
多人接受答案了。
 
后退
顶部