views:

1099

answers:

2

How to change the default default audio device for playback and recording in vista programatically ?

Is there any registry setting for it like sound manager in window XP?

Which API does it?

+4  A: 

There is no public API which allows you to change the default audio device, that is functionality that is considered to be under the users control. This has always been the case in Windows.

Having said that, if you search the web, there are a number of people who have reverse engineered the APIs that are used in Windows Vista to do this, but I'm not going to point you to them (the reverse engineered APIs are internal unsupported APIs and may change without notice from Microsoft). You use these solutions at your own peril.

Larry Osterman
+2  A: 

System Tray Audio Device Switcher uses "Software\Microsoft\Multimedia\Sound Mapper", "Playback" to set the index of the sound device which was obtained by enumeration the devices. mciSendCommand from "winmm.dll" is also used

In this source code you will find the registry keys used to achieve that.

If this doesn't work you could give Process Monitor a try and monitor all registry activities of windows when you change the default device. On my Vista installation the control panel twiddles with "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\MMDevices\Audio\Render\"

For Vista see http://www.vistaaudiochanger.com/

stacker