问题描述
我使用NAudio库在计时器经过的事件中从麦克风捕获声音电平,为此,我使用以下代码:
public Form1()
{
InitializeComponent();
MMDeviceEnumerator enumerator = new MMDeviceEnumerator();
var devices = enumerator.EnumerateAudioEndPoints(DataFlow.All,DeviceState.Active);
comboBox1.Items.AddRange(devices.ToArray());
}
private void Form1_Load(object sender,EventArgs e)
{
aTimer = new System.Timers.Timer();
aTimer.Interval = 50;
aTimer.Elapsed += TickEvent;
aTimer.AutoReset = true;
aTimer.Enabled = true;
}
private void TickEvent(Object source,ElapsedEventArgs e)
{
if (comboBox1.SelectedItem != null)
{
var device = (MMDevice)comboBox1.SelectedItem;
value = device.AudioMeterinformation.MasterPeakValue * 100;
chart1.Series[0].Points.AddXY(time,value);
}
此代码昨天运行良好,我没有对其进行修改。但是今天仅适用于耳机。每次读取MasterPeakValue
时,Value
等于0。有人可以帮我吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)