c# 控制音量大小 CoreAudioApi
来源:互联网 发布:2015网络新词及意思 编辑:程序博客网 时间:2024/04/30 04:37
为了方便客户使用,在系统首页面用户可以设置系统音量,本来感觉应该很简单的事情,但是在网上搜索了大量的解决方法。在自己的电脑上都起不了作用。最多的还是调用微软的系统API. 代码基本上就是第一种方式 测试了下 根本无法设置音量也无法获取当前音量大小
[DllImport("winmm.dll")] public static extern long waveOutSetVolume(UInt32 deviceID, UInt32 Volume); [DllImport("winmm.dll")] public static extern long waveOutGetVolume(UInt32 deviceID, out UInt32 Volume);
第二种方式 可以设置音量增加或者减小 但是无法统当前音量 没找到对应的API
/// <summary> /// 改变系统音量大小,增加 /// </summary> public void VolumeUp() { keybd_event(VK_VOLUME_UP, MapVirtualKey(VK_VOLUME_UP, 0), KEYEVENTF_EXTENDEDKEY, 0); keybd_event(VK_VOLUME_UP, MapVirtualKey(VK_VOLUME_UP, 0), KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0); } ///<summary> /// 改变系统音量大小,减小 /// </summary> public void VolumeDown() { keybd_event(VK_VOLUME_DOWN, MapVirtualKey(VK_VOLUME_DOWN, 0), KEYEVENTF_EXTENDEDKEY, 0); keybd_event(VK_VOLUME_DOWN, MapVirtualKey(VK_VOLUME_DOWN, 0), KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0); }
最后从网上找到了另一种方式 通过CoreAudioApi 通过测试确实能用。
CoreAudioApi.MMDeviceEnumerator devices = new MMDeviceEnumerator(); MMDevice device = devices.GetDefaultAudioEndpoint(EDataFlow.eRender, ERole.eMultimedia); device.AudioEndpointVolume.MasterVolumeLevel = trackBar1.Value;//(直接设置音量 也可以调用方法设置音量增加减少) trackBar1.Value = (int)device.AudioEndpointVolume.MasterVolumeLevel;//(获取当前音量并且通过trackBar1显示)
希望各位提供自己更好的解决方式。
0 0
- c# 控制音量大小 CoreAudioApi
- C# 控制音量大小
- 音量大小控制
- linux 控制音量大小
- SoundPool控制音量大小
- 控制音量大小widget
- 控制音量的大小
- c# Winform 获取麦克风音量 控制麦克风音量大小 (自用笔记未测试)
- c#音量控制
- c#里音量控制
- c#里音量控制
- C# 控制PPC音量
- C#控制音量
- C# 按钮控制windows音量
- C#控制音量、实现摄像头
- C# 控制音量 (滚动条形式)
- C#控制音量、实现摄像头(荐)
- C#程序中如何控制播放音量的大小
- java垃圾回收机制
- Android studio 编译错误
- spring web mvc访问不了WEB-INF下静态资源解决方案
- jdbc3
- 采用开源ratchet 实现京东移动前端的分类页面
- c# 控制音量大小 CoreAudioApi
- Fedora21系统配置
- Java面试题全集(中)
- 画饼状图(pie)
- Config windows Service Name in App.config
- getOutputStream() has already been called for this response
- 安装完VirtualBox后 VMWare里的Ubuntu系统无法连接网络
- LVDS协议及原理分析
- Storm_Storm报错 Received invalid messages for unknown tasks. Dropping...