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

  FORUM HardWare.fr
  Programmation
  C++

  régler le volume

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

régler le volume

n°719923
c++fan
pas de déséspoir
Posté le 09-05-2004 à 17:51:46  profilanswer
 

bonjour,j'ai fait une application qui consiste a jouer un fichier son avec la fonction sndPlaySound ,et ça bien marché.maitenant je suis entraine de chercher une fonction pour régler le volume,sachant que j'ai utilisé la fontion auxSetVolume mais elle n'a pas influer sur le volume,aidez moi svp.


---------------
pour être un bon programmeur il faut affronter toutes les difficultés
mood
Publicité
Posté le 09-05-2004 à 17:51:46  profilanswer
 

n°719933
Ace17
Posté le 09-05-2004 à 18:19:48  profilanswer
 

et tu lui passes quoi comme parametres a auxSetVolume

n°720398
c++fan
pas de déséspoir
Posté le 10-05-2004 à 11:26:35  profilanswer
 

merci d'avoir prendre mon sujet en considération,sachez que j'ai utilisé la fonction sndPlaySound pour jouer le son,et pour régler le volume j'ai utilisé un composant TrackBar de c++ builder.le programme est le suivant:
void __fastcall TPrincipale::TrackBar1Change(TObject*Sender)
{
int volume;
 
  volume=TrackBar1->Position;
  auxSetVolume(MCI_DEVTYPE_WAVEFORM_AUDIO,volume);
}
il m'a pas généré des erreurs,mais il m'a donné l'impression que cette fonction ne fait rien.merci  


---------------
pour être un bon programmeur il faut affronter toutes les difficultés
n°722749
Ace17
Posté le 12-05-2004 à 08:18:50  profilanswer
 

auxSetVolume(i,volume);  
i doit etre compris entre 0 et n-1 inclus, ou n est le nombre périphériques audio sur la machine.  
 
MCI_DEVTYPE_WAVEFORM_AUDIO vaut 522 .. alors a moins d'avoir 523 périphériques audio et de vouloir régler le volume du dernier...  

n°723107
c++fan
pas de déséspoir
Posté le 12-05-2004 à 13:42:13  profilanswer
 

bonjour ace17,comme vous avez dit j'ai pas choisi le bon parametre.j'ai changé carrement la fonction et je l'ai remplacé par la fonction waveOutSetVolume en utilisant encore la fonction MAKEWPARAM.et ça bien marché.je te donne le code ci-dessous peut être vous aurez besoin un jour ou  vous le donnerez a ton toure a d'autres personnes intéressés.
//--------------
DWORD volume;
HWAVEOUT hwo;
volume =MAKEWPARAM(volume,TrackBar1->Position);
waveOutSetVolume(hwo, volume);      


---------------
pour être un bon programmeur il faut affronter toutes les difficultés
n°723126
HelloWorld
Salut tout le monde!
Posté le 12-05-2004 à 13:59:15  profilanswer
 

Je suppose que hwo a bien été initialisé.

n°723594
Ace17
Posté le 12-05-2004 à 17:02:02  profilanswer
 

Oui, ca parait nécessaire, mais c'est pas ce que suggere le code!
D'ailleurs c'aurait été intéressant de voir comment

n°723620
djdie
L'heure, c'est l'heure.
Posté le 12-05-2004 à 17:11:39  profilanswer
 

Ace17 a écrit :

Oui, ca parait nécessaire, mais c'est pas ce que suggere le code!


ca parait -> c'est
Il doit avoir du bol et ça c'est initialisé à 0...

n°723633
Ace17
Posté le 12-05-2004 à 17:18:18  profilanswer
 

je pense pas qu'elle ait du bol ... zero ca veut dire que le handle n'est pas valide
et quand je disais "ca parait nécessaire", c'était une facon de parler! Evidemment qu'il faut...


Message édité par Ace17 le 12-05-2004 à 17:18:43
n°723658
c++fan
pas de déséspoir
Posté le 12-05-2004 à 17:26:57  profilanswer
 

comme périphirique de sotrie j'utilise waveOut,par contre si vous avez des baffles intégrés la fontion waveOutSetVolume va pas influer sur le volume.


Message édité par c++fan le 15-05-2004 à 09:48:00

---------------
pour être un bon programmeur il faut affronter toutes les difficultés
mood
Publicité
Posté le 12-05-2004 à 17:26:57  profilanswer
 

n°723697
c++fan
pas de déséspoir
Posté le 12-05-2004 à 17:40:30  profilanswer
 

sachez que j'ai essayé la fonction auxSetVolume avec 0,1,2,3 en premier argument,mais tjs pas de résultat.
 


---------------
pour être un bon programmeur il faut affronter toutes les difficultés
n°723821
Ace17
Posté le 12-05-2004 à 18:59:45  profilanswer
 

Ouais, mais la, tu disais pas que ca marchait avec waveOutSetVolume?

