Есть следующий код который запускается через функцию Goto();
static void Goto(int devicen)
{
var waveIn = new WaveInEvent();
waveIn.DeviceNumber = devicen;
Console.WriteLine(WaveIn.GetCapabilities(0).ProductName);
waveIn.DataAvailable += WaveOnDataAvailable;
waveIn.WaveFormat = new WaveFormat(8000, 1);
waveIn.StartRecording();
Console.ReadLine();
}
private static void WaveOnDataAvailable(object sender, WaveInEventArgs e)
{
for (int index = 0; index < e.BytesRecorded; index += 2)
{
short sample = (short)((e.Buffer[index + 1] << 8) | e.Buffer[index + 0]);
float amplitude = sample / 32768f;
float level = Math.Abs(amplitude); // от 0 до 1
Console.WriteLine("Уровень: {0}%.", level * 100);
// Тут
}
}
И мне нужно сделать так что бы ProgressBar.Value устанавливался на level*100 тк это происходит по средствам public функций разницы нет, но из static нельзя взаимодействовать с ни с чем кроме неё самой :(