PDA

Visualizza la versione completa : [c] Suonare un file WAV


JamesD
17-12-2003, 21:44
Come da titolo, come si può suonare un file wav tramite linguaggio c?
In VB avevo usato una api. In c come posso includere ed utilizzare API?

Grazie per l'attenzione! :ciauz:

pdpmpd
18-12-2003, 00:03
char *Nome_File = "Suono.wav";
char *argp[4];
argp[0]="dd";
argp[1]= calloc(strlen(Nome_File)+4,sizeof(char));
sprintf(argp[1],"if=%s",Nome_File);
argp[2]="of=/dev/dsp";
argp[3]=NULL;
if (fork()!=0) wait(NULL);
else execvp("dd",argp);

E' il miglior aiuto che ti posso dare:
Non esistono funzioni "standard" che suonano un file (intendo standard lib e standard I/O), quindi i casi sono due
1. O usi un'implementazione (librerie esterne);
2. oppure fai come nel mio codice e usi un programma esterno per suonare il file (assicurati però che il programma da usare non sia invasivo durante l'esecuzione del TUO programma -> ergo, si termini subito appena svolto il compito).

Johnny_Depp
18-12-2003, 01:38
per windows, qua:
http://forum.html.it/forum/showthread.php?s=&postid=4558920#post4558920

JamesD
18-12-2003, 19:40
Originariamente inviato da Johnny_Depp
per windows, qua:
http://forum.html.it/forum/showthread.php?s=&postid=4558920#post4558920

Grazie :)
è la stessa libreria che usavo da VB avrei potuto pensarci.

Ah una cosa non prendete esempio da me, potevo fare una ricerca prima di postare e avrei trovato il risultato!

Grazie Jhonny che non mi hai ripreso... :quipy:

Daisyland
20-12-2003, 12:39
Originariamente inviato da Johnny_Depp
per windows, qua:
http://forum.html.it/forum/showthread.php?s=&postid=4558920#post4558920
Scusa, ma ho provato a seguire il tuo esempio col Dev C++ e mi dice che SND_ASYNC non è stata dichiarata.
Io per richiamare la libreria ho fatto
Project
Project Options
Load Object files (mi dice che lì si aggiungono object files o linker options) e qui ho inserito il file libwinmm.a che viene richiamato col suo percorso assoluto.


Non ho trovato il percorso che hai indicato tu
Progetto ->
Opzioni del Progetto ->
Parametri ->
Linker ->
Aggiungi Libreria o Oggetto:
trova ed inserisci il path assoluto a libwinmm.a

Ho una versione diversa di Dev C++ o sbaglio in qualcosa ?
Grazie, ciao.

Loading