begin process at 2012 05 30 16:18:34
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

Multimédia

 > 

Reglage du volume sonore avec waveOutSetVolume


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Reglage du volume sonore avec waveOutSetVolume

mardi 25 mai 2010 à 14:57:19 | Reglage du volume sonore avec waveOutSetVolume

vincent303

Bonjour bonsoir,

Voila j'ai un petit souci et je lutte vraiment dessus.
je possède un entier compris entre 0 et 99 (int vol)
et je voudrais modifié le volume de mon son en fonction de vol.
En gros faire :
waveOutSetVolume(hWaveOut,vol);

Ce qui est bien entendu impossible puisque sa prend pas un entier^^
Donc je sais pas comment faire sachant que je ne souhaite pas forcément utilisé toute la bande sonore : une solution comme faire 0xH+vol+FF peut être envisagé (de ce faite on monte jusqu'à 0xH99FF) seulement j'y arrive pas.
mardi 25 mai 2010 à 17:37:39 | Re : Reglage du volume sonore avec waveOutSetVolume

racpp

Administrateur CodeS-SourceS
Salut,
waveOutSetVolume() prend un DWORD dont les 16 bits de poids fort correspondent au volume du canal droit et les 16 bits de poids faible à celui du canal gauche. La valeur maximale pour chaque canal étant 65535 tu peux utiliser le centième de cette valeur pour incrémenter/décrémenter le volume exprimé en pourcentage.
Le pas sera donc 65535/100=655. Tu peux utiliser un float pour plus de précision. Ensuite, on utilise une macro du genre MAKEWPARAM() pour former le DWORD à partir des valeurs 16 bits. Le code ressemblerait à ceci:
WORD wVolumegauche=50;//0-99
WORD wVolumedroite=50;//0-99
WORD wPas=65535/100;
DWORD vol=MAKEWPARAM(wVolumegauche*wPas,wVolumedroite*wPas);
waveOutSetVolume(hWaveOut,vol);
mardi 25 mai 2010 à 18:43:19 | Re : Reglage du volume sonore avec waveOutSetVolume

vincent303

J'ai essayé différent truc et j'obtiens toujours un signal avec le même volume.
Si j'ai bien compris (se qu'est pas le cas sinon sa marcherais^^). J'ai fais sa:
WORD wPas=65535/100;
DWORD vol=MAKEWPARAM(wVolumegauche*(volume*wPas),wVolumedroite*(volume*wPas));

au quelle volume est compris entre 0 et 100
pour information j'ouvre mon canal audio au mono et non en stéréo
mardi 25 mai 2010 à 21:01:03 | Re : Reglage du volume sonore avec waveOutSetVolume

racpp

Administrateur CodeS-SourceS
Si tu veux agir sur le volume général du PC met NULL en premier paramètre de waveOutSetVolume().
Pour avoir la valeur courante du volume utilise waveOutGetVolume(). En mono tu peux faire:
Code C/C++ :
waveOutSetVolume(NULL,MAKEWPARAM(vol*wPas,vol*wPas)); 
mercredi 26 mai 2010 à 11:07:24 | Re : Reglage du volume sonore avec waveOutSetVolume

vincent303

Merci mais je cherche pas a agir sur la volume général et je ne cherche pas non plus a savoir la valeur actuelle.
C'est principalement que j'ai une méthode qui me récupère un chiffre entre 0 et 100 et je voudrais à partir de se chiffre changer la volume de mon canal (hWaveOut).
mercredi 26 mai 2010 à 18:12:09 | Re : Reglage du volume sonore avec waveOutSetVolume

racpp

Administrateur CodeS-SourceS
En agissant sur le volume général tu testeras les bonnes valeurs à passer à waveOutSetVolume(). waveOutGetVolume() te permettra de vérifier si le changement de volume a été pris en compte ou non. Il faudra aussi t'assurer que ton périphérique audio supporte les valeurs de volumes voulues. Il y a une fonction pour ça. Bref, sans voir le code il est difficile de deviner la source du problème.
mercredi 26 mai 2010 à 18:31:29 | Re : Reglage du volume sonore avec waveOutSetVolume

vincent303

Réponse acceptée !
ah j'avais pas vu ton message pour le mono. Sa a marché.
Voici le code réusltant:

void classe::setVolume(int volume)
{
WORD wPas=65535/100;
DWORD vol=MAKEWPARAM(volume*wPas,volume*wPas);
waveOutSetVolume(hWaveOut,vol);
}
avec volume varaint de 0 à 100.

Merci beaucoup racpp.


Cette discussion est classée dans : volume, reglage, vol, sonore, waveoutsetvolume


Répondre à ce message

Sujets en rapport avec ce message

[Windev 15] Problème réglage de volume [ par jboss38 ] Bonjour, Je suis entrain de crée un programme qui dois utilise du son j'aimerais pouvoir régler le volume sur Windows XP, Vista, et 7 Pour le momen volume d'un sample audio [ par oeildedinde ] Salut, Je cherche une solution pour abaisser le niveau sonore d'un sample audio (dans un filtre directshow). J'ai testé 2 solutions qui me font appar lire fichier sonore DOS [ par istdasklar ] Ququn peut m indiquer un site ou je pourais apprendre ou avoir un code pour lire des fichier sonores wav, midi, voc, n importe koi du moment que c'est [TURBO C++] charger un fichier sonore (.WAV, .VOC, MIDI...) [ par kobee12 ] 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 pou Nom de Volume [ par lysane ] Je voudrais pouvoir changer le nom de mon disque durj'ai trouvé du code pour récuperer le nom mais je ne trouvepas comment le changerje ne sais même p Controle du volume [ par dominion ] Voilà j'aimerais savoir quelle fonction de l'API windows il faut utiliser pour réler le volume. MDSN est pas clair là-dessus...8.:DOMINION:.8 controle du volume audio général [ par roxanic ] BonjourJe cherche a controler les bouton de volume.Pour le bouton Wave c'est OK. Mais je ne trouve pas le solution pour le curseur du volume général.M Volume [ par Xentor609 ] Salut(re),Pour reprendre une question abordée dernierement, mais laissée sans reponse:Comment faire pour controler le volume general de l'ordi(voire m Volume, disque virtuel [ par Marc71 ] j'aimerais creer un fichier sur disque et lui attribuer une lettre de lecteur.J'aurais par exemple sur e: un disque virtuel de 300 mo, cette capacité Projection de volume [ par tcef2003 ] bonjour a tous,je cherche un programme qui projete un volume 3D, sur un ecran, et pour ce faire il projete chaque Voxel de ce volume sous forme d'elli


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 5,382 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales