Ich möchte in einem Programm einzelne mp3-Files abspielen. Dies soll in einer extra Form passieren. Die Form soll wieder geschlossen werden, wenn ein Button "Stop" gedrückt wurde oder die Datei vollständig abgespielt wurde ... und genau dort habe ich ein Problem. Er tut es einfach nicht ... und ich hab keine Ahnung weshalb. Vielleicht hat einer eine Idee?
Delphi-Quellcode:
procedure TMediaForm.FormCreate(Sender: TObject);
begin
MPlayer.Notify:= True;
MPlayer.OnNotify:= NotifyProc;
end;
procedure TMediaForm.FormShow(Sender: TObject);
begin
MPlayer.FileName:= 'd:\applause.wav';
MPlayer.Open;
MPlayer.Play;
end;
procedure TMediaForm.NotifyProc(Sender: TObject);
begin
with Sender as TMediaPlayer do
begin
case Mode of
mpStopped: begin
MediaForm.Hide;
MPlayer.Close;
end;
end;
Notify := True;
end;
end;
procedure TMediaForm.BtnStopClick(Sender: TObject);
begin
MPlayer.Stop;
MPlayer.Close;
Close;
end;
Ursprünglich wollte ich den TMediaPlayer umgehen und direkt mit MCISendString(PChar('play ' + s + ' notify'), nil, 0,
Handle); und MCISendString(PChar('stop ' + s), nil, 0, 0); die Sounds abspielen, aber ich bin mit dem Hnadle nicht zurechtgeommen. Ich denke aber, das das eigentliche Problem bei beiden Varianten das gleiche sein dürfte.