如何使用C#在Windows 7中调整主音量?
我一直在使用WINMM.DLL看到一个很好的实现在这里,但它与XP和与Windows 7不工作.
我想将Windows的主音量绑定到程序中的滑块.所以我搜索并找到了一些方法GET或SET掌握了音量+一些像这样的库:
在某些地方,我看到一个带有LOOP的代码来获取音量值:循环
编辑:
现在我有以下课程.我创建了它的一个实例,并使用propertychange事件通过Trace.WriteLine显示音量.但是,当我更改Windows音量时,它会导致无错误的错误!
public class AudioEndpointVolumeEnforcer : INotifyPropertyChanged
{
private MMDeviceEnumerator mmDeviceEnumerator;
private MMDevice mmDevice;
private AudioEndpointVolume audioEndpointVolume;
private bool _deviceIsMuted;
private int _desiredVolume;
private int _volumePercent;
public AudioEndpointVolumeEnforcer()
{
try
{
mmDeviceEnumerator = new MMDeviceEnumerator();
mmDevice = mmDeviceEnumerator.GetDefaultAudioEndpoint(EDataFlow.eRender, ERole.eMultimedia);
audioEndpointVolume = mmDevice.AudioEndpointVolume;
audioEndpointVolume.OnVolumeNotification += data =>
{
VolumePercent = Convert.ToInt16(data.MasterVolume*100);
_deviceIsMuted = data.Muted;
};
DesiredVolume = 65;
}
catch (Exception ex)
{ …Run Code Online (Sandbox Code Playgroud)