我正在使用delphi7。我想在程序中放一首歌,但我不希望它永远不会结束。我尝试使用计时器,但未播放音乐:

procedure TForm1.FormCreate(Sender: TObject);
begin
timer1.enabled:=true;
end;


procedure TForm1.Timer1Timer(Sender: TObject);
var playsound,destination:string;
begin

destination:=paramstr(0);
playsound:=extractfilepath(destination)+'Soundtrack\play.wma';

mediaplayer1.FileName:=playsound;
mediaplayer1.Open;
mediaplayer1.Play;                        //USING TMEDIAPLAYER

end;

这段代码中没有语法错误,但是歌曲没有运行,也许计时器不适用于该作业。我该怎么办?谢谢

最佳答案

请勿为此使用计时器。改用TMediaPlayer.OnNotify事件:

procedure TForm1.FormCreate(Sender: TObject);
begin
  mediaplayer1.FileName := extractfilepath(paramstr(0))+'Soundtrack\play.wma';
  mediaplayer1.Notify := true;
  mediaplayer1.Wait := false;
  mediaplayer1.Open;
end;

procedure TForm1.MediaPlayer1Notify(Sender: TObject);
begin
  case mediaplayer1.Mode of
    mpOpen, mpStopped: begin
      if mediaplayer1.Error = 0 then begin
        mediaplayer1.Notify := true;
        mediaplayer1.Wait := false;
        mediaplayer1.Play;
      end;
    end;
  end;
end;

关于delphi - Delphi7,使用Tmediaplayer重复播放声音,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16388286/

10-09 14:52