n°726903
c++fan
pas de déséspoir
Posté le 15-05-2004 à 17:30:39  profilanswer
 

il existe aussi la foction waveInSetVolume.et dans ce cas il faut déclarer how comme etant un périphirique d'entré cad HWAVEIN.
------------------------------------------------------------
ce qui me gène dans mon programme est que à chaque fois je réduis le volume(à partir de mon programme),la balance de périphirique wave se déplace vers le coté droit,et le son devient mono.pour vérifier ça allez faire un double click dans l'icone de volume control de windows(phériphirique wave).
------------------------------------------------------------
j'aimerai bien travailer avec direct sound mais j'ai recontré un problème au niveau de lieur.


Message édité par c++fan le 15-05-2004 à 17:33:12

---------------
pour être un bon programmeur il faut affronter toutes les difficultés
n°727000
Ace17
Posté le 15-05-2004 à 20:21:52  profilanswer
 

Un probleme au niveau de "lieur"???? Un probleme de linkage tu veux dire! C'est quoi l'erreur?

n°727268
c++fan
pas de déséspoir
Posté le 16-05-2004 à 11:22:08  profilanswer
 

j'ai un problème avec diectsound en C++ builder,lors de la creation d'un object directsound avec la fonction DirectSoundCreate il nous génère le  message suivant:
[Lieur Erreur] Unresolved external 'DirectSoundCreate' referenced from C:\DIRECTSOUND\DIRECTSOUND.OBJ
malgré que j'ai ajouté les deux fichiers d'entêtes:
#include <mmsystem.h>
#include "dsound.h"
svp aidez moi à le résoudre, merci à l'avance.  


---------------
pour être un bon programmeur il faut affronter toutes les difficultés
n°727276
Ace17
Posté le 16-05-2004 à 11:32:24  profilanswer
 

Ben c'est normal, il faut que tu linkes avec la librairie dsound.lib!
 
Ca n'a rien a voir avec les fichiers d'en tete ; Les fichiers d'en tete sont pris en compte uniquement a la compilation. Qu'est-ce que c'est un fichier d'en tete? C'est (en simplifié) juste une liste de définitions de types et de déclarations de fonctions. Les définitions de ces fonctions sont le plus souvent dans des librairies. C'est pendant le linkage que les appels des fonctions sont reliés à leurs définitions : si la définition n'est pas trouvée, tu as droit a un "unresolved external". Voici un exemple :
 

Code :
  1. // file.cpp
  2. void function1()
  3. {
  4.   // .....
  5.   function2();
  6.   // .....
  7. }

Ca, ca ne passe pas la compilation : function2 n'est meme pas déclarée.
 
 
 

Code :
  1. // file.cpp
  2. void function2(); // prototype : déclaration (mais pas définition)
  3. void function1()
  4. {
  5.   // .....
  6.   function2();
  7.   // .....
  8. }

Ca, ca passe la compilation, mais au linkage, le linker va chercher a savoir ce que function2 fait, ce qui n'est défini nulle part... d'ou le "unresolved external" résultant.
 
 
 

Code :
  1. // file.cpp
  2. void function2(); // prototype : déclaration (mais pas définition)
  3. void function2()
  4. {
  5. // .......
  6. }
  7. void function1()
  8. {
  9.   // .....
  10.   function2();
  11.   // .....
  12. }

La ca marche!


Message édité par Ace17 le 16-05-2004 à 11:39:19
n°727284
djdie
L'heure, c'est l'heure.
Posté le 16-05-2004 à 11:40:18  profilanswer
 

Ace17 a écrit :

Un probleme au niveau de "lieur"???? Un probleme de linkage tu veux dire!


Un problème d'édition des liens [:ozon94]

n°727288
Ace17
Posté le 16-05-2004 à 11:45:03  profilanswer
 

Ouais, exact le vrai terme c'est "édition de liens"... mais vu la facon dont s'exprime c++fan - je crois qu'elle utilise un (mauvais!) traducteur vers le francais - j'ai jugé sympa de pas trop s'éloigner de son vocabulaire :D

n°727298
rady
Posté le 16-05-2004 à 12:03:35  profilanswer
 

merci,c'est vrais ce que vous disez,mais dans mon cas le prototype,et la définition de la fonction DirectSoundCreate se trouve au niveau de fichier d'entete "dsound.h" ou j'ai pas le droit de le modifier.si c'etait ma propre fonction je procède de la manière que vous avez indiqué.meme j'ai trouvé un programme sur internet avec vc++ ,accompagné de son .exe,il marche bien,et lorsque je l'ai recompilé avec vc++6 il ma posé le meme pb.je pense que le problème est au niveau de la version de DirectX

n°727343
Ace17
Posté le 16-05-2004 à 12:54:14  profilanswer
 

Mmm c'est vrai que maintenant il doit falloir utiliser une fonction du style DirectSoundCreate8 ou dans le genre

