11
votes

Comment énumérer des appareils audio OUT en C #

J'aimerais savoir comment obtenir une liste des périphériques de sortie audio installés (wingout) sur une machine

OS: Windows (XP, Vista, 7) Cadre: .NET 3.5 Langue: C #

Lors de l'itération de cette liste, j'aimerais obtenir des informations comme l'identifiant, le fabricant, ... par périphérique.

Toute astuce?


0 commentaires

5 Réponses :


3
votes

Voici un exemple

Ajoutez une référence à System.Management P>

ManagementObjectSearcher mo = new ManagementObjectSearcher("select * from Win32_SoundDevice");

foreach (ManagementObject soundDevice in mo.Get())
{
     Console.WriteLine(soundDevice.GetPropertyValue("DeviceId"));
     Console.WriteLine(soundDevice.GetPropertyValue("Manufacturer"));
     // etc                       
} 


0 commentaires

16
votes

Voici le code pour énumérer des périphériques audio en C #, à l'aide de WMI (système de référence.Management).

        DevicesCollection devColl = new DevicesCollection();
        foreach (DeviceInformation devInfo in devColl)
        {
            Device dev = new Device(devInfo.DriverGuid);   

            //use dev.Caps, devInfo to access a fair bit of info about the sound device
        }



-3
votes

Cochez l'API WaveOutgetNumDevs API

[DllImport("winmm.dll", SetLastError = true)]
public static extern uint waveOutGetNumDevs();


1 commentaires

Cela ne vous donne que le nombre d'appareils. Comment les énumérez-vous?



0
votes
  private static bool DevicesEnumCallbackHandler(IntPtr lpGuid, IntPtr lpcstrDescription, IntPtr lpcstrModule, IntPtr lpContext)

0 commentaires