Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Mediaplayer Playlist Wie WMP (https://www.delphipraxis.net/133788-mediaplayer-playlist-wie-wmp.html)

Dönerboy 8. Mai 2009 18:24


Mediaplayer Playlist Wie WMP
 
Hallo, Ich habe mal eine frage die mich jetzt schon lange nervt:
ich habe eine listbox und mediaplayer mit playlist etc.
Nun meine frage:
Wie mache ich es, das der mediapalyer direkt bei ende auf das nächste lied springt, ich habs nur geschaft ihn auf den 2. titel zu bewegen:

Delphi-Quellcode:
If (MediaPlayer1.Position = MediaPlayer1.Length) then
 begin
  MediaPlayer1.Close;
  groupbox1.Caption:=listbox1.Items.Strings[2];
  sleep (50);
  MediaPlayer1.Open;
  Mediaplayer1.FileName:=groupbox1.Caption;
  MediaPlayer1.Play;
 end;
Hoffe einer kann mir helfen!!!

alleinherrscher 8. Mai 2009 18:37

Re: Mediaplayer Playlist Wie WMP
 
Eine Möglichkeit wäre z.B. dass du dir in einer globalen Variable vom Typ integer merkst (z.B. Liednummer:integer), welche Liednummer aktuell gespielt wird. Ist das aktuelle Lied beendet, erhöhst du die Variable (Liednummer:=Liednummer+1) um eins und ließt dann nicht listbox1.items.strings[2] aus, sondern listbox1.items.strings[Liednummer].

Wenn du noch fragen hast, poste am besten mal die ganze Unit!

PS: Natürlich erstmal Willkommen in der DP! :dp:

Blackheart 9. Mai 2009 08:12

Re: Mediaplayer Playlist Wie WMP
 
Schau dir mal das Notify Event des Players an, damit findest du heraus
wann das Lied zu ende ist.

Dönerboy 9. Mai 2009 10:22

Re: Mediaplayer Playlist Wie WMP
 
Hab Noch Ne frage, wie mache ich, dass er aufhört zu spielen oder von neu beginnt, wenn die playlist zuende ist???

Jetzt kommt nämlich immer "List index out of Bounds"

Mithrandir 9. Mai 2009 10:33

Re: Mediaplayer Playlist Wie WMP
 
Zitat:

Zitat von Dönerboy
Jetzt kommt nämlich immer "List index out of Bounds"

Vergleich vor öffnen des Mediaplayers der Zuweisung der Groupbox-Caption, ob "Liednummer = (Listbox1.Items.Count - 1)" wahr ist. Wenn ja, dann hast du bereits das letzte Lied gespielt.

Dönerboy 9. Mai 2009 11:40

Re: Mediaplayer Playlist Wie WMP
 
Jo danke hat geklappt der funktioniert jetzt perfekt! :dance:

Dönerboy 11. Mai 2009 16:34

Re: Mediaplayer Playlist Wie WMP
 
Ok, so gut klappt es auch nicht...

Habe Noch eine Random Funktion eingebaut, aber jetzt schmiert das prog erst richtig ab:
"listenindex...."

Hab alles versucht und weiß leider nicht weiter:
Delphi-Quellcode:
 
if button2.Down=true then //zufalls Button
begin
mediaplayer1.Stop;
mediaplayer1.Close;
i:=spinedit1.Value;
spinedit1.MinValue:=0;
spinedit1.MaxValue:=listbox1.Items.Count; //musste es über spinedit regeln
Spinedit1.Value:=round(random*spinedit1.maxValue); //da ist glaub ich der fehler
mediaplayer1.FileName:=listbox1.Items.Strings[i];
mediaplayer1.open;
mediaplayer1.Play;
end
falls es wichtig ist, Hab Rad Studio 2009 Architect, Also auch Delphi 2009.

lbccaleb 11. Mai 2009 16:39

Re: Mediaplayer Playlist Wie WMP
 
Was hast du denn hier genau vor??

Denn das:

Delphi-Quellcode:
Spinedit1.Value:=round(random*spinedit1.maxValue);
geht so mal gar nicht...

Dönerboy 11. Mai 2009 17:51

Re: Mediaplayer Playlist Wie WMP
 
Also, ich möchte meine playlist in zufälliger reihenfolge abspielen, also erst das oberste lied, dann das letzte etc.

Frage: Warum Geht Das So Nicht???

Mithrandir 11. Mai 2009 17:53

Re: Mediaplayer Playlist Wie WMP
 
Von welchem Typ ist denn SpinEdit1.MaxValue ?

Dönerboy 11. Mai 2009 17:55

Re: Mediaplayer Playlist Wie WMP
 
spinedit1.maxvalue ist definiert aus der menge der lieder in der playlist, also aus der menge der strings in der listbox.

Mithrandir 11. Mai 2009 18:00

Re: Mediaplayer Playlist Wie WMP
 
Zitat:

Zitat von Dönerboy
spinedit1.maxvalue ist definiert aus der menge der lieder in der playlist, also aus der menge der strings in der listbox.

Beantwortet meine Frage

Zitat:

Von welchem Typ ist denn SpinEdit1.MaxValue ?
leider überhaupt nicht.

Integer, String?

//Edit: Moah, sieht aus wie Integer. Aber bist du dir wirklich über den Sinn deines QT im Klaren?

Dönerboy 11. Mai 2009 18:02

Re: Mediaplayer Playlist Wie WMP
 
Achso, DAS MEINST DU, IST INTEGER

Mithrandir 11. Mai 2009 18:07

Re: Mediaplayer Playlist Wie WMP
 
Hast du dir schonmal die Hilfe zu Delphi-Referenz durchsuchenRandom angesehen? Dir ist klar, dass du so einen Multiplikator zwischen 0 und 1 bekommst und den dann rundest, oder? Und dir ist auch klar, dass die Menge der Items ungleich des Index ist, oder? Und dir ist hoffentlich auch klar, dass die Investition in die Architect etwas zu früh war, oder?

lbccaleb 11. Mai 2009 18:15

Re: Mediaplayer Playlist Wie WMP
 
Außerdem brauchst du die SpinEdit Komponente überhaupt gar nicht dafür, du kannst alles mit der StringList machen!

Dönerboy 11. Mai 2009 19:05

Re: Mediaplayer Playlist Wie WMP
 
Das mit der spinedit komponente, also das ich sie nicht brauche, ist mir bewusst:)
Könnte mir den trtzdem einer helfen, Hab von random in dem bereich wenig erfahrung...