n°727387
c++fan
pas de déséspoir
Posté le 16-05-2004 à 14:08:55  profilanswer
 

pour le message de rady,un petit conflit est produit c'est une copine a moi,elle a oublié de se déconneter,donc le message était a moi.
//-----------------------------------------
pour la fonction DirectSoundCreate8,je l'ai déja utilisé
mais ca pas marché.il me faut le fichier d'entete adequat  

n°727464
Ace17
Posté le 16-05-2004 à 16:16:05  profilanswer
 

Ouais, rady on avait reconnu.
Mets a jour ton SDK de DirectX en téléchargeant celui du 8.1 sur le site de Microsoft

n°727492
HelloWorld
Salut tout le monde!
Posté le 16-05-2004 à 18:25:18  profilanswer
 

ajoute

Code :
  1. #pragma comment(lib, "dsound.lib" )

dans ton code.


Message édité par HelloWorld le 16-05-2004 à 18:25:38

---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°728860
c++fan
pas de déséspoir
Posté le 17-05-2004 à 13:05:29  profilanswer
 

HelloWorld a écrit :


Code :
  1. #pragma comment(lib, "dsound.lib" )




je l'ai essayé,mais il m'a généré l'erreur suivante:
[Lieur Erreur fatale] Fatal: Unable to open file 'DSOUND.LIB'.


---------------
pour être un bon programmeur il faut affronter toutes les difficultés
n°728969
HelloWorld
Salut tout le monde!
Posté le 17-05-2004 à 14:37:31  profilanswer
 

Ouai. J'aurais du checker au lieu de faire confiance à Ace17 :o

Code :
  1. #pragma comment(lib, "Winmm.lib" )

n°729022
Ace17
Posté le 17-05-2004 à 14:55:11  profilanswer
 

"Faire confiance a Ace17" ???
 
Elle a écrit texto :  
 
[Lieur Erreur] Unresolved external 'DirectSoundCreate' referenced from C:\DIRECTSOUND\DIRECTSOUND.OBJ
 
DirectSoundCreate il est défini dans winmm.lib maintenant? :D


Message édité par Ace17 le 17-05-2004 à 14:55:25
n°729336
HelloWorld
Salut tout le monde!
Posté le 17-05-2004 à 17:35:16  profilanswer
 

Dsl. c'est lui le boulay alors
[:francisboost]


Message édité par HelloWorld le 17-05-2004 à 17:35:45

---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°729357
c++fan
pas de déséspoir
Posté le 17-05-2004 à 17:46:00  profilanswer
 

je l'essayé,le meme message précedent,pas de nouveau.


---------------
pour être un bon programmeur il faut affronter toutes les difficultés
n°729367
c++fan
pas de déséspoir
Posté le 17-05-2004 à 17:51:43  profilanswer
 

je cherche maintenant une fonction pour régler la balance de périphirique wave.


---------------
pour être un bon programmeur il faut affronter toutes les difficultés
n°729384
Ace17
Posté le 17-05-2004 à 18:05:41  profilanswer
 

Un seul probleme a la fois!  
Tu as manifestement un SDK hybride, puisque ca compile et que ca linke pas, alors que tu as inclus les bonnes librairies. Donc tu télécharges le SDK de DirectX 8+.

n°730447
c++fan
pas de déséspoir
Posté le 18-05-2004 à 16:07:19  profilanswer
 

oubliez le direct sound,et aidez moi à régler la balance.


---------------
pour être un bon programmeur il faut affronter toutes les difficultés
n°730459
Ace17
Posté le 18-05-2004 à 16:12:28  profilanswer
 

waveOutSetVolume(0, MAKELONG(volume_right, volume_left));

n°734787
c++fan
pas de déséspoir
Posté le 22-05-2004 à 17:56:09  profilanswer
 

merci ace17,c'est vraie que cette fonction influe sur la balance.lorsque j'ai changé les arguments de cette fonction,le programme a produit la chose suivante:
lorsque je déminue la balance ,le volume devient maximum,et vise versa.pour eviter le pb de la balance,et pour qu'elle reste tjs au milieu
j'ai procédé comme suit:
waveOutSetVolume(0, MAKELONG(TrackBar->Position,
TrackBar->Position volume_left));
le volume change comme je désire sans que la balance change sa position.

mood
Publicité
Posté le   profilanswer
 


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

  régler le volume

 

Sujets relatifs
Volume principal de Windows...[WIN32/windows] Taille d'un volume etc.
[java]Régler le timeout de déconnexion des socketslecture midi et controle du volume
[gros volume inside] Enlever les balises xml et sauver en ascii[PHP] ImageCreateFromJpeg - c'est possible de régler la compression ?
volume en litre ?[JAVA] Jalopy, comment régler ça ?
[C++] Regler le timeout d'un connect (création d une Socket) URGENT[C, C++] Comment régler la vitesse d'un lecteur cd ou dvd ???
Plus de sujets relatifs à : régler le volume


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)