cowboybebop95
Messages postés2Date d'inscriptionlundi 6 juin 2005StatutMembreDernière intervention13 mai 2006
-
13 mai 2006 à 02:15
cs_M07
Messages postés1Date d'inscriptiondimanche 8 octobre 2006StatutMembreDernière intervention30 mars 2010
-
30 mars 2010 à 21:40
"Bonjour à tous,
Voila dans le cadre d'un projet de fin d'année je suis ammené a utiliser la librairie Fmod pour la gestion des audios
Pour faire la distinction entre les bruits et les musiques :
- les bruits sont gérés avec :
FSOUND_SAMPLE * sample = FSOUND_Sample_Load(FSOUND_FREE,path.c_str(),FSOUND_NORMAL,0,0);
et lu avec :
ch = FSOUND_Stream_Play( 0 ,i->second); (ou ch retourne le chanel, et i une map pour gerer tout mes sons)
- les musiques de la facon suivante :
sample = FSOUND_Sample_Load(FSOUND_FREE,path.c_str(),FSOUND_NORMAL,0,0);
et lu avec :
ch = FSOUND_Stream_Play(1,i->second); (ou 1 est le chanel et i une map aussi)
- et fmod est initialisé avec : FSOUND_Init(44100, 2, 1);
Soit en toute logique j'initialise 2 canaux 1 pour les musiques et l'autre pour les sons. Or si je vais un cout<<ch; je me retrouve avec des "4097", "8193", ... ; de ce fait si je veux faire un FSOUND_SetVolume(1 ou 0,0 a 255) (1 ou 0 est le canal et 0 a 255 le niveau sonore), bien je n'arrive pas a reguler le son pour les sons d'un coté et les musiques de l'autre, je ne sais pas trop comment faire, je ne peut faire que FSOUND_SetVolumeSFXMaster(0 a 255) pour régler ca.
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20093 13 mai 2006 à 09:17
Tu as essayé avec un truc du genre :
FSOUND_SetVolumeAbsolute(ch, 127);
Et perso pour charger un fichier son, je fais :
sample = FSOUND_Stream_Open(path.c_str(), FSOUND_NORMAL, 0, 0);
YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
cowboybebop95
Messages postés2Date d'inscriptionlundi 6 juin 2005StatutMembreDernière intervention13 mai 2006 13 mai 2006 à 10:11
Le FSOUND_SetVolumeAbsolute(ch, 127); marche parfaitemeent mais il agit sur les streams et les samples a la fois, or moi ce que je souhaitais en pensant rediriger dans des canaux, c'est maitriser le volume par canal mais comme apparement j'ai pas du bien comprendre la chose, mais je crois avoir trouvé une "bidouille" pour contourner, j'ai tester un grand nombre de fois et les sample on tjs un numero de chanel impaire et les stream un pair, pour l'instant je peux régler de le son de cette facon.
cs_M07
Messages postés1Date d'inscriptiondimanche 8 octobre 2006StatutMembreDernière intervention30 mars 2010 30 mars 2010 à 21:40
Dsl de répondre à ce vieux poste, mais comme j'ai la solution, j'en fais profiter à tous le monde.
FSOUND_SAMPLE* monSon= SOUND_Sample_Load(FSOUND_FREE, "boom.mp3", 0, 0, 0);
//classique pour l'instant :)
//Puis on lance le son sur le canal 2
FSOUND_PlaySound(2, monSon);
//puis on modifie le volume sur ce canal
FSOUND_SetVolume(2, 20);
Le truc important, c'est l'emplacement de la fonction FSOUND_SetVolume.
En effet, une fois appelé cette fct modifie le volume de tous les sons sur le canal spécifié (dans mon cas le n°2), mais si l'on joue un autre son sur ce canal, ce dernier ne sera pas affecter par la modification du volume.
J'espère avoir été clair .