private void RefreshDefaultAudioEndPoint() { MMDeviceEnumerator DevEnum = new MMDeviceEnumerator(); device = DevEnum.GetDefaultAudioEndpoint(EDataFlow.eRender, ERole.eMultimedia); this.Title = device.FriendlyName.ToString(); LeftChannelVU.SetDeviceLabel(device.FriendlyName.ToString()); RightChannelVU.SetDeviceLabel(device.FriendlyName.ToString()); }
void timer_Tick(object sender, EventArgs e) { try { double value = device.AudioMeterInformation.PeakValues[0] * 100; if (left.Count == 10) { left.RemoveAt(0); } left.Add((float)value); double leftaverage = left.Average(); value = device.AudioMeterInformation.PeakValues[1] * 100; if (right.Count == 10) { right.RemoveAt(0); } right.Add((float)value); double rightaverage = right.Average(); if (leftaverage > rightaverage) { if (leftaverage > lblMax) { float interval; float max; interval = (float)Math.Ceiling(leftaverage / 4); max = interval * 4; lblMax = max; LeftChannelVU.MoveMaxNeddle((lblMax)); } } else { if (rightaverage > lblMax) { float interval; float max; interval = (float)Math.Ceiling(rightaverage / 4); max = interval * 4; lblMax = max; RightChannelVU.MoveMaxNeddle((lblMax)); } } LeftChannelValue = (float)(leftaverage / (lblMax / 100)); RightChannelValue = (float)(rightaverage / (lblMax / 100)); } catch { LeftChannelValue = 0; RightChannelValue = 0; } LeftChannelVU.MoveVolumeNeddle(LeftChannelValue); RightChannelVU.MoveVolumeNeddle(RightChannelValue); }
private void Window_Loaded(object sender, RoutedEventArgs e) { LeftChannelValue = 0; RightChannelValue = 0; MMDeviceEnumerator DevEnum = new MMDeviceEnumerator(); device = DevEnum.GetDefaultAudioEndpoint(EDataFlow.eRender, ERole.eMultimedia); this.Title = device.FriendlyName.ToString(); DispatcherTimer timer = new DispatcherTimer(); timer.Interval = TimeSpan.FromMilliseconds(15); timer.Tick += timer_Tick; timer.Start(); LeftChannelVU.SetChannelLabel("Left Channel"); RightChannelVU.SetChannelLabel("Right Channel"); LeftChannelVU.SetDeviceLabel(device.FriendlyName.ToString()); RightChannelVU.SetDeviceLabel(device.FriendlyName.ToString()); }