Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

problem sa music playerom

[es] :: Pascal / Delphi / Kylix :: problem sa music playerom

Strane: 1 2

[ Pregleda: 4315 | Odgovora: 27 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Mythbuster
Darko Stojkovic
student
Beograd

Član broj: 204745
Poruke: 35
79.101.71.*



Profil

icon Re: problem sa music playerom24.04.2009. u 00:32 - pre 183 meseci
ae savkicu, ubaci malo koda, moze?..
samo kod za taj deo...
Mythbuster
 
Odgovor na temu

bojan21
Bojan Zukic
Beograd

Član broj: 101113
Poruke: 251
92.244.134.*



+6 Profil

icon Re: problem sa music playerom24.04.2009. u 01:45 - pre 183 meseci
Evo dok g. Savkic ne ubaci kod, pogledaj ovaj link (post koji je napisao DragonSlayer):

http://www.experts-exchange.co...i/Q_20375967.html?qid=20375967

Trebalo bi da radi, deluje sve ok . Mada, obrati paznju na komentar .

edit: kad odavde kliknes na link, ne mozes da pristupis postu (dok iz googla mozes), tako da evo koda koji je napisao:

Code:

DragonSlayer:
Here you go

1. Button1 has Caption that says "Play"
2. Checkbox1 has Text that says "Sync with Trackbar"
3. MediaPlayer1 has Visible set to False, and in this simple demo I've loaded in a file as well (was using an RMI file in the Windows' Media folder)
4. Timer1 has Interval set to 1000 and Enabled set to False


procedure TForm1.Button1Click(Sender: TObject);
begin
  MediaPlayer1.TimeFormat := tfMilliseconds;
  TrackBar1.Frequency := 5000;
  TrackBar1.Max := MediaPlayer1.Length;
  MediaPlayer1.Play;
end;

procedure TForm1.TrackBar1Change(Sender: TObject);
var
  LastChecked: Boolean;
begin
  LastChecked := CheckBox1.Checked;
  if CheckBox1.Checked then
    CheckBox1.Checked := False;
  MediaPlayer1.Stop;
  MediaPlayer1.Position := TrackBar1.Position;
  if CheckBox1.Checked <> LastChecked then
    CheckBox1.Checked := LastChecked;
  MediaPlayer1.Play;
end;

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
  Timer1.Enabled := CheckBox1.Checked;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  TrackBar1.OnChange := nil; // this is to prevent the checkbox from becoming unchecked
  TrackBar1.Position := MediaPlayer1.Position;
  TrackBar1.OnChange := TrackBar1Change;
end;



Do not however, that using the original trackbar is not such a good solution, because when you are dragging the thumb slider (before releasing), the OnChange event still gets fired and so the MediaPlayer will try changing Position all the time (slooooow).

Perhaps you would also like to find some free trackbar components on the Net that you can use, which will only respond to OnChange when you release the mouse.

Do have fun with the code :)
 
Odgovor na temu

tkaranovic
Tomislav Karanović
Beograd

Član broj: 220507
Poruke: 307



+18 Profil

icon Re: problem sa music playerom25.04.2009. u 05:36 - pre 183 meseci
Hteo sam već neko vreme da napravim plejer i nisam se uspeo nakaniti a pošto je
bojan21 poslao zgodan kod za plejer uzeo sam da ga prilagodim svojim potrebama.
Zbog toga se zahvaljujem. Probaću (nisam do sada to radio) da stavim uz poruku
taj kod koji sam prilagodio svojim potrebama.


Inače za one koji neće pogledati kod koji šaljem kratko ovde:

Može da se stavi Timer (ubr, pre ovde nego što bi trebao da zameni Notify metod):

procedure TForm1.TrackBar1Change(Sender: TObject);
begin
TimerPromene.Enabled := false;
TimerPromene.Enabled := true;
end;

> Do not however, that using the original trackbar is not such a good solution,
> because when you are dragging the thumb slider (before releasing),
> the OnChange event still gets fired and so the MediaPlayer will try
> changing Position all the time (slooooow).

Tako neće menjati Position sve vreme trajanja promena nego samo onog trenutka
kada nastupi "pauza" (odnosno istekne tajmerov interval) u događanju promena.
Ako se u TimerPromene stavi sekunda (stavio sam inaèe pola sekunde) onda će sve
promene kraće od te sekunde biti preskočene, jer æe se tajmerov interval
"resetovati" pre nego što uspe da istekne. Tek kada nastupi puza promena,
odnosno istekne interval od Timer sekunde, će se dogoditi i (kod u tajmeru)
promena. Ovo može da se vidi ili proba u kodu koji šaljem.

