Пример #1
0
        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());
        }
Пример #2
0
        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);
        }
Пример #3
0
        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());
        }