Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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, 1186 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.

MfG,


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.

MfG,

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 ..
Ähnliche Inhalte
Bibliotheken & Toolkits
Gesucht: Open Source bzw. Kostengünstige PDF SDK für Softwareentwicklung (7)

Frage von JanGarbers zum Thema Bibliotheken & Toolkits ...

Windows Server
gelöst AD Userpasswörter setzen (11)

Frage von WPFORGE zum Thema Windows Server ...

Windows Server
gelöst Alias für DFS-Namespace setzen (3)

Frage von hagenharry zum Thema Windows Server ...

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

Frage von 121747 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Humor (lol)

Taschenrechner in IOS kaputt!

(5)

Information von Lochkartenstanzer zum Thema Humor (lol) ...

Sicherheit

Kanadischer Geheimdienst veröffentlicht erstmals Sicherheitssoftware

(3)

Information von BassFishFox zum Thema Sicherheit ...

Virtualisierung

Docker Monitoring und Steuerung per "sen"

Tipp von Frank zum Thema Virtualisierung ...

Heiß diskutierte Inhalte
Windows 7
Abbruch bei Brennvorgang (19)

Frage von Simulant zum Thema Windows 7 ...

Router & Routing
Externe IP von innen erreichbar machen (16)

Frage von Windows10Gegner zum Thema Router & Routing ...

Firewall
WIndows 7 RDP Massen Angriff (14)

Frage von Motte990 zum Thema Firewall ...