Prikačeni fajlovi
 
Odgovor na temu

Mythbuster
Darko Stojkovic
student
Beograd

Član broj: 204745
Poruke: 35
93.86.148.*



Profil

icon Re: problem sa music playerom25.04.2009. u 14:39 - pre 183 meseci
ma ProgressBar je odradio svoje...
Iskoristio sam njega zato sto mi deluje kao najefikasnije i najlakse izvodivo resenje... Hvala Bojane
A mlo me nervira sto moj program nema ono da prikazuje koliko taje pesma i dokle je stiglo, pa da ne znate mozda kako bih i to mogao da resim?
Mythbuster
 
Odgovor na temu

bojan21
Bojan Zukic
Beograd

Član broj: 101113
Poruke: 251
92.244.134.*



+6 Profil

icon Re: problem sa music playerom25.04.2009. u 18:03 - pre 183 meseci
Stavi negde na formu dva labela - jedan za ukupno trajanje drugi za trenutnu poziciju.

Ovo je kod za ukupno trajanje, stavi ga u metodu Button6Click (dugme Next), recimo na kraj (nikako pre otvranja nove pesme):
Code:

Label1.Caption:= IntToStr(MediaPlayer1.Length div 60000) + ':' + FormatFloat('0#', Round(MediaPlayer1.Length / 1000) mod 60);


Slicno i za trenutnu poziciju, ali ovo stavi u Timer1Timer metodu, moze na pocetak:
Code:

Label2.Caption:= IntToStr(MediaPlayer1.Position div 60000) + ':' + FormatFloat('0#', Round(MediaPlayer1.Position / 1000) mod 60);


Nisam isprobao kod, mada bi trebalo da radi. Koliko se secam Lengh i Position su dati u milisekundama pa moras da delis sa 1000
 
Odgovor na temu

Mythbuster
Darko Stojkovic
student
Beograd

Član broj: 204745
Poruke: 35
93.86.165.*



Profil

icon Re: problem sa music playerom26.04.2009. u 11:47 - pre 183 meseci
ok, to je uspesno reseno...
a da li postoji neka mogucnost da se pesme iz playliste menjaju na klik, ili ne?
Mythbuster
 
Odgovor na temu

bojan21
Bojan Zukic
Beograd

Član broj: 101113
Poruke: 251
92.244.134.*



+6 Profil

icon Re: problem sa music playerom27.04.2009. u 13:17 - pre 183 meseci
Naravno da postoji mogucnost, ali nemam vremena sad da otvaram Delphi. Probaj sam da dodjes do resenja, ako zapnes negde, probacu da ti odgovorim cim budem mogao.
 
Odgovor na temu

tkaranovic
Tomislav Karanović
Beograd

Član broj: 220507
Poruke: 307



+18 Profil

icon Re: problem sa music playerom30.04.2009. u 04:35 - pre 183 meseci
Citat:
Mythbuster:
ok, to je uspesno reseno... :D
a da li postoji neka mogucnost da se pesme iz playliste menjaju na klik, ili ne?



U kodu koji sam slao tkaranovic se startuje na dvoklik jer bi pre trebalo da startuje dvoklikom nego klikom. Nije isti kod, u odnosu na ono što je izvorno poslao bojan(21), ali se može videti kako bi to trebalo da radi. Tako je jednostavno napraviti (dvo)klik da prosto ne verujem da nemaš ideju kako bi to moglo da se uradi. Inače ima i startovanje sa tasterom enter.



Šaljem nastavak (završni) pisanja koda, koji sam prethodno slao tkaranovic, uz ovu poruku ali ne kao odgovor na gore citiranu poruku nego za sve one koji čitaju ili će čitati i(li) pretraživati (kasnije) ovu temu i koje zanima pitanja koja su ovde pokrenuta a i napisao sam da ću i sam koristiti.

Dakle uz poruku je kod u kojem se koristi TrackBar ali ne više sa onChange i tajmer promenama nego se pozicija pesme sada menja klikom miša ili navigacionim tasterima (kada je fokusiran TrackBar). Dodatak je ispis mp3 taga (id3 i/ili mp3). Pronašao sam na Internetu zgodan unit ID3Engine koji je pisao William Anthony (ko god on bio) i koji sam ipravio i doradio na par mesta. Mesta gde sam dopisivao i(li) prilagođavao označio sam sa: "//tkaranovic". Inače ID3Engine sam iskoristio samo za čitanje informacija a daje mogućnost i da se pišu.
Prikačeni fajlovi
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: problem sa music playerom

Strane: 1 2

[ Pregleda: 4315 | Odgovora: 27 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.