|
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
|
|
|
|
Um dieses Beispiel ausführen zu können, wird die DirectX 9 for Managed Code Runtime benötigt.
|
|
|
|
Windows-Version |
98/SE |
|
|
ME |
|
|
NT |
|
|
2000 |
|
|
XP |
|
|
Vista |
|
|
Win
7 |
|
|
|
|
Download 6,2
kB)
|
Downloads bisher: [ 343 ]
|
|
|