Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Mit Hilfe vom DirectX SDK ein selectedDevice setzen.

Frage Entwicklung Visual Studio

Mitglied: Sudden

Sudden (Level 1) - Jetzt verbinden

31.03.2014 um 12:19 Uhr, 1143 Aufrufe, 12 Kommentare, 1 Danke

Hi Admins,

ich habe im Rahmen eines kleinen Projektes ein Programm geschrieben, welches mir derzeit meine Audio Ausgabegeräte anzeigt.
Das habe ich mit Hilfe des DirectX SDK geschafft. Ich habe auf DirectX und DirectX.DirectSound verwiesen.
Nun kann ich mir meine ganzen Ausgabegeräte anzeigen lassen (TV via HDMI, Lautsprecher via Klinke und Headset via USB). Diese kann ich auch auswählen, aber noch nicht setzen. gibt es da vielleicht ein "setSoundDevice" oder sowas ähnliches? Wurde in der Doku von DirektX leider nicht fündig.
Hier nochmal der Code:

01.
 
02.
 
03.
'Pruefen ob eine Soundkarte im System installiert ist und auflisten der vorhandenen Soundkarten 
04.
Option Explicit On 
05.
Option Strict On 
06.
 
07.
Imports Microsoft.DirectX 
08.
Imports Microsoft.DirectX.DirectSound 
09.
 
10.
Public Class Form1 
11.
 
12.
    ' List der vorhandenen Soundkarten im System ermitteln 
13.
    Public Class GetSoundDevices 
14.
 
15.
        ' Rueckgabe der gefundenen Soundkarten 
16.
        Public Shared ReadOnly Property DeviceList() As List(Of String) 
17.
            Get 
18.
                Return GetDeviceList() 
19.
            End Get 
20.
        End Property 
21.
 
22.
        ' Soundkarten ermitteln 
23.
        ' Rueckgabe der gefundenen Soundkarten an eine List(...) 
24.
        Private Shared Function GetDeviceList() As List(Of String) 
25.
            Dim List As New List(Of String) 
26.
            Dim DeviceList As New DevicesCollection 
27.
            Try 
28.
                Dim n As Integer = 0 
29.
                Do While n < DeviceList.Count 
30.
                    List.Add(DeviceList(n).Description) 
31.
                    n += 1 
32.
                Loop 
33.
            Catch ex As Exception 
34.
                Throw New Exception(ex.Message.ToString()) 
35.
            End Try 
36.
            Return List 
37.
        End Function 
38.
 
39.
    End Class 
40.
 
41.
    ' Pruefen ob im System eine Soundkarte installiert ist 
42.
    Public Class DirectX_SoundkarteInstalliert 
43.
 
44.
        ' Rueckgabe ob eine Soundkarte gefunden wurde. True - es wurde eine Soundkarte gefunden sonst False 
45.
        Public Shared ReadOnly Property SoundkarteInstalliert() As Boolean 
46.
            Get 
47.
                Return GetSoundCard() 
48.
            End Get 
49.
        End Property 
50.
 
51.
        ' Soundkarten ermitteln 
52.
        Private Shared Function GetSoundCard() As Boolean 
53.
            Dim Result As Boolean = False 
54.
            Try 
55.
                Dim Device As DirectSound.Device = New DirectSound.Device() 
56.
 
57.
                If Device = Nothing Then 
58.
                    Result = False 
59.
                Else 
60.
                    Result = True 
61.
                End If 
62.
            Catch ex As Exception 
63.
                Throw New Exception(ex.Message.ToString()) 
64.
            End Try 
65.
            Return Result 
66.
        End Function 
67.
    End Class 
68.
 
69.
 
70.
    ' Initialisierung 
71.
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) _ 
72.
            Handles MyBase.Load 
73.
        With Me 
74.
            .CenterToScreen() 
75.
            .Text = "Auf Soundkarte pruefen" 
76.
            With Me.Button1 
77.
                .Text = "Test" 
78.
            End With 
79.
        End With 
80.
    End Sub 
81.
 
82.
    ' Funktionsauswertung 
83.
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ 
84.
            Handles Button1.Click 
85.
        ListBox1.Items.Clear() 
86.
        Try 
87.
            'Ist eine Soundkarte im System vorhanden?... 
88.
            Dim IstInstalliert As Boolean = DirectX_SoundkarteInstalliert.SoundkarteInstalliert() 
89.
            Select Case IstInstalliert 
90.
                '...wenn ja ... 
91.
                Case True 
92.
                    '... wird versucht eine Liste der vorhandenen Geraete anzulegen... 
93.
                    Dim List As New List(Of String)(GetSoundDevices.DeviceList()) 
94.
                    '... enthaelt die Liste Daten?... dann ... 
95.
                    If List IsNot Nothing Then 
96.
                        '... wird die Liste in einer Schleife durchlaufen und das Ergebnis 
97.
                        'in einer ComboBox aufgelistet 
98.
                        For Each Devices As String In List 
99.
                            'Me.ComboBox1.Items.Add(Devices) 
100.
                            Me.ListBox1.Items.Add(Devices) 
101.
                        Next 
102.
                        If Me.ListBox1.Items.Count > 0 Then 
103.
                            'Erstes Item in der ComboBox selektieren 
104.
                            Me.ListBox1.SelectedIndex = 1 
105.
                        End If 
106.
                    End If 
