J'aimerais savoir comment obtenir une liste des périphériques de sortie audio installés (wingout) sur une machine p>
OS: Windows (XP, Vista, 7) Cadre: .NET 3.5 Langue: C # P>
Lors de l'itération de cette liste, j'aimerais obtenir des informations comme l'identifiant, le fabricant, ... par périphérique. P>
Toute astuce? P>
5 Réponses :
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
}
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
}
Savez-vous s'il est possible d'obtenir des informations jack de certains périphériques audio?
Je ne suis pas sûr, peut-être regarder msdn.microsoft.com/en-us/library/windows/desktop/windows/desktop/.../a> - juste un coup de poignard dans le noir.
DirectX géré a été obsolète depuis un certain temps.
Maintenant que j'ai l'appareil, comment puis-je commencer à écouter?
Cochez l'API WaveOutgetNumDevs API
[DllImport("winmm.dll", SetLastError = true)]
public static extern uint waveOutGetNumDevs();
Cela ne vous donne que le nombre d'appareils. Comment les énumérez-vous?
private static bool DevicesEnumCallbackHandler(IntPtr lpGuid, IntPtr lpcstrDescription, IntPtr lpcstrModule, IntPtr lpContext)
dans Windows Vista et plus, vous pouvez utiliser immdéviceenumerator code> qui est enveloppé pour vous par Naudio a> afin d'énumérer des périphériques d'extrémité audio. Par exemple:
Savez-vous s'il est possible d'obtenir des informations jack de certains périphériques audio?