# VU meter and Waveform painter

Video Capture SDK .Net , Video Edit SDK .Net , Media Player SDK .Net

# WinForms sample

# WinForms VU meter

  1. Add the "VisioForge.Core.UI.WinForms.VolumeMeterPro.VolumeMeter" control to the form. For stereo, you can add a second control.

  2. Set the Audio_VUMeterPro_Enabled property to true before the Start/Play method call.

  3. Add the OnAudioVUMeterProVolume event handle in your MediaPlayer or VideoCapture control instance.

private void VideoCapture1_OnAudioVUMeterProVolume(object sender, AudioLevelEventArgs e)
{
    volumeMeter1.Amplitude = e.ChannelLevelsDb[0];
    if (e.ChannelLevelsDb.Length > 1)
    {
        volumeMeter2.Amplitude = e.ChannelLevelsDb[1];
    }
}

# WinForms Waveform painter

  1. Add the "VisioForge.Core.UI.WinForms.VolumeMeterPro.WaveformPainter" control to the form. For stereo, you can add a second control.

  2. Set the Audio_VUMeter_Pro_Enabled property to true before the Start/Play method call.

  3. Add the OnAudioVUMeterProVolume event handle in your MediaPlayer or VideoCapture control instance.

private void VideoCapture1_OnAudioVUMeterProVolume(object sender, AudioLevelEventArgs e)
{
    waveformPainter1.AddMax(e.ChannelLevelsDb[0]);
    if (e.ChannelLevelsDb.Length > 1)
    {
        waveformPainter2.AddMax(e.ChannelLevelsDb[1]);
    }
}

# WPF sample

# WPF VU meter

  1. Add the "VisioForge.Controls.UI.WPF.VolumeMeterPro.VolumeMeter" control to the form. For stereo, you can add a second control.

  2. Set the Audio_VUMeter_Pro_Enabled property to true before the Start/Play method call.

VideoCapture1.Audio_VUMeter_Pro_Enabled = true;

volumeMeter1.Start();
volumeMeter2.Start();
  1. Add the OnAudioVUMeterProVolume event handle in your MediaPlayer or VideoCapture control instance.
private delegate void AudioVUMeterProVolumeDelegate(AudioLevelEventArgs e);

private void AudioVUMeterProVolumeDelegateMethod(AudioLevelEventArgs e)
{
    volumeMeter1.Amplitude = e.ChannelLevelsDb[0];
    volumeMeter1.Update();

    if (e.ChannelLevelsDb.Length > 1)
    {
        volumeMeter2.Amplitude = e.ChannelLevelsDb[1];
        volumeMeter2.Update();
    }
}

private void VideoCapture1_OnAudioVUMeterProVolume(object sender, AudioLevelEventArgs e)
{
    Dispatcher.BeginInvoke(new AudioVUMeterProVolumeDelegate(AudioVUMeterProVolumeDelegateMethod), e);
}
  1. After stopping playback, stop the volume meters
volumeMeter1.Stop();
volumeMeter1.Clear();

volumeMeter2.Stop();
volumeMeter2.Clear();

# WPF Waveform painter

  1. Add the "VisioForge.Core.UI.WPF.VolumeMeterPro.WaveformPainter" control to the form. For stereo, you can add a second control.

  2. Set the Audio_VUMeter_Pro_Enabled property to true before the Start/Play method call.

VideoCapture1.Audio_VUMeter_Pro_Enabled = true;
waveformPainter.Start();
  1. Add the OnAudioVUMeterProMaximumCalculated event handle in your MediaPlayerCore or VideoCaptureCore instance.
private delegate void AudioVUMeterProMaximumCalculatedDelegate(VUMeterMaxSampleEventArgs e);

private void AudioVUMeterProMaximumCalculatedelegateMethod(VUMeterMaxSampleEventArgs e)
{
    waveformPainter.AddValue(e.MaxSample, e.MinSample);
}

private void VideoCapture1_OnAudioVUMeterProMaximumCalculated(object sender, VUMeterMaxSampleEventArgs e)
{
    Dispatcher.BeginInvoke(new AudioVUMeterProMaximumCalculatedDelegate(AudioVUMeterProMaximumCalculatedelegateMethod), e);
}
  1. After stopping playback, stop the volume meters
waveformPainter.Stop();
waveformPainter.Clear();

# Required redists

  • SDK redist

Visit our GitHub page to get more code samples.