chrisbk - | Lecture d'un .wav (bout de code a moi un peu rectif pour que ca soit comprehensible ...)
   c pas ce qui se fait de mieux mais si ca peut aider....
    
  Code :
 - class soundBuffer
 - {
 - ..
 -     unsigned char *dataBuffer;
 -     unsigned short numberOfChannel;
 -     unsigned short avgBytePerSec;
 -     unsigned int blockAlign;
 -     unsigned int   sampleRate;
 -     unsigned short nbBits;
 -     unsigned int size;
 - }
 - int soundBuffer::loadFromWav(FILE *in)
 - {
 -     if (!in)
 -         return SB_FILENOTFOUND;
 -    int start = ftell(in);
 -     //on commence la lecture du .wav
 -     char header[10];
 -     memset(header,0,10);
 -     unsigned int formatLenght;
 -     /////////////////////////////
 -     // lecture de l'header
 -     /////////////////////////////
 -    
 -     fread(header,4,1,in);
 -     if (strcmp(header,"RIFF" ))
 -     {
 -         writeError("file is not a valid RIFF file" );
 -         return SB_BADFORMAT;
 -     }
 -     unsigned int tInt;
 -     fread(&tInt,4,1,in);
 -     fread(header,4,1,in);
 -     if (strcmp(header,"WAVE" ))
 -     {
 -         writeError("file  is not a valid WAV file" );
 -         return SB_BADFORMAT;
 -     }
 -    
 -     fread(header,4,1,in);       //contient "fmt "
 -     //////////////////////////////////////
 -     // lecture des infos relative au son
 -     /////////////////////////////////////
 -     fread(&formatLenght,4,1,in);
 -     unsigned short machin;
 -     fread(&machin,2,1,in);
 -  
 -    
 -     fread(&numberOfChannel, sizeof(short),1,in);  //1 mono, 2 stereo
 -     fread(&sampleRate, sizeof(DWORD), 1, in);   //genre 44100, 22050, etc...
 -     fread(&avgBytePerSec, sizeof(WORD), 1, in);
 -     fread(&blockAlign, sizeof(DWORD), 1, in);     //alignement (?)
 -     int tttt = ftell(in);
 -     fread(&nbBits, sizeof(WORD), 1, in);    //8 bit ou 16 bit ?
 - 	///////////////////////////////////
 - 	//saut pour changer de chunk
 - 	///////////////////////////////////
 -     fseek(in,formatLenght + 20 + start,SEEK_SET);
 -     fread(header, sizeof(BYTE), 4, in);    //contient 'data'
 -     fread(&size, sizeof(DWORD), 1, in);    //taille du son
 - 	if (!strcmp(header,"fact" ))
 - 	{
 -   //pas la moindre idée de ce qu'est le chunk 'fact'
 -   //je le saute  
 -   fseek(in,size,SEEK_CUR);
 -   fread(header, sizeof(BYTE), 4, in);    //contient 'data'
 -   fread(&size, sizeof(DWORD), 1, in);    //taille du son
 - 	}
 - 	//donc la, on est sur le chunk 'data'
 - 	//contenant le son  
 -     //allocation du son
 -     dataBuffer = new unsigned char[size];
 -     fread(dataBuffer,size,1,in);
 -      
 -     return SB_OK;
 - }
 
  |  
 
     Ensuite t'as plus qu'a creer un buffer dsound qui correspont au infos, recopier le champ dataBuffer dedans  et vala   [edtdd]--Message édité par chrisbk--[/edtdd]    |