Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1763 connectés 

  FORUM HardWare.fr
  Programmation

  programmation directsound

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

programmation directsound

n°76996
ddr128
Posté le 30-11-2001 à 18:34:06  profilanswer
 

bonjour,  
je voudrais savoir comment faire pour jouer un fichier wav avec directsound.
quelqu'un aurait-il un bout de code ? merci

mood
Publicité
Posté le 30-11-2001 à 18:34:06  profilanswer
 

n°76997
Jcom
Posté le 30-11-2001 à 18:47:30  profilanswer
 

je connais pas spécialement directsound mais si tu veut juste lire un fichier .wav, tu peut aussi bien te servir de l'api win32 avec la fonction PlaySound. bien sur, ça n'a rien à voir au niveau perfs :)


---------------
mon site sur opengl/dx8 : www.glinfrench.fr.st
n°77200
Jcom
Posté le 01-12-2001 à 15:11:11  profilanswer
 

sinon t'as un cours en anglais là :
 
http://www.2dgame.nl/Tutorial_sound_music.asp


---------------
mon site sur opengl/dx8 : www.glinfrench.fr.st
n°77279
karlkox
Posté le 01-12-2001 à 18:40:14  profilanswer
 

Sinon tu as aussi le SDK (outils de développement) ou l'on explique tout ca, exemple a l'appuye (me SDK se trouve sur le site de Microsoft)

n°77337
chrisbk
-
Posté le 01-12-2001 à 23:08:02  profilanswer
 

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 :
  1. class soundBuffer
  2. {
  3. ..
  4.     unsigned char *dataBuffer;
  5.     unsigned short numberOfChannel;
  6.     unsigned short avgBytePerSec;
  7.     unsigned int blockAlign;
  8.     unsigned int   sampleRate;
  9.     unsigned short nbBits;
  10.     unsigned int size;
  11. }
  12. int soundBuffer::loadFromWav(FILE *in)
  13. {
  14.     if (!in)
  15.         return SB_FILENOTFOUND;
  16.    int start = ftell(in);
  17.     //on commence la lecture du .wav
  18.     char header[10];
  19.     memset(header,0,10);
  20.     unsigned int formatLenght;
  21.     /////////////////////////////
  22.     // lecture de l'header
  23.     /////////////////////////////
  24.    
  25.     fread(header,4,1,in);
  26.     if (strcmp(header,"RIFF" ))
  27.     {
  28.         writeError("file is not a valid RIFF file" );
  29.         return SB_BADFORMAT;
  30.     }
  31.     unsigned int tInt;
  32.     fread(&tInt,4,1,in);
  33.     fread(header,4,1,in);
  34.     if (strcmp(header,"WAVE" ))
  35.     {
  36.         writeError("file  is not a valid WAV file" );
  37.         return SB_BADFORMAT;
  38.     }
  39.    
  40.     fread(header,4,1,in);       //contient "fmt "
  41.     //////////////////////////////////////
  42.     // lecture des infos relative au son
  43.     /////////////////////////////////////
  44.     fread(&formatLenght,4,1,in);
  45.     unsigned short machin;
  46.     fread(&machin,2,1,in);
  47.  
  48.    
  49.     fread(&numberOfChannel, sizeof(short),1,in);  //1 mono, 2 stereo
  50.     fread(&sampleRate, sizeof(DWORD), 1, in);   //genre 44100, 22050, etc...
  51.     fread(&avgBytePerSec, sizeof(WORD), 1, in);
  52.     fread(&blockAlign, sizeof(DWORD), 1, in);     //alignement (?)
  53.     int tttt = ftell(in);
  54.     fread(&nbBits, sizeof(WORD), 1, in);    //8 bit ou 16 bit ?
  55. ///////////////////////////////////
  56. //saut pour changer de chunk
  57. ///////////////////////////////////
  58.     fseek(in,formatLenght + 20 + start,SEEK_SET);
  59.     fread(header, sizeof(BYTE), 4, in);    //contient 'data'
  60.     fread(&size, sizeof(DWORD), 1, in);    //taille du son
  61. if (!strcmp(header,"fact" ))
  62. {
  63.  //pas la moindre idée de ce qu'est le chunk 'fact'
  64.  //je le saute  
  65.  fseek(in,size,SEEK_CUR);
  66.  fread(header, sizeof(BYTE), 4, in);    //contient 'data'
  67.  fread(&size, sizeof(DWORD), 1, in);    //taille du son
  68. }
  69. //donc la, on est sur le chunk 'data'
  70. //contenant le son  
  71.     //allocation du son
  72.     dataBuffer = new unsigned char[size];
  73.     fread(dataBuffer,size,1,in);
  74.      
  75.     return SB_OK;
  76. }


 
 
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]


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  programmation directsound

 

Sujets relatifs
Un site sur la programmationje voudrais me mettre a la programmation!need conseils!!!!!
programmation graphique 2D : affichage d'un graphe en temps réelProgrammation : questions divers et générales
[C] Recherche infos sur programmation du mixer audio de windaube...Exo de programmation en language C, j?arrive pas ! Help me !
programmation graphique en Cprogrammation graphique locker une surface
Remise à niveau en programmation, besoin de conseilsQuel langage de programmation préférez vous ?
Plus de sujets relatifs à : programmation directsound


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR