WaveOutGetVolume

Résolu
Nicolas___ Messages postés 992 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 24 avril 2013 - 29 mars 2008 à 16:54
 Utilisateur anonyme - 1 avril 2008 à 17:39
    Bon je suis désolée pour la question débile qui va suivre mais je dois etre tres fatigué
    ya quelque chose qui cloche dans ma fonction parceque je n'arrive pas a m'en servir !
...
const
      MAX_VOLUME               :integer    =65535;
      MIN_VOLUME                :integer    =0;
      DEVICE_IDENTIFIER     :integer    =0;
...
function  GetVolume():DWORD;
var
  VolumeGeneral: DWORD;
begin
  waveOutGetVolume(DEVICE_IDENTIFIER,@VolumeGeneral);
  result:=VolumeGeneral;
end;
...
  GaugeVolume.MaxValue:=MAX_VOLUME;
  GaugeVolume.MinValue:=MIN_VOLUME;
  GaugeVolume.Progress:=GetVolume;

...

le probleme , ca ne reflete absolument pas mon Volume ( oui oui c'est un assez gros et surement tres *** de probleme Mais la je suis a la limite de la crise de nerf , Desolé mais g pas trouvé d'exemple en utilisant WaveOutGetVolume())

Et en passant , en Delphi c'est quoi l'equivalent de alwaysOnTop ?

Merci

12 réponses

Utilisateur anonyme
29 mars 2008 à 17:56
Salut,

Il te manque des trucs dans ta fonction  : Essaye ca

function GetWaveVolume(var Vol: DWORD): Boolean;
var

  WaveOutCaps: TWAVEOUTCAPS;

  Volume: DWORD;
begin

  Result :=  False;

   if  WaveOutGetDevCaps(DEVICE_IDENTIFIER, @WaveOutCaps, SizeOf(WaveOutCaps))  = MMSYSERR_NOERROR then

    if WaveOutCaps.dwSupport and WAVECAPS_VOLUME = WAVECAPS_VOLUME then

    begin

      Result := WaveOutGetVolume(DEVICE_IDENTIFIER, @Volume) = MMSYSERR_NOERROR;

      Vol   := Volume;

{Pour trouver le son de gauche ou de droite
     LVol   := LoWord(Volume);

      RVol   := HiWord(Volume);}

    end;
end;
3
florenth Messages postés 1023 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 17 août 2008 3
31 mars 2008 à 19:19
Euh, d'après la msdn, c'est un int sur 16 bits qu'il faut donner à la fonction waveOutGetVolume.
Donc il faudrait mettre (var Vol: Word) et non pas DWord !! Sinon, tu passes un type trop grand et donc quand tu récupères, tout est shl 8, ce qui expliquerait ton "gros" résultat.
3
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
29 mars 2008 à 18:25
Salut les gars,   :)))

« En Delphi c'est quoi l'equivalent de alwaysOnTop ? »

BringToFront, je pense.
0
florenth Messages postés 1023 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 17 août 2008 3
29 mars 2008 à 20:07
Euh, je dirais TForm.FormStyle := fsStayOnTop, non ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
29 mars 2008 à 20:23
Salut Flo,

Euh... Oui pour une form... Mais il peut aussi s'agir d'un compo pendant un drag'n drop, par exemple...
0
Nicolas___ Messages postés 992 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 24 avril 2013 1
29 mars 2008 à 21:16
je comprends pas ... ta fonction me donne aussi des  resultats débiles :
---------------------------
Controlevolumeson
---------------------------
4294377462
---------------------------
OK  
---------------------------

pas normal ! ou alors suis vraiment mauvais , peut etre un piti exemple (Sivouplè )
mais a mon avis c autre chose

Désolé cari , c flo qui a raison :)

Ciao
0
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
29 mars 2008 à 21:20
pfff
De toute façon j'ai l'habitude. C'est tj Flo qui a raison...
0
florenth Messages postés 1023 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 17 août 2008 3
30 mars 2008 à 12:15
meuuuuuuh non ! j'ai pas la science infuse non plus !
ça se saurait sinon, hein ?
0
Nicolas___ Messages postés 992 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 24 avril 2013 1
31 mars 2008 à 01:47
S'il vous plait , désolé d'insister mais la fonction de Francky ( alors que je suis presque sur qu'elle est bonne) ne m donne toujours pas de bon resultat ...

J'en demande peut etre a la science infuse (lol) de Flo ...

Cari , Flo le combat ? lol

M'enfin je comprend pas le prob ... Ma carte son m'a tjs refiler que des *** !
0
Nicolas___ Messages postés 992 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 24 avril 2013 1
31 mars 2008 à 20:55
Merci Flo ,c ca .... MAIS SURTOUT

DESOLE DESOLE DESOLE ...

je savais bien qu'il y avait une co**** qq part et je savais que ca devait forcement venir de moi ...

Et ca venais bien de moi , je confondais le volume WAVE et le MASTER volume ...

Forcement je trouvais que les chiffres etaient tjs bizarre vu que j'avais beau Augmenter/Diminuer le niveau sonore ,
mon GetWaveVolume ne semblait jamais bougé ( chose logique maintenat que j'ai enfin compris mon ENORME bourde ;) )

Merci tout de meme d'avoir pris la patience de resoudre mon probleme ( moi je ne l'aurais pas eu :) )

et sorry
0
florenth Messages postés 1023 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 17 août 2008 3
1 avril 2008 à 17:25
Finalement, pour les ignares comme moi en sonorisation, c'est quoi la différence entre Wave volume et Master volume ?
C'est un des sous-volumes qu'on voit dans la fenêtre de réglage de windows "Wave/mp3" tout comme "midi", ... ?

Des fois que ça me serve ... !
0
Utilisateur anonyme
1 avril 2008 à 17:39
C'est un des sous-volumes qu'on voit dans la fenêtre de réglage de windows "Wave/mp3" tout comme "midi", ... ?  C'est ca Flo.
0
Rejoignez-nous