Autor Beitrag
RainerT
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 20



BeitragVerfasst: Mi 06.08.03 15:36 
Ich habe in meinem Programm eine MediaPlayer-Komponente und ein Stringrid. In dem Stringgrid steht eine Liste von Dateinamen (MP3's) die soetwas wie eine Playlist darstellen.

Jetzt möchte ich bei jedem Klick auf den "Next"-Button des Mediaplayers die nächste Date aus der Liste abspiele, unabhängig davon, ob das abspielen der vorherigen schon beendet ist oder nicht.

Momentan sieht der Code dazu so aus:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
procedure TfrmMain.mdplyrMP3Click(Sender: TObject; Button: TMPBtnType; var DoDefault: Boolean);
var
   S1, S2 : String;
begin
   case Button of
      btNext : begin
                  mdplyrMP3.Stop;
                  mdplyrMP3.Tag := mdplyrMP3.Tag + 1;
                  mdplyrMP3.FileName := strgrdPlaylist.Cells[2, mdplyrMP3.Tag];
                  mdplyrMP3.Play;
                  S1 := mdplyrMP3.ErrorMessage;
                  s2 := S1;
               end;
   end;
end;


In "Tag" steht die Nummer des aktuellen Eintrags im Stringgrid. Also, dass zuweisen des neuen Dateinamens ist nicht das Problem, das funktioniert. Aber nach dem Aufruf von "Play" passiert nichts, obwohl die ErrorMessage sagt, es hätte geklappt.

Hape auch schon versucht, mit Open und Close vor dem wechsel die Komponente zu schliessen und vor dem Play zu öffnen. Funzt aber auch nicht.

Bin da echt ratlos...
Cyrus
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 56



BeitragVerfasst: Mi 06.08.03 16:04 
hast
mdplyrMP3.open;
und
mdplyrMP3.close;

vergessen

Greetz Cyrus

_________________
Wer glaub er ist, hört auf zu werden!
Delphi Rulez!!!
RainerT Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 20



BeitragVerfasst: Mi 06.08.03 18:31 
Hm. Ich habe den Code mal folgendermaßen geändert:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
procedure TfrmMain.mdplyrMP3Click(Sender: TObject; Button: TMPBtnType; var DoDefault: Boolean);
var
   S1, S2 : String;
begin
   case Button of
      btNext : begin
                  mdplyrMP3.Stop;
                  mdplyrMP3.Close;
                  mdplyrMP3.Tag := mdplyrMP3.Tag + 1;
                  mdplyrMP3.FileName := strgrdPlaylist.Cells[2, mdplyrMP3.Tag];
                  mdplyrMP3.Open;
                  mdplyrMP3.Play;
                  S1 := mdplyrMP3.ErrorMessage;
                  s2 := S1;
               end;
   end;
end;


Das ist in sofern besser, als dass er jetzt "weiß" welche Datei die nächste ist. Nur das "mdplyrMP3.Play" bleibt wirkungslos. Er spielt erst das nächste Lied, wenn ich wieder auf den Play-Button drücke...
RainerT Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 20



BeitragVerfasst: Mi 06.08.03 19:57 
...ich hab's raus: Man muss noch "DoDefault" auf False setzen, damit man den Mediaplayer dazu bewegen kann, die Play-Methode aufzurufen wenn man den Next-Button klickt...

:autsch: