Bonjour à tous j'essaie de copier un son en le chargeant dans un FSound puis en accedant a ses donnée et les recopiant dans un autre Fsound.
Il y a bien sur aucun interet pragmatique a proceder comme ca mais c'est plus pedagogique.

voila ce que j'essaie de faire mais j'imagine que j'ai pas tout compris puisque ca ne donne rien :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
 
  FMOD::System *system = 0;
  FMOD::Sound *sound, *sound2;
  FMOD::Channel *channel = 0;
  FMOD_RESULT result;
  void *ptr1, *ptr2;
  unsigned int len1,len2
  FMOD_CREATESOUNDEXINFO soundexinfo;
 
 
  result = FMOD::System_Create(&system);
 
  result = system->setOutput(FMOD_OUTPUTTYPE_ALSA);
 
  result = system->init(32,FMOD_INIT_NORMAL, 0);
 
  result = system->createSound("ocean.wav",FMOD_SOFTWARE, 0,&sound);
  result = sound->setMode(FMOD_LOOP_OFF);
 
  sound->getLength(&len1,FMOD_TIMEUNIT_MS);
 
  sound->lock(0,len1,&ptr1,&ptr2,&len1,&len2);
 
  memset(&soundexinfo, 0, sizeof(FMOD_CREATESOUNDEXINFO));
  soundexinfo.cbsize = sizeof(FMOD_CREATESOUNDEXINFO);
 
  soundexinfo.length = len1;
 
  system->createStream((const char *)ptr1, FMOD_HARDWARE | FMOD_OPENMEMORY, &soundexinfo, &sound2);
  sound->unlock(ptr1,ptr2,len1,len2);
  result = system->playSound(FMOD_CHANNEL_FREE, sound2,0,&channel);
 
  while (1) ;
 
  result = sound->release();
  result = sound->release();
  result = system->close();
  result = system->release();
 
 
  return 0;
bon le code est vite fait un pas de gestion d'erreur et une boucle infini pour laisser la lecture mais c'est pas le plus important j'aimerai comprendre le principe.

Voila merci d'avance.