i know this topic has been discussed here before but i still can't get it to work. i just need to get the current volume in my machine (i'll start there and i guess expanding the functionality of my project will be easier after) using the win 7 SDK and without using code from published projects like this. should i add a particular reference to my project? use dllimport? any help would be appreciated
2 Answers
Maybe with this : http://msdn.microsoft.com/en-us/library/ms679138%28VS.85%29.aspx (ISimpleAudioVolume Interface)
--EDIT --
This project seems to contain what you are searching for.
http://hintdesk.com/Web/Source/Adjust%20System%20Volume.zip
If not, you can go look here : Get Master Sound Volume in c#
or here : http://social.msdn.microsoft.com/Forums/en-US/isvvba/thread/05dc2d35-1d45-4837-8e16-562ee919da85
But the best code I found about this always return to the link you gave in your question. Good Luck!
--Edit2--
Or you can use FMOD (c++) with the help of this : Using FMOD for C#?
and this : http://sourceforge.net/projects/fmodnet/
-
thanks, but how do i reference to this interface from my c# code? i've read this article and found no clue about how to use it – Yoav Jun 05 '12 at 19:43
-
Or you can try this question : http://stackoverflow.com/questions/4629816/get-master-volume-in-windows-xp-vista-seven-the-one-increased-through-keyboard – LolCat Jun 05 '12 at 19:52
-
could you please explain how to use this in my c# code? 'HRESULT' is giving me an exception and i know that unmanaged code can be used in .net but is this the case? – Yoav Jun 05 '12 at 20:03
-
Sorry, After more researches, I found out this was c++ code ... I edited my post. – LolCat Jun 06 '12 at 12:53
Using the Core Audio APIs the following class will allow you to get and set the volume of the default audio endpoint for playback.
using CoreAudioApi;
public class SystemVolumeConfigurator
{
private readonly MMDeviceEnumerator _deviceEnumerator = new MMDeviceEnumerator();
private readonly MMDevice _playbackDevice;
public SystemVolumeConfigurator()
{
_playbackDevice = _deviceEnumerator.GetDefaultAudioEndpoint(EDataFlow.eRender, ERole.eMultimedia);
}
public int GetVolume()
{
return (int)(_playbackDevice.AudioEndpointVolume.MasterVolumeLevelScalar * 100);
}
public void SetVolume(int volumeLevel)
{
if (volumeLevel < 0 || volumeLevel > 100)
throw new ArgumentException("Volume must be between 0 and 100!");
_playbackDevice.AudioEndpointVolume.MasterVolumeLevelScalar = volumeLevel / 100.0f;
}
}

- 2,637
- 1
- 26
- 44