107.
                Case Else 
108.
                    '... wenn keine Soundkarte gefunden werden konnte : 
109.
                    MessageBox.Show("Es ist keine Soundkarte installiert!", "Info") 
110.
            End Select 
111.
            'Eventuell auftretenden Fehler abfangen. 
112.
        Catch ex As Exception 
113.
            Throw New Exception(ex.Message.ToString()) 
114.
        End Try 
115.
    End Sub 
116.
 
117.
End Class 
118.
 
Ihr müsst mir nicht unbedingt den code schreiben, aber Hinweise, wie ich das hinbekommen könnte wären echt cool.
Vielen Dank im voraus.

Mit freundlichen Grüßen,


Sudden
Mitglied: colinardo
31.03.2014, aktualisiert um 13:55 Uhr
-edit- unter Windows 7 scheint das ganze nicht mehr so richtig zu funktionieren, deshalb die Empfehlung der Nutzung diese Tools zum setzen des Output-Devices:
http://www.administrator.de/contentid/233286#comment-912669

Grüße Uwe
Bitte warten ..
Mitglied: Sudden
31.03.2014 um 12:33 Uhr
Hi Uwe,

hast du wirklich? Dann Sorry. Habs wahrscheinlich überlesen. Sorry.

Ich werde das ausprobieren und berichten.

Vielen Dank nochmal.

Mit freundlichen Grüßen,

Sudden
Bitte warten ..
Mitglied: Sudden
31.03.2014 um 12:35 Uhr
Achja, nochwas. Wenn ich mein Programm öffne steht als erstes in der Liste "Primärer Soundtreiber" kann ich das irgendwie wegbekommen?
Bitte warten ..
Mitglied: colinardo
31.03.2014, aktualisiert um 12:40 Uhr
Zitat von Sudden:
Achja, nochwas. Wenn ich mein Programm öffne steht als erstes in der Liste "Primärer Soundtreiber" kann ich
das irgendwie wegbekommen?
indem du es nicht zu deiner Liste hinzufügst (bzw. es aus deiner Liste entfernst)...
Bitte warten ..
Mitglied: Sudden
01.04.2014 um 13:42 Uhr
Ich finde den .NET code nicht auf dieser seite.und die sln in der zip ann ich mit meinem Visual Studio 2008 leider nicht öffnen.
Bitte warten ..
Mitglied: colinardo
01.04.2014, aktualisiert um 13:47 Uhr
Zitat von Sudden:
Ich finde den .NET code nicht auf dieser seite.und die sln in der zip ann ich mit meinem Visual Studio 2008 leider nicht
öffnen.
Nimm die fertige EndPointController.exe aus dem ZIP-File. Zur Info: Das ist ein C++ Codeproject ...
Bitte warten ..
Mitglied: Sudden
01.04.2014 um 13:52 Uhr
Nimm die fertige EndPointController.exe aus dem ZIP-File. Zur Info: Das ist ein C++ Codeproject ...

Ich verstehe nicht was ich damit machen soll.
Bitte warten ..
Mitglied: colinardo
01.04.2014, aktualisiert um 13:57 Uhr
Zitat von Sudden:

> Nimm die fertige EndPointController.exe aus dem ZIP-File. Zur Info: Das ist ein C++ Codeproject ...

Ich verstehe nicht was ich damit machen soll.
steht doch oben in meinem Link...http://www.administrator.de/contentid/233286#comment-912669
Zum Umschalten des Outputs führst du die EndpointController.exe mit einer Nummer als Parameter aus welches Device du aktivieren willst...
(das ganze z.B. mit Process.Start)
Bitte warten ..
Mitglied: Sudden
01.04.2014 um 14:18 Uhr
Ahhh, perfect. jezz hab ichs gechekt. und diese controller exe kann ich dann in mein programm einbauen?
Bitte warten ..
Mitglied: colinardo
01.04.2014, aktualisiert um 14:24 Uhr
Zitat von Sudden:

Ahhh, perfect. jezz hab ichs gechekt. und diese controller exe kann ich dann in mein programm einbauen?
einfach mit ins Programmverzeichnis kopieren und von dort aus ausführen lassen ...
Bitte warten ..
Mitglied: Sudden
01.04.2014 um 14:29 Uhr
Okay, soweit hab ich das verstanden. Aber wenn ich jezz mein Programm starte, bekomme ich die Devices aufgelistet. wenn ich jetzt sagen wir mal Device 2 anklicke... wie kann ich das dann machen dass der EndPointController durch diesen Klick mir das passende Device auswählt. also ich meine wie lautet dann der Befehl?
Bitte warten ..
Mitglied: colinardo
01.04.2014, aktualisiert um 14:50 Uhr
dir muss man aber alles auf dem Silbertablett servieren ...
process.start("pfadzurEndpointController.exe","2")
Die Reihenfolge der Devices müsste die selbe sein.. Anstatt der hier hardgecodeten 2 nimmst du dann den entsprechenden Index der Combobox.
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
Variable setzen können während timeout (3)

Frage von DontFlameMeITryMyBest zum Thema Batch & Shell ...

Exchange Server
Powershell Abwesenheitsnotiz für Gruppe setzen (3)

Frage von 124611 zum Thema Exchange Server ...

Batch & Shell
gelöst Powershell: Lokaler DTC Eigenschaften setzen? (2)

Frage von Andoreasu zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (22)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...