mr_emre_d 11. Mai 2009 22:06

Re: Mediaplayer Playlist Wie WMP
 
Zitat:

Zitat von Daniel G
Hast du dir schonmal die Hilfe zu Delphi-Referenz durchsuchenRandom angesehen? Dir ist klar, dass du so einen Multiplikator zwischen 0 und 1 bekommst ...

Na und ?
Wenn seine Liste 10 Elemente hat (MaxVal = 10), und Random als Beispiel 0.1415926535897932384626433832795 zurückliefert, dann wäre das ausgewählte Element
=Round(0.1415926535897932384626433832795*10)
=Round(1.415926535897932384626433832795)
=1

MfG ;)

Dönerboy 12. Mai 2009 14:28

Re: Mediaplayer Playlist Wie WMP
 
So, habs Gelöst, Funktioniert jetzt dann doch:
Delphi-Quellcode:
if button2.Down=true then
begin
  mediaplayer1.Stop;
    mediaplayer1.Close;
  case random (listbox1.Items.Count) of
    0:i:=0;
    1:i:=1;
    2:i:=2;
    3:i:=3;
    4:i:=4;
    5:i:=5;
    6:i:=6;
    7:i:=7;
    8:i:=8;
    9:i:=9;
    10:i:=10;
    11:i:=11;
    12:i:=12;
    13:i:=13;
    14:i:=14;
    15:i:=15;
    16:i:=16;
    17:i:=17;
    18:i:=18;
    19:i:=19;
    20:i:=20;
    21:i:=21;
    22:i:=22;
    23:i:=23;
    24:i:=24;
    25:i:=25;
    26:i:=26;
    27:i:=27;
    28:i:=28;
    29:i:=29;
  end;
  mediaplayer1.FileName:=listbox1.Items.Strings[i];
  mediaplayer1.Open;
  mediaplayer1.Play;
end
Wenn ich noch fragen hab, schreib ich sie wieder hier rein!!!

BUG 12. Mai 2009 14:38

Re: Mediaplayer Playlist Wie WMP
 
Zitat:

Zitat von Dönerboy
Delphi-Quellcode:
case random (listbox1.Items.Count) of
    0:i:=0;
    1:i:=1;
    2:i:=2;
    3:i:=3;
    4:i:=4;
    5:i:=5;
    6:i:=6;
    7:i:=7;
    8:i:=8;
    9:i:=9;
    10:i:=10;
    11:i:=11;
    12:i:=12;
    13:i:=13;
    14:i:=14;
    15:i:=15;
    16:i:=16;
    17:i:=17;
    18:i:=18;
    19:i:=19;
    20:i:=20;
    21:i:=21;
    22:i:=22;
    23:i:=23;
    24:i:=24;
    25:i:=25;
    26:i:=26;
    27:i:=27;
    28:i:=28;
    29:i:=29;
end;

Würde da nicht folgendes ausreichen :zwinker:
Delphi-Quellcode:
i := random(listbox1.Items.Count);
MfG,
Bug

Mikescher 12. Mai 2009 14:42

Re: Mediaplayer Playlist Wie WMP
 
Zitat:

Zitat von Dönerboy
So, habs Gelöst, Funktioniert jetzt dann doch:
Delphi-Quellcode:
if button2.Down=true then
begin
  mediaplayer1.Stop;
  mediaplayer1.FileName:=listbox1.Items.Strings[random (listbox1.Items.Count)];
  mediaplayer1.Play;
end
Wenn ich noch fragen hab, schreib ich sie wieder hier rein!!!

Würde das nicht ausreichen

[EDIT]@BUG: meins ist kürzer 8) [/EDIT]


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:18 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz