Tipp 0086 Soundkarten-Infos mit DirectSound einlesen
Autor/Einsender:
Datum:
  Alexander Csadek
04.09.2005
Entwicklungsumgebung: VB.Net 2003
DirectX-Version:   DirectX 9
Es kommt sicher nicht sehr häufig vor, dass in einem PC mehr als eine Soundkarte ist. Aber dennoch ist es mit DirectX möglich, festzustellen, ob überhaupt eine Soundkarte vorhanden ist. Dies geschieht mittels der DirectSound-Enumerierung. Bei DirectX 9 ist dies sehr einfach durch Erzeugen einer DevicesCollection. Die Informationen pro Device sind in der DeviceInformation-Struktur.
Am häufigsten gibt es nur eine und die wird als "Primärer Soundtreiber" bezeichnet, und DirectSound wird dann ohne Angabe der GUID erzeugt.
 
meinDSoundDevice = New Device()
 
Soll die Ausgabe auf einer anderen Soundkarte als der Primären geschehen oder über einen anderen Treiber, so muss lediglich die GUID aus der Auflistung anstatt dem leerem String übergeben werden.
 
meinDSoundDevice = New Device(DeviceInformation.DriverGuid)
 
Das gleiche gilt auch für die Aufnahmetreiber (Capture). Diese können mit der Collection CaptureDevicesCollection ausgelesen werden.
 
'Auflistung aller Soundkarten-Devices erstellen
DSoundCollection = New DevicesCollection

'Anzahl der Treiber ermitteln
lbl_Device.Text = "Anzahl Soundkartentreiber: " & _
      DSoundCollection.Count

'Erstellen der DeviceInformations-Auflistung
Dim devinfo As DeviceInformation
For Each devinfo In DSoundCollection
  lst_SK.Items.Add(devinfo.Description & " - " & _
        devinfo.ModuleName & " - " & _
        devinfo.DriverGuid.ToString)
Next devinfo

'Auflistung aller Aufnahme-Devices erstellen
DSoundCaptureCollection = New CaptureDevicesCollection

'Anzahl der Treiber ermitteln
lbl_Device.Text = "Anzahl Aufnahmetreiber: " & _
      DSoundCaptureCollection.Count

'Erstellen der DeviceInformations-Auflistung
For Each devinfo In DSoundCaptureCollection
  lst_Capture.Items.Add(devinfo.Description & " - " & _
        devinfo.ModuleName & " - " & _
        devinfo.DriverGuid.ToString)
Next devinfo
 
Hinweis
Um dieses Beispiel ausführen zu können, wird die DirectX 9 for Managed Code Runtime benötigt.
Weitere Links zum Thema
Adapter-Informationen auslesen

Windows-Version
98/SE
ME
NT
2000
XP
Vista
Win 7


Download  6,2 kB) Downloads bisher: [ 343 ]

Vorheriger Tipp Zum Seitenanfang Nächster Tipp

Startseite | Tipps | Projekte | Tutorials | Bücherecke | VB-/VBA-Tipps | API-Referenz | Komponenten | VB.Net-Forum | VB/VBA-Forum | DirectX-Forum | Foren-Archiv | DirectX | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Sonntag, 22. Januar 2012