PDA

View Full Version : [C++] eseguire mp3


Sigm@66
30-11-2005, 18:04
ciao a tutti...
qlcn sa dirmi come faccio a mandare in esecuzione un file mp3..magari inviandolo ad un lettore quale winamp, winmediaplayer...
ho sentito parlare di MCI per la gestione dei file multimediali, ma non ci ho capito molto. :(

grazie

Caffo
30-11-2005, 18:17
Ritirato, non avevo capito bene la domanda

cionci
30-11-2005, 19:31
ciao a tutti...
qlcn sa dirmi come faccio a mandare in esecuzione un file mp3..magari inviandolo ad un lettore quale winamp, winmediaplayer...
ho sentito parlare di MCI per la gestione dei file multimediali, ma non ci ho capito molto. :(
Puoi usare le ActiveX ?

kk3z
01-12-2005, 10:27
Questo esegue il file mp3 con il player default:
ShellExecute(NULL, NULL, "C:\\unacartella\\unfilemp3.mp3", NULL, NULL, 0);

Questo avvia winamp con il file mp3 come parametro
ShellExecute(NULL, NULL, "C:\\programmi\\winamp\winamp.exe", "C:\\unacartella\\unfilemp3.mp3", NULL, 0);

ademar
01-12-2005, 10:34
Ci sono decine di modi. Puoi usare le directx di microsoft (in particolare directshow) oppure ci sono varie dll per la rete, semplicissime da usare. Se non conosci bene le directx ti consiglio audiere, che è una libreria per i file audio, molto utile nella programmazione di videogame multipiattaforma.

Sigm@66
01-12-2005, 12:40
per kk3z
ho provato inserendo nel main
ShellExecute(NULL, NULL, "C:\\programmi\\winamp\\winamp.exe", "c:\\Tool\\Intolerance.mp3", NULL, 0);

ma non mi funziona, non è che devo includere qualche libreria?.

volevo provare usando il comando system, inserendo il path del programma (winamp) tra virgolette
system("c:\\programmi\\winamp\\winamp.exe");
è così mi funziona, però mi lancia solo winamp...

il problema è: come faccio a dirgli anche che in argv[1] c'è il nome del file da eseguire?
esempio:
system("c:\\programmi\\winamp\\winamp.exe" << argv[1]); // ma non funziona..
qualcuno sa come fare???
grazie

fiorefiore
02-12-2005, 14:00
son curioso anke io!!! ki risolve il prob.?

kk3z
02-12-2005, 14:13
A me funziona, controlla
1) che winamp sia in quella cartella
2) che il file mp3 sia in quella cartella (se è così, prova ad eseguire solo winamp senza argomenti, cioè togli il 4° argomento:
ShellExecute(NULL, NULL, "C:\\programmi\\winamp\\winamp.exe", NULL, NULL, 0);
3) che la path del file mp3 non contenga spazi, se è così includilo tra virgolette
"\"c:\documents and settings\file.mp3\""

"c:\\programmi\\winamp\\winamp.exe" << argv[1]
:mbe: :mbe: << è un operatore... il metodo giusto per concatenare delle stringhe è strcat() oppure l'operatore + con le string del c++ (e ricordati lo spazio tra la path a winamp e la path al file mp3
char winamp[260] = "c:\\programmi\\winamp\\winamp.exe"
strcat(winamp, "spazioC:\\file.mp3");
system(winamp);

Sigm@66
02-12-2005, 16:27
con il comando system() ho risolto è mi funziona quasi perfettamente, se non fosse per il fatto che quando gli invio un file con qualche nome particolare si pianta il programma
es. (un file con piu di un trattino all'interno del nome, tipo: c:\pink floyd\track - 1 - marroned.it // cosi non funziona.....
se il file si fosse chiamato : c:\pink floyd\track - 1 marroned.it //funziona tutto perfettamente.) qualcuno sa dirmi perchè????

per quanto riguardo il comando shellexecute() il dev neanche lo riconosce.....non è che devo includere qualche libreria particolare????

grazie a tutti!!!

kk3z
02-12-2005, 20:24
windows.h ... avevo capito che non ti funzionava, non che non ti riconoscesse la funzione :oink: