Единственное, что удалось найти это компонент на Дельфи (с исходным кодом) на https://www.torry.net/mixer.htm компонент называется Vumeter v.1.0. Я его не разбирал, но похоже что он опрашивает Audio Mixer Driver (или что-то подобное). 

Автор: Vit (www.delphist.com, www.drkb.ru, www.unihighlighter.com, www.nevzorov.org)

Взято с Vingrad.ru https://forum.vingrad.ru

 

Я построил диаграмму так:

 

Назначил F:= TFileStream.Create(OpenDialog1.FileName, fmOpenRead );

Затем считал заголовок Wav- SampleCount, SamplesPerSec, BitsPerSample, Channeles.

Затем считал данные- GetMem(buf, SampleCount * Channeles * BitsPerSample);

Описал массив Volume- SetLength(Volume, SampleCount);

Затем - F.Read(buf^, SampleCount*2); F.Free;

Затем заполнил массив -

Code:

buf16 := buf;

for h := 0 to SampleCount - 1 do

begin

   Volume[h] := abs(buf16^);

   inc(buf16);

end;

FreeMem(buf);

  

Затем строил график(в экранных координатах) - по горизонтальной оси откладывал значения SampleCount, по вертикальной значения Volume[h].

График получается точно такой же как в SoundForge.

Единственно, я писал программу для конкретного случая - у меня файлы по 10 минут, моно, 11025 Гц., 16 бит. Так что программа у меня не универсальная. Но работает нормально. По времени: обработка файла и построение графика около 4 -5 секунд.

Автор ответа: TPavel

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить