[ Vladica Savić @ 05.06.2005. 08:54 ] @
Pozdrav ljudi

Evo mog problema:

Pravim player u delphi-u, ali sam naisao na problem kako da snimam i ucitavam playlist, tj. kako da snimim sve ono sto mi se nalazi u listbox-u, i kada se to snimi kada se program ponovo pokrene da ucita tu snimljenu playlistu ponovo u listbox.
A da, tu je i problem kako da kada se jedna pesma zavrsi da player predje automatski na drugu, odmah iza nje u listbox-u.
A da ne pominjem koliko me nervira slider koji pokazuje poziciju trenutne trake, i to sto sve pocne cudno da radi kada zadam komandu da mogu da premotavam pesmu, naime, kad postavim vrednosti:
SLIDER.MAXVALUE:=MEDIAPLAYER1.TRACKLENGTH[0]
SLIDER.VALUE:=MEDIAPLAYER1.POSITION
to je ok, medjutim problem pravi
MEDIAPLAYER1.STARTPOS:=SLIDER.VALUE;
MEDIAPLAYER1.PLAY;

Molim pomozite, NAJVAZNIJI PROBLEM MI JE PLAYLIST, ali naravno nisu na odmet ni odgovori na ostale probleme.

Vladica Savic
[ Nemanja Avramović @ 05.06.2005. 10:27 ] @
snimanje:
listbox1.items.savetofile('c:\putanja\do\liste.lst');

ucitavanje po pokretanju:
listbox1.items.loadfromfile('c:\putanja\do\liste.lst');

a prelazak na sledecu pesmu... joj ne secam se kako to beshe... kazesh mu if mediaplayer1 (ako koristish taj plejer) .mode <> neshto onda prebacujesh na sledecu pesmu... mislim da je to... igraj se sa property-jem MODE od mediaplayer-a
[ Rage Against the Machine @ 09.06.2005. 08:31 ] @
Mozes i na dogadjaj klizaca OnChange da pitas da li je trenutni polozaj jednak MAX, ako jeste onda da pustis drugu pesmu.
[ Peke @ 13.06.2005. 23:38 ] @
Rage,
to moze da bude varljivo i ima velik postotak greske.
To se resava tako sto uporedis cetiri stvari i ako se sve cetiri TRUE onda pustas sledecu.
1. Stanje player-a (Playing, Paused, .....)
2. Koliko je pusteno do sada
3. koliko jos ima da se pusti
4. trajanje pesme
[ Vladica Savić @ 14.06.2005. 08:35 ] @
Ljudi, ovo sa playlistom nece da funkcionise. Znaci kad snimim ovo kako je JaHvram rekao, nastaje problem pri ucitavanju, tj. listbox1.items ne dobija lokaciju fajlova, odnosno salje mi obavestenje da nije mogao da pronadje dati fajl i da proverim ime i tako bla, bla, bla...

STA DA RADIM???

Ako ovo ne moze da se resi na jednostavan nacin ima li neko link za besplatnu komponentu koja radi ovo.
Citat:
JaHvram: snimanje:
listbox1.items.savetofile('c:\putanja\do\liste.lst');

ucitavanje po pokretanju:
listbox1.items.loadfromfile('c:\putanja\do\liste.lst');

a prelazak na sledecu pesmu... joj ne secam se kako to beshe... kazesh mu if mediaplayer1 (ako koristish taj plejer) .mode <> neshto onda prebacujesh na sledecu pesmu... mislim da je to... igraj se sa property-jem MODE od mediaplayer-a
[ Burgos @ 14.06.2005. 12:38 ] @
Mozda u listBoxu imas samo imena fajlova, a ne i putanju. Ja bih dodao jedan nevidljivi listBox u koga bih ucitavao i snimao listu, pa onda iz njega prebacio u drugi listBox.
[ Srki_82 @ 14.06.2005. 15:40 ] @
Nema potrebe za dva list boxa... svaki string u list boxu ima uz sebe asociran i jedan objekat ili bolje receno pointer koji moze pokazivati na bilo sta. Jednostavno uz ime koje zelis da prikazes u list boxu asociraj i pointer na string koji sadrzi punu putanju. Jedino sto tada ne bi mogao da se oslonis na snimanje preko SaveToFile jer se tu asocirani objekti ne snimaju.
[ Nemanja Avramović @ 14.06.2005. 16:47 ] @
srki, reci mi neshto vishe o tom asociranom objektu u vezi list box-a, daj neki code..
[ Srki_82 @ 14.06.2005. 18:40 ] @
Pa... evo ovako nesto iz glave
Code:
procedure Button1Click(Sender: TObject);
var
  I: Integer;
  pI: ^Integer;
begin
  for I := 1 to 10 do
  begin
    New(pI);
    pI := I * 2;
    ListBox1.Add(IntToStr(I), TObject(pI));
  end;
end;

Ovo bi recimo u ListBox dodalo deset objekata koji imaju nazive '1', '2', '3', ..., '10', a asocirani objekti uz njih su njihova vrednost puta 2. Kasnije objektima mozemo pristupati preko
Code:
ListBox1.Items.Objects[X]

Gde je X redni broj Itema koji nam treba.
Samo ne smemo zaboraviti da pre brisanja Itema moramo obrisati asocirani objekat. U ovom slucaju bi to izgledalo
Code:
Dispose(ListBox1.Items.Objects[X]);

To je otprilike to.
[ Vladica Savić @ 16.06.2005. 09:24 ] @
Ok, ali kako da ja to iskoristim konkretno za moj problem?
Ako nije problem detaljno mi objasnite, PLEASE.