作者: wtujoxk
查看: 3142|回复: 4
打印 上一主题 下一主题

[源码] 【系统音量监控】CoreAudio 系统音量设置工具

[复制链接]
跳转到指定楼层
楼主
wtujoxk 发表于 2014-12-16 09:53:26 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
查看: 3142|回复: 4
说明:
CoreAudio 系统音量设置工具
适用于NT6系统

效果图:


部分代码:
[C#] 纯文本查看 复制代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using CoreAudioApi;

namespace CoreAudioSample
{
    public partial class Form1 : Form
    {
        private MMDevice device;

        public Form1()
        {
            InitializeComponent();
            MMDeviceEnumerator DevEnum = new MMDeviceEnumerator();
            device = DevEnum.GetDefaultAudioEndpoint(EDataFlow.eRender, ERole.eMultimedia);
            tbMaster.Value = (int)(device.AudioEndpointVolume.MasterVolumeLevelScalar * 100);
            device.AudioEndpointVolume.OnVolumeNotification += new AudioEndpointVolumeNotificationDelegate(AudioEndpointVolume_OnVolumeNotification);
            timer1.Enabled = true;
        }

        void AudioEndpointVolume_OnVolumeNotification(AudioVolumeNotificationData data)
        {
            if (this.InvokeRequired)
            {
                object[] Params = new object[1];
                Params[0] = data;
                this.Invoke(new AudioEndpointVolumeNotificationDelegate(AudioEndpointVolume_OnVolumeNotification), Params);
            }
            else
            {
                tbMaster.Value = (int)(data.MasterVolume * 100);
            }
        }

        private void tbMaster_Scroll(object sender, EventArgs e)
        {
            device.AudioEndpointVolume.MasterVolumeLevelScalar = ((float)tbMaster.Value / 100.0f);
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            pkMaster.Value = (int)(device.AudioMeterInformation.MasterPeakValue * 100);
            pkLeft.Value = (int)(device.AudioMeterInformation.PeakValues[0]*100);
            pkRight.Value = (int)(device.AudioMeterInformation.PeakValues[1]* 100);
        }

        
    }
}


案例源码下载:

评分

参与人数 1金钱 +3 收起 理由
乔克斯 + 3 感谢LZ对论坛做出的贡献~

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 转播转播
回复 论坛版权

使用道具 举报

沙发
乔克斯 发表于 2014-12-16 10:14:20 | 只看该作者
看上去不错的样子~加油加油
板凳
辰晓晨 发表于 2014-12-17 09:01:16 | 只看该作者
看上去不错
地板
214679 发表于 2018-10-10 09:18:51 | 只看该作者
好東西,謝謝樓主的分享!!
5#
214679 发表于 2018-10-11 09:22:34 | 只看该作者
支持和學習下
您需要登录后才可以回帖 登录 | 加入CSkin博客

本版积分规则

QQ|申请友链|小黑屋|手机版|Archiver|CSkin ( 粤ICP备13070794号

Powered by Discuz! X3.2  © 2001-2013 Comsenz Inc.  Designed by ARTERY.cn
GMT+8, 2024-11-16 12:03, Processed in 0.669061 second(s), 32 queries , Gzip On.

快速回复 返回顶部 返回列表