Buenas, mira esto es lo que he sacado asi rapidamente ya que no puedo entrenerme mas, si no te sirve le vuelvo a echar un vistazo, pero intenta adaptarlo. El siguiente codigo reproduce un sonido, cuando se termina, lo vuelve a reproducir, esta el boton stop que para la reproducción. Cuando hagas el formulario e insertes el tmediaplayer, enlazale el sonido que quieres reproducir desde el principio, aunque te he puesto un commondialog para que puedas elegir el sonido que quieras, bueno echale un vistazo y me dices algo.
Código Delphi
[-]
unit unit1;
interface
uses
Windows, mmsystem, ExtCtrls, Dialogs, StdCtrls, ComCtrls, Controls,
MPlayer, Classes, Forms, SysUtils;
type
TForm1 = class(TForm)
MediaPlayer1: TMediaPlayer;
btnStop: TButton;
Button4: TButton;
btnNext: TButton;
Timer1: TTimer;
btnOpenFile: TButton;
btnPlay: TButton;
OpenDialog1: TOpenDialog;
procedure btnOpenFileClick(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure btnPlayClick(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure btnStopClick(Sender: TObject);
procedure btnNextClick(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure MediaPlayer1Notify(Sender: TObject);
private
public
end;
var
Form1: TForm1;
VarTime, VarRem: String;
SetNewPos: Boolean;
trk: integer;
min:extended;
sec:integer;
const
ModeStr: array[TMPModes] of string = ('Not ready', 'Stopped', 'Playing', 'Recording', 'Seeking', 'Paused', 'Open');
implementation
{$R *.DFM}
procedure TForm1.btnOpenFileClick(Sender: TObject);
begin
if OpenDialog1.Execute then begin
MediaPlayer1.Close;
MediaPlayer1.FileName := OpenDialog1.FileName;
MediaPlayer1.Open;
end;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
MediaPlayer1.Close;
end;
procedure TForm1.btnPlayClick(Sender: TObject);
begin
MediaPlayer1.Open;
MediaPlayer1.Play;
Timer1.Enabled := True;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if MediaPlayer1.Mode = mpStopped then
BEGIN
mediaplayer1.Play;
END;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
SetNewPos := False;
end;
procedure TForm1.btnStopClick(Sender: TObject);
begin
If MediaPlayer1.Mode <> mpStopped then
MediaPlayer1.Stop;
end;
procedure TForm1.btnNextClick(Sender: TObject);
begin
btnPlay.Click;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
btnPlay.Click;
end;
procedure TForm1.MediaPlayer1Notify(Sender: TObject);
Begin
with Sender as TMediaPlayer do
begin
Form1.Caption := ModeStr[Mode];
Notify := True;
end;
if MediaPlayer1.Mode = mpStopped then
BEGIN
mediaplayer1.Play;
END;
end;
end.