我知道这个话题之前已经在这里讨论过,但我仍然无法让它发挥作用。我只需要使用 win 7 SDK 获取我机器中的当前音量(我将从那里开始,我想扩展我的项目的功能会更容易),而不使用像这样的已发布项目的代码。我应该为我的项目添加一个特定的引用吗?使用dllimport?任何帮助,将不胜感激
问问题
8071 次
2 回答
4
也许这样: http: //msdn.microsoft.com/en-us/library/ms679138%28VS.85%29.aspx(ISimpleAudioVolume 接口)
- 编辑 -
该项目似乎包含您正在搜索的内容。
http://hintdesk.com/Web/Source/Adjust%20System%20Volume.zip
如果没有,你可以看这里:Get Master Sound Volume in c#
或在这里:http ://social.msdn.microsoft.com/Forums/en-US/isvvba/thread/05dc2d35-1d45-4837-8e16-562ee919da85
但是我发现的最好的代码总是返回到你在问题中给出的链接。祝你好运!
--编辑2--
或者您可以在此帮助下使用 FMOD (c++):Using FMOD for C#?
这:http: //sourceforge.net/projects/fmodnet/
于 2012-06-05T19:32:25.850 回答
0
使用核心音频 API,以下类将允许您获取和设置默认音频端点的音量以进行播放。
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;
}
}
于 2016-02-26T19:43:07.217 回答