trrunde Skrevet 6. august 2003 Del Skrevet 6. august 2003 Hei jeg har laget en mp3 spiller som jeg vil ha en playlist på, jeg har fått til sånn at du må trykke neste og forrige men ikke sånn at neste sang kommer automatisk når en sang er ferdig, vet noen hvordan jeg skal få til det?? dette er koden jeg har brukt unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, MPlayer; type TForm1 = class(TForm) OpenDialog1: TOpenDialog; MediaPlayer1: TMediaPlayer; ListBox1: TListBox; Open: TButton; Play: TButton; Forrige: TButton; Neste: TButton; Stopp: TButton; Label1: TLabel; Button1: TButton; SaveDialog1: TSaveDialog; Button2: TButton; OpenDialog2: TOpenDialog; Button3: TButton; procedure OpenClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure PlayClick(Sender: TObject); procedure StoppClick(Sender: TObject); procedure NesteClick(Sender: TObject); procedure ForrigeClick(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure ListBox1Click(Sender: TObject); procedure Button3Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; Sang:Integer; Antall:Integer; implementation Uses regftyp; {$R *.dfm} procedure TForm1.OpenClick(Sender: TObject); begin if opendialog1.Execute then begin Listbox1.Items.Add(opendialog1.FileName); play.Enabled:=true; Antall:=Listbox1.Count; button1.Enabled:=True; if antall>1 then Neste.Enabled:=True; end; end; procedure TForm1.FormCreate(Sender: TObject); var f:TextFile; Mappe : string; begin Sang:=0; GetDir(0,Mappe); { 0 = Current drive } AssignFile(f, ExtractFilePath(Application.ExeName)+'test.abc'); Rewrite(f); writeln(f, Mappe+'test.mp3'); closeFile(f); RegisterFileType('.abc', 'Mp3 spilleliste', 'Trrunde', '', Application.ExeName); end; procedure TForm1.PlayClick(Sender: TObject); begin Mediaplayer1.FileName:=Listbox1.Items[sang]; Mediaplayer1.Open; Mediaplayer1.Play; Stopp.Enabled:=True; Label1.Visible:=True; Label1.Caption:=Mediaplayer1.FileName; end; procedure TForm1.StoppClick(Sender: TObject); begin Mediaplayer1.Stop; Stopp.Enabled:=False; end; procedure TForm1.NesteClick(Sender: TObject); begin Sang:=Sang+1; Mediaplayer1.FileName:=Listbox1.Items[sang]; Mediaplayer1.Open; Mediaplayer1.Play; Forrige.Enabled:=True; Label1.Caption:=Mediaplayer1.FileName; Forrige.Enabled:=True; if Sang=Antall-1 then Neste.Enabled:=False; end; procedure TForm1.ForrigeClick(Sender: TObject); begin Sang:=Sang-1; Mediaplayer1.FileName:=Listbox1.Items[sang]; Mediaplayer1.Open; Mediaplayer1.Play; Neste.Enabled:=True; Label1.Caption:=Mediaplayer1.FileName; if sang=0 then Forrige.Enabled:=False; end; procedure TForm1.Button1Click(Sender: TObject); begin If savedialog1.Execute then Listbox1.Items.SaveToFile(Savedialog1.FileName+'.abc'); end; procedure TForm1.Button2Click(Sender: TObject); begin if opendialog2.Execute then begin listbox1.Items.LoadFromFile(opendialog2.FileName); play.Enabled:=true; Antall:=Listbox1.Count; button1.Enabled:=True; if antall>1 then Neste.Enabled:=True; end; end; procedure TForm1.ListBox1Click(Sender: TObject); begin Button3.Enabled:=True; end; procedure TForm1.Button3Click(Sender: TObject); begin Listbox1.DeleteSelected; Button3.Enabled:=False; end; end. Lenke til kommentar
Format71 Skrevet 6. august 2003 Del Skrevet 6. august 2003 Lek litt med OnNotify()-eventet og Mode-egenskapen. Det virker ikke som det er helt 100% rett frem, men jeg tror det kun er det du har å gå etter... Egentlig burde du finne deg en eller annen 3.parts komponent for avspilling av mp3 i stede for TMediaPlayer. F.eks. Bass fra (http://www.un4seen.com/) eller noe lignende.. Ta en titt på torrys under effects & multimedia -> audio så finner du både en TMediaPlayer med playlist og flere andre eksempler på mp3-spillende komponenter. -Vegar Lenke til kommentar
trrunde Skrevet 12. august 2003 Forfatter Del Skrevet 12. august 2003 Nå har jeg fått til sånn halvveis, jeg har lagt til en progressbar og en timer på timer skrev jeg progressbar1.max:=Mediaplayer1.Tracklenght[sang]; progressbar1.position:=Mediaplayer1.position; if progressbar1.position=Progressbar1.max then begin progressbar1.position:=0; neste.click; men når jeg ikke har flere sanger i listboxen prøver timer'en likevel å ta neste sang hvordan kan jeg endre på det? Lenke til kommentar
Format71 Skrevet 13. august 2003 Del Skrevet 13. august 2003 I nesteclick( ) inkrementerer du sang med 1 for deretter å bruke sang som index i spillelista. Da må du først sjekke om det virkelig er så mange sanger der. Noe slik f.eks: inc(sang); if sang < playlist.items.count then begin //Hopp til neste sang end else begin //Har ikke flere sanger. Stopp derfor timer og annet som måtte være nødvendig... end; Det du må passe på blir riktig det er at lista er 0-indexert (første element = 0), mens count gir faktisk antall elementer. Dvs. at hvis du har 2 elementer i lista vil count være 2, men item[2] finnes ikke siden item[0] er første og item[1] er andre osv osv... -Vegar Lenke til kommentar
trrunde Skrevet 13. august 2003 Forfatter Del Skrevet 13. august 2003 Takker for svar format71 tror dette funker skal prøve det :smile: Lenke til kommentar
trrunde Skrevet 14. august 2003 Forfatter Del Skrevet 14. august 2003 Heisann nå har jeg endelig fått det til så nå lurte jeg på om noen kanskje kunne sett litt på programmet og sagt fra om hva jeg burde endre på å sånn. http://www.home.no/trondar/Mp3%20player.exe på forhånd takk Lenke til kommentar
Kafarsken Skrevet 14. august 2003 Del Skrevet 14. august 2003 Synes lyden virker noe rar. Ellers er jeg imponert. Ikke alle som har klart det der Ellers er jo en seeking bar kjekt å ha! Og drag and drop Lenke til kommentar
trrunde Skrevet 14. august 2003 Forfatter Del Skrevet 14. august 2003 Skal se hva jeg kan få til, tror du det går å bruke en trackbar til den seekingen?? Lenke til kommentar
Velmont Skrevet 14. august 2003 Del Skrevet 14. august 2003 Kan du kompilere en binary for Linux med Kylix for meg? Kan hende den fungerer med wine da, men jeg tror ikke jeg prøver. Lenke til kommentar
trrunde Skrevet 15. august 2003 Forfatter Del Skrevet 15. august 2003 Har ikke kylix eller linux og er ikke helt sikker på hvordan jeg skal kompilere en binary :oops: Lenke til kommentar
Myklebust89 Skrevet 1. september 2003 Del Skrevet 1. september 2003 Jeg driver også på med en MP3 spiller.... Og det hadde vært kult å hatt en progressbar som viser fremdriften i sangen.... Hvordan kan dette gjøres? Lenke til kommentar
nixtus Skrevet 3. september 2003 Del Skrevet 3. september 2003 gud å fett jeg har også en mp3spiller som er "litt" mindre da.. jeg har klart å få inn ekte play,stop,ff,rw osv. knapper på den.. men jeg ga opp det prosjektet, hadde egentlig tenkt å lage playlist og slikt også.. vi får se, kanskje jeg mekker det en dag ?? brukte delphi til det.. er ganske greit prog egentlig. skal se om jeg finner screenshot av den spilleren så skal jeg uppe det eller.no Lenke til kommentar
trrunde Skrevet 12. september 2003 Forfatter Del Skrevet 12. september 2003 For å bruke progressbar eller gauge setter du inn en timer som blir enabla når du trykker på play knappen. på ontimer eventsen til timeren skriver du progressbar1.max:=Mediaplayer1.tracklenght[0]; progressbar1.position:=mediaplayer1.position; Lenke til kommentar
Myklebust89 Skrevet 13. september 2003 Del Skrevet 13. september 2003 Det funka dårlig... la det i OnTimer til timer1, men jeg fikk en feilmelding for ******! Lenke til kommentar
trrunde Skrevet 13. september 2003 Forfatter Del Skrevet 13. september 2003 Prøv progressbar1.max:=Mediaplayer1.tracklenght[mediaplayer1.filename]; progressbar1.position:=mediaplayer1.position; Er ikke helt sikker på om det er position eller progress det får du bare prøve selv Lenke til kommentar
Myklebust89 Skrevet 14. september 2003 Del Skrevet 14. september 2003 hva slags identifier skal tracklength være da? denne feilmeldingen fikk jeg : [Error] Unit1.pas(176): Undeclared identifier: 'tracklenght' Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå