[..] Liste des cartes audio

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
PetitScarabe
Niveau 1
Niveau 1
Messages : 3
Enregistré le : mar. 15 juin 2010 15:15
Status : Hors ligne

[..] Liste des cartes audio

#1

Message 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.
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

Re: [...] Liste des cartes audio

#2

Message 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 !
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
PetitScarabe
Niveau 1
Niveau 1
Messages : 3
Enregistré le : mar. 15 juin 2010 15:15
Status : Hors ligne

Re: [..] Liste des cartes audio

#3

Message 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.
PetitScarabe
Niveau 1
Niveau 1
Messages : 3
Enregistré le : mar. 15 juin 2010 15:15
Status : Hors ligne

Re: [..] Liste des cartes audio

#4

Message 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.
Répondre