[TURBO C++] charger un fichier sonore (.WAV, .VOC, MIDI...)
kobee12
Messages postés153Date d'inscriptiondimanche 26 janvier 2003StatutMembreDernière intervention31 octobre 2006
-
19 mars 2003 à 20:22
cs_bouba
Messages postés518Date d'inscriptiondimanche 2 décembre 2001StatutMembreDernière intervention10 novembre 2007
-
27 févr. 2004 à 12:02
JE suis actuellement en train de faire une applicatiion en mode 13h avec gestion de la souris et chargement d'image .BMP sous TURBO C++.
J'aimerais pouvoir rajouter des sons et de la musique a mon application.
Si vous savez comment faire pourriez me proposer un code source compatible sous TC++.
Merci d'avance
PS: si vous connaissez un site sur le sujet ca m'interesse aussi.
Voila @ + kobee12
cs_bouba
Messages postés518Date d'inscriptiondimanche 2 décembre 2001StatutMembreDernière intervention10 novembre 20073 20 mars 2003 à 07:37
Salut, je me suis déjà penché un peu sur la question, c'est vrai qu'ya pa trop de truc su le sujet sur le net. Voici un chti article qui va te permettre de charger un .WAV dans ton prog.
http://www.gamedev.net/reference/articles/article709.asp Voila, bonne prog!
A+
Bouba
Amanobuo
Messages postés65Date d'inscriptionmardi 24 février 2004StatutMembreDernière intervention11 décembre 2006 27 févr. 2004 à 11:46
il y a des erreurs dans cette souces. J ai essaye de les corriger mais il en reste une !
void main (char *fname)
{
FILE *fp;
fp = fopen(fname,"rb");
if (fp)
{
BYTE id[4], *sound_buffer; //Quatre bytes pour contenir 'RIFF'
DWORD size; // valeur de 32 bit pour contenir la taille du fichier
short format_tag, channels, block_align, bits_per_sample; //nos valeurs 16
DWORD format_length, sample_rate, avg_bytes_sec, data_size, i; //nos vleurs 32
fread(id, sizeof(BYTE), 4, fp); //Lit en premier 4 bits
if (!strcmp((const char *) id, "RIFF"))
{ //nous avons 'RIFF' continuons
fread(size, sizeof(DWORD), 1, fp); //read in 32bit size value
fread(id, sizeof(BYTE), 4, fp); //read in 4 byte string now
if (!strcmp((const char *)id,"WAVE"))
{ //this is probably a wave file since it contained "WAVE"
fread(id, sizeof(BYTE), 4, fp); //read in 4 bytes "fmt ";
fread(&format_length, sizeof(DWORD),1,fp);
fread(&format_tag, sizeof(short), 1, fp); //check mmreg.h (i think?) for other
// possible format tags like ADPCM
fread(&channels, sizeof(short),1,fp); //1 mono, 2 stereo
fread(&sample_rate, sizeof(DWORD), 1, fp); //like 44100, 22050, etc...
fread(&avg_bytes_sec, sizeof(short), 1, fp); //probably won't need this
fread(&block_align, sizeof(short), 1, fp); //probably won't need this
fread(&bits_per_sample, sizeof(short), 1, fp); //8 bit or 16 bit file?
fread(id, sizeof(BYTE), 4, fp); //read in 'data'
fread(&data_size, sizeof(DWORD), 1, fp); //how many bytes of sound data we have
sound_buffer = (BYTE *) malloc (sizeof(BYTE) * data_size); //set aside sound buffer space
fread(sound_buffer, sizeof(BYTE), data_size, fp); //read in our whole sound data chunk
}
else
printf("Erreur: Fichier RIFF mais pas un fichier Wav\n");
}
else
printf("Erreur : Ce n'est pas un fichier RIFF\n");
}
}
cs_bouba
Messages postés518Date d'inscriptiondimanche 2 décembre 2001StatutMembreDernière intervention10 novembre 20073 27 févr. 2004 à 12:02
Ou la, sa fait bien longtemps que je ne programme plus sous Turbo C++, je pense que tu feré bien re reposter un message dans le forum ou bien de changer de compilo et utiliser un API qui fait ca, ce seré plus simple.
Bonne chance.
Bouba