private void UpdateWaveForm() { if (soundPlayer == null || RenderSize.Width < 1 || RenderSize.Height < 1 || !soundPlayer.IsPlaying) { _visualTimer.Stop(); return; } if (soundPlayer.IsPlaying && !soundPlayer.GetChannelData(out channelData, _datalength)) { _visualTimer.Stop(); return; } if (Visibility == Visibility.Collapsed) { _visualTimer.Stop(); return; } PolyLine.Points.Clear(); int points = 100; int step = channelData.Length / points; double xscale = ActualWidth / channelData.Length; for (int i = 1; i < channelData.Length; i += step) { double x = i * xscale; double y = Map(channelData[i], 0.0d, ActualHeight) * 0.95; PolyLine.Points.Add(new Point(x, y)); } }
private void UpdateWaveForm() { if (soundPlayer == null || RenderSize.Width < 1 || RenderSize.Height < 1 || !soundPlayer.IsPlaying) { _visualTimer.Stop(); return; } if (soundPlayer.IsPlaying && !soundPlayer.GetChannelData(out channelData, _datalength)) { _visualTimer.Stop(); return; } if (Visibility == Visibility.Collapsed) { _visualTimer.Stop(); return; } CircleVis.WaveData = channelData; }