Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Delphi - AIUTO TMEDIAPLAYER!!!
Forum - Delphi - AIUTO TMEDIAPLAYER!!!

Avatar
lom89 (Normal User)
Newbie


Messaggi: 15
Iscritto: 11/02/2010

Segnala al moderatore
Postato alle 13:19
Venerdì, 12/02/2010
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!

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 13:59
Venerdì, 12/02/2010
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:
Codice sorgente - presumibilmente Delphi

  1. procedure Form1.Button1Click(Sender: TObject);
  2. Begin
  3. With MediaPlayer1 Do
  4.   Begin
  5.     FileName:= "percorso del file"\tuofile.mp3
  6.     Open;
  7.     Play;
  8.     Close;
  9.   End;
  10. 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:
Codice sorgente - presumibilmente Plain Text

  1. 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

PM Quote
Avatar
lom89 (Normal User)
Newbie


Messaggi: 15
Iscritto: 11/02/2010

Segnala al moderatore
Postato alle 14:15
Venerdì, 12/02/2010
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),''));
end;
end;
end;

:-?:-?:-?

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 15:37
Venerdì, 12/02/2010
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....
Codice sorgente - presumibilmente Delphi

  1. procedure TForm1.SfogliaClick(Sender: TObject);
  2.   var files,filenames: array[1..1000] of string; i:integer;
  3. begin
  4. OpenDialog1.Execute;
  5. For i:=0 To OpenDialog1.Files.Count-1 Do
  6. Begin
  7. files[i]:= OpenDialog1.Files.Strings[i];
  8. filenames[i]:= ExtractFileName(OpenDialog1.Files.Strings[i]);
  9. ListBox1.Items.Add(files[i]);
  10. ListBox2.Items.Add(filenames[i]);
  11. 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ì:
  
Codice sorgente - presumibilmente Delphi

  1. +
  2.    With MediaPlayer1 Do
  3.       Begin
  4.         FileName:= FileNames[i]   // dove i è la posizione dell'elemento appena letto
  5.         Open;
  6.         Play;
  7.       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

PM Quote
Avatar
lom89 (Normal User)
Newbie


Messaggi: 15
Iscritto: 11/02/2010

Segnala al moderatore
Postato alle 17:16
Venerdì, 12/02/2010
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...

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 20:02
Venerdì, 12/02/2010
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


PM Quote
Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Segnala al moderatore
Postato alle 23:12
Venerdì, 12/02/2010
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 il 12/02/2010 alle 23:12
PM Quote
Avatar
lom89 (Normal User)
Newbie


Messaggi: 15
Iscritto: 11/02/2010

Segnala al moderatore
Postato alle 11:42
Sabato, 13/02/2010
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!!!::):)

PM Quote