windows - Hvordan finder jeg standard lydenheden i Visual Basic .NET?

Indlæg af Hanne Mølgaard Plasc

Problem



Dette skal kunne fungere for de sidste to eller tre Windows-versioner (7, Vista, og sandsynligvis XP). I Visual Basic .NET, hvordan kan jeg finde standard lydenhed (jeg leder efter højttalere og ting, ikke mics). Tak!


EDIT: Guys, jeg går virkelig i ukendt område her. Det ser ud til, at hver gang jeg forsøger at bruge en kodeprøve, er der opbyggede fejl, der ikke kunne være mere kryptiske og involvere fejlene inden for biblioteker og alle slags ting sådan. Er der noget for en total begynder at lære at gøre dette? Tak!

Bedste reference


Der er et par lyd-API'er i Windows, og alle tilbyder en enhedsopgørelse. Den nylige 'main' API er kun Vista +, så du skal beslutte, om XP-support er vigtig.


Vista + opregning: Opregner lydenheder [2]


Kode godt for alle Windows-versioner: Prøve: hvordan man opregner waveIn og waveOut-enheder på dit system [3]


Det er C ++ kode links ovenfor, i VB.NET skal du bruge P/Invoke-opkald eller et indpakningsbibliotek, som f.eks. NAudio for at tage sig af indre detaljer. [4]

Andre referencer 1


Nogle lyd-API'er (winMM, DirectSound, DirectShow, Media Foundation, WASAPI) giver dig mulighed for at opsummere enheder, men tilbyde en standard; nogle (Beep, PlaySound) tillader kun afspilning via standardenheden.


Den enkleste API til at begynde med er PlaySound (godt undtagen måske Beep, men det har begrænset brug.) Hvad forsøger du at spille? Det vil hjælpe med at bestemme valget af API'en, der skal bruges.