Einzelnen Beitrag anzeigen

papabaer

Registriert seit: 24. Okt 2006
11 Beiträge
 
#1

mp3 starten, stoppen und Ende erkennen

  Alt 29. Okt 2006, 21:57
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.
  Mit Zitat antworten Zitat