Hit-Parade .VB Research Center . Compteur
Accueil ~  Code ~  Programmes ~  Api ~  Forum ~  Cours ~  Livres ~  Quiz ~  Annuaire
~ Edito ~
12/03/2006 @ 13:39
Depuis la dernière mise à jour (qui remonte à... oulala plusieurs mois), un petit ménage de printemps s'impose. Ca tombe bien, c'est presque la période.
Au menu, et progressivement sur les jours à venir, rafraîchissement de plusieurs fonctions et procédures, nouvelles APIs et nouveaux programmes.

~ Rechercher ~

  

~ Annuaire VB ~
 Rechercher un site :
  

~ Partenaires ~

Divers : Réglage du volume
Régler le volume de sortie de la carte son pour les fichiers de type WAV.
(Consulté 20452 fois.)

Le code suivant permet de régler le volume de sortie de la carte son pour les fichiers WAV et assimilés. Le volume général n'est pas modifié. Pour pouvoir utiliser le code qui suit, vous avez besoin d'une feuille avec 5 boutons et deux labels, mettez les bons noms aux contrôles, ou bien, modifiez le code. Il est à noter que le réglage du volume se fait à droite et à gauche, de cette manière, vous pouvez ainsi régler la balance (code inspiré d'un article de la KB Microsoft).

Option Explicit
' Déclaration des fonctions API
Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" ( _
               
ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
Private Declare Function
waveOutSetVolume Lib "winmm.dll" ( _
               
ByVal uDeviceID As Long, ByVal dwVolume As Long) As Long
Private Declare Function
waveOutGetVolume Lib "winmm.dll" ( _
               
ByVal uDeviceID As Long, lpdwVolume As Long) As Long

' Déclaration des constantes
Private Const SND_ASYNC = &H1
Private Const SND_NODEFAULT = &H2
Private Const SND_NOWAIT = &H2000

' Variable globale du volume
Public lgVolG As Long
Public
lgVolR As Long
Public
lgVol As Long

' Variable globale bidon pour les retour d'API
Public lgRep As Long

Private Sub
Form_Load()
' Récupération du volume courant
lgRep = waveOutGetVolume(0, lgVol)
lgVolG = lgVol
And &HFFFF&
lgVolR = ((lgVol
And &HFFFF0000) / &H10000) And &HFFFF&
' Affichage du volume courant
lblVolumeG.Caption = Hex$(lgVolG)
lblVolumeR.Caption = Hex$(lgVolR)
End Sub

Private Sub
cmdMusique_Click()
Dim lgFlags As Long
Dim
stFichierSon As String
' Votre fichier son
stFichierSon = "E:\WELCOM98.WAV"
lgFlags = SND_ASYNC
Or SND_NOWAIT
' Lance la lecture du fichier son
lgRep = sndPlaySound(stFichierSon, lgFlags)
End Sub

Private Sub
cmdPlusG_Click()
' Augmente le volume du côté gauche
lgVolG = lgVolG + &H1000
If lgVolG > &HFFFF& Then lgVolG = &HFFFF&
lgRep = waveOutSetVolume(0,
CLng("&H" + Hex$(lgVolR) + Hex$(lgVolG)))
lblVolumeG.Caption = Format$(Hex$(lgVolG))
End Sub

Private Sub
cmdMoinsG_Click()
' Diminue le volume du côté gauche
lgVolG = lgVolG - &H1000
If lgVolG < &H0& Then lgVolG = &H0&
lgRep = waveOutSetVolume(0,
CLng("&H" + Hex$(lgVolR) + Hex$(lgVolG)))
lblVolumeG.Caption = Hex$(lgVolG)
End Sub

Private Sub
cmdPlusR_Click()
' Augmente le volume du côté droit
lgVolR = lgVolR + &H1000
If lgVolR > &HFFFF& Then lgVolR = &HFFFF&
lgRep = waveOutSetVolume(0,
CLng("&H" + Hex$(lgVolR) + Hex$(lgVolG)))
lblVolumeR.Caption = Format$(Hex$(lgVolR))
End Sub

Private Sub
cmdMoinsR_Click()
' Diminue le volume du côté droit
lgVolR = lgVolR - &H1000
If lgVolR < &H0& Then lgVolR = &H0&
lgRep = waveOutSetVolume(0,
CLng("&H" + Hex$(lgVolR) + Hex$(lgVolG)))
lblVolumeR.Caption = Hex$(lgVolR)
End Sub
Visual Basic Research Center - (c) 2000/2002 -  Webmaster : docvb (chez) free (point) fr