Page 1 sur 1

[..] Liste des cartes audio

Posté : mar. 15 juin 2010 15:32
par PetitScarabe
Bonjour,

J'arrive à obtenir le nombre de cartes audio avec le code suivant :
DllCall("winm.dll","uint","waveOutGetNumDevs")
Par contre je ne sais pas comment récupérer la liste des cartes audio comme on peut l'avoir dans
Panneau de configuration/Sons et périphériques audio/Voix/Unité par défaut
Sauriez-vous comment faire ?

Merci par avance.

Cordialement.

Re: [...] Liste des cartes audio

Posté : mar. 15 juin 2010 19:53
par jbnh
Bonsoir et bienvenue sur le forum,

Je vous invite à lire ceci et plus particulièrement _ComputerGetSoundCards .

N'hésitez pas à revenir demander de l'aide si vous rencontrez un problème !

Re: [..] Liste des cartes audio

Posté : mer. 16 juin 2010 11:37
par PetitScarabe
Bonjour,

Merci pour votre réponse.
J'ai testé et je n'obtiens pas les informations voulues.
Dans mon cas, j'ai deux cartes audio :
1-Samsung UC Audio
2-SigmaTel Audio
or la fonction _ComputerGetSoundCards me revoie les informations suivantes :
1-Périphérique audio USB
2-SigmaTel High Definition Audio CODEC

Je vais essayer de poster sur le forum US.

Encore merci pour votre aide.

Cordialement.

Re: [..] Liste des cartes audio

Posté : ven. 18 juin 2010 14:38
par PetitScarabe
Bonjour,

Finalement, comme je n'arrive pas à obtenir les informations que je voudrais pour faire quelque chose de paramétrable et dynamique, je vais faire simple et mettre les valeurs en "dur" :oops: :(

Par contre je rencontre un autre problème.
Je souhaite, lorsque je change de carte audio, émettre un son afin de m'assurer que le changement a bien été effectué.
Mais le son est joué sur l'ancienne carte audio active.
Pouvez-vous m'aider à trouver l'erreur ?

Code : Tout sélectionner

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>

Opt('MustDeclareVars', 1)

Global $SoundCard1, $SoundCard2, $CurrentSoundCard, $SecondSoundCard, $msg, $Apply, $Cancel, $NumberOfSoundCard, $RadioChecked, $Item1, $Item2

; Get the number of Soundcard
$NumberOfSoundCard=DllCall("winmm.dll","uint","waveOutGetNumDevs")

; Get the current Soundcard
$CurrentSoundCard = RegRead("HKEY_CURRENT_USER\Software\Microsoft\Multimedia\Sound Mapper","Playback")

; Create the GUI
GUICreate("Soundcard Changer", 210, 90)

$SoundCard1 = "SigmaTel Audio"
$Item1 = GUICtrlCreateRadio($SoundCard1,30,10,150)

$SoundCard2 = "Samsung UC Audio"
$Item2 = GUICtrlCreateRadio($SoundCard2,30,30,150)

if $CurrentSoundCard = $SoundCard1 Then
    GUICtrlSetState($Item1, $GUI_CHECKED)
Else
    GUICtrlSetState($Item2, $GUI_CHECKED)
EndIf

$RadioChecked = $CurrentSoundCard

$Apply = GUICtrlCreateButton("Apply", 10, 60, 50, 20)
$Cancel = GUICtrlCreateButton("Cancel", 150, 60, 50, 20)

GUISetState(@SW_SHOW)  ; display the GUI

Do
    $msg = GUIGetMsg()
    Select
        Case $msg = $Item1 And BitAND(GUICtrlRead($Item1), $GUI_CHECKED) = $GUI_CHECKED
            $RadioChecked = $SoundCard1
        Case $msg = $Item2 And BitAND(GUICtrlRead($Item2), $GUI_CHECKED) = $GUI_CHECKED
            $RadioChecked = $SoundCard2
        Case $msg = $Apply
            RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Multimedia\Sound Mapper","Playback","REG_SZ",$RadioChecked)
            SoundPlay("")
            SoundPlay(@WindowsDir & "\media\tada.wav",1)
        Case $msg = $Cancel
        Case $msg = $GUI_EVENT_CLOSE
    EndSelect
Until $msg = $GUI_EVENT_CLOSE Or $msg = $Cancel or $msg = $Apply

 
Merci par avance.

Cordialement.