繁体   English   中英

Windows 7 C#中的音量控制

[英]volume control in windows 7 c#

我知道这个话题已经在这里讨论过了,但是我仍然无法使它起作用。 我只需要得到在我的机器当前的音量(我会从那里开始,我想我的扩展项目的功能会更容易后),使用Win 7的SDK,并且不使用代码等公布项目这样 我应该为我的项目添加特定的参考吗? 使用dllimport吗? 任何帮助,将不胜感激

也许与此: http : //msdn.microsoft.com/en-us/library/ms679138%28VS.85%29.aspx (ISimpleAudioVolume接口)

-编辑-

该项目似乎包含您要搜索的内容。

http://hintdesk.com/Web/Source/Adjust%20System%20Volume.zip

如果没有,您可以转到此处: 在c#中获取主音量

或这里: http : //social.msdn.microsoft.com/Forums/en-US/isvvba/thread/05dc2d35-1d45-4837-8e16-562ee919da85

但是我找到的关于此的最佳代码始终返回到您在问题中提供的链接。 祝好运!

--Edit2--

或者,您可以在以下帮助下使用FMOD(c ++): 对C#使用FMOD?
这是: http : //sourceforge.net/projects/fmodnet/

使用Core Audio 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;
        }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM