Oppure

Loading
12/02/10 12:19
lom89
Ciao a tutti...è da poco che sono entrato nel mondo della programmazione...circa 6mesi...
ho studiato un bel pò di cose d php,c++ ed ora ho iniziato con il delphi...
Vorrei creare un lettore mp3,ma nn so come si usa il componente Tmediaplayer, ho provato a consultarne alcuni fatti da maury postati nelle sezione 'sorgenti' ma sono troppo complicati...nn c capisco nnte!!!qualcuno può darmi una mano???
un grazie anticipato!
aaa
12/02/10 12:59
Una volta inserito il componente TMediaPlayer hai delle sue proprietà che puoi utilizzare. Innanzitutto prima di metterlo in play devi "attivarlo". Mettendo che tu abbia il bottone Button1 con cui attivarlo (lo puoi anche attivare direttamente dalla creazione della form) il codice sarebbe:
procedure Form1.Button1Click(Sender: TObject);
Begin
With MediaPlayer1 Do
  Begin
    FileName:= "percorso del file"\tuofile.mp3 
    Open;
    Play;
    Close;
  End;
End;


In questa procedura tu non fai altro che assegnare al MediaPlayer1 innanzitutto un file da eseguire (FileName:=) ma devo farti una considerazione: mentre per altre situazioni tu puoi semplicemente inserire il nome del file da eseguire perchè sottinteso che si trova nella cartella dell'eseguibile in uso, per il MediaPlayer è diverso, gli devi dare l'intero percorso... Quindi se vuoi eseguire dei file all'interno della cartella del programma devi mettere:
MediaPlayer1.FileName:= ExtractFilePath(ParamStr(0)) + '\tuofile.mp3';(


Se invece vuoi che l'utente scelga il file da eseguire allora lì entra in gioco il componente OpenDialog.

Ho inserito solo la funzione per far play su un file, le altre basta leggerle da Delphi stesso. Comunque puoi sempre chiedere ;)
Ciaociao
12/02/10 13:15
lom89
grazie...opendialog l'ho già messo,ho fatto in modo che si carica una playlist in una listbox1,dopo elimino il percorso del file e copio soltanto il nome in listbox2, ora il mio problema è come faccio a eseguire il file .mp3 dalla listbox2 con il tmediaplayer????
ecco il codice:

procedure TForm1.Label1Click(Sender: TObject);
var
i:integer;
begin
if opendialog1.Execute then
begin
listbox2.Items.AddStrings(opendialog1.Files);
for i:=0 to opendialog1.Files.Count-1 do
begin
listbox1.Items.Add(changefileext(extractfilename(opendialog1.Files[i]),''));
end;
end;
end;

:-?:-?:-?
aaa
12/02/10 14:37
Sinceramente non ho molto ben capito il tuo codice.
Intanto da dov'è che lo fai partire? Cos'è quel Label1?
Intanto posto il codice che avrei messo io casomai poi discutiamo sul tuo o se ti va bene questo....
procedure TForm1.SfogliaClick(Sender: TObject);
  var files,filenames: array[1..1000] of string; i:integer;
begin
OpenDialog1.Execute;
For i:=0 To OpenDialog1.Files.Count-1 Do
Begin
files[i]:= OpenDialog1.Files.Strings[i];
filenames[i]:= ExtractFileName(OpenDialog1.Files.Strings[i]);
ListBox1.Items.Add(files[i]);
ListBox2.Items.Add(filenames[i]);
End;


Spiego:
- SfogliaClick è la procedura di un normalissimo bottone o quello che vuoi che deve aprire il OpenDialog1 (da adesso in poi lo abbrevio con OD1);
- Files è un'array che incassetta tutti i PERCORSI dei file caricati dall' OD1 e li butta nella ListBox1;
- FIleNames è un'array che incassetta tutti i NOMI corrispondenti ai file caricati dall'OD1 e li butta nella ListBox2;
- Puoi rendere invisibile la listBox1 in modo che l'utente veda SOLO i nomi dei file ma sappi che qualsiasi codice lo devi riferire ad entrambi in modo che:
- Tu hai due ListBox in cui i percorsi e i nomi dei file corrispondono. Ovvero: l'utente sceglie ad esempio "Alba Chiara.mp3" che è il terzo elemento della ListBox1. A te non rimane altro che leggere l'Index di questo elemento (che in questo caso è 2) e far in modo che il programma apra MediaPlayer associando così:
+
   With MediaPlayer1 Do
      Begin
        FileName:= FileNames[i]   // dove i è la posizione dell'elemento appena letto
        Open;
        Play;
      End;
   



ATTENZIONE: Questo ciclo for è impostato perchè il OD1 debba caricare più file alla volta quindi devi andare sulle proprietà dell' OD1 nell'Object Inspector e sotto la voce Options mettere la proprietà ofAllowMultiSelect su True

Spero di essere stato chiaro altrimenti chiedi pure :k:

Ciaociao e buon lavoro
12/02/10 16:16
lom89
il tuo codice è chiarissimo,cmq sia il mio che il tuo dicono la stessa cosa in modo diverso, anche io richiamo il percorso nella listbox1 e poi nella listbox2 solo il nome in modo ke l utente veda solo il nome del file! la label l ho messa al posto del bottone, ho scritto 'apri' in una label...all'occhio risulta più gradevole del classico bottone!!!Cmq grazie mille x il tuo aiuto...
aaa
12/02/10 19:02
Figurati! è un piacere :k:
Comunque sì mi sono accorto guardandolo bene che in effetti i due codici sono più o meno uguali... Quindi ti chiedo scusa per la ripetitività.

Se non ti è di inpaccio tienimi aggiornato sul tuo programmino perchè in effetti avevo anche io fatto un lettore in VisualBasic .Net e probabilmente lo inizierò in Delphi
Buondivertimento!
ciaociao

12/02/10 22:12
lorenzo
mi intrometto solo per darti un consiglio...
se programmi da così poco tempo allora non capisco come tu abbia fatto a studiarti php, c++ e delphi.
credimi, cerca di concentrarti solo su una cosa altrimenti avrai speso tanto tempo senza però ottenere niente di niente.
Ultima modifica effettuata da lorenzo 12/02/10 22:12
aaa
13/02/10 10:42
lom89
programmo da molto più tempo,da 4 anni,soltanto ke lo facevo a livello scolastico,limitandomi a creare programmi per la gestione di una azienda...
in più ho fatto due corsi di operatore web(HTML) e sono arrivato al 2°livello, da li sempre x curiosità sono passato al php...e ora al delphi!!!
ora ho deciso di ampliare le mie conoscenze!!!::):)
aaa