Kaptain.
Telegram /
LinkedIn /
Email /
GIT /
RSS /
GPG /
Заказ печатных плат

№ 748 В разделе
Programming
от May 20th, 2008,
В подшивках: Delphi
Долгое время я делал различные велосипеды пока не понял, что можно было все сделать проще.
В этом нам поможет компонент TChart. Лепим его на форму, настраиваем как нравится. Далее открываем wav файл и тупо читаем с него данные в data чанке, делая вывод прямо в Chart1. Данный пример читает первые 2 килобайта и выводит эти данные в график, но подходит только для 8-ми битных моно файлов.
const
data_chunk_position= smallint(58);
...
...
procedure Tgraph_form.FormShow(Sender: TObject);
var
memstr:TMemoryStream;
buf:array [1..2048] of byte;
i:integer;
readed:integer;
begin
memstr:=TMemoryStream.Create;
memstr.LoadFromFile('wave\'+reabilit.id+'.wav');
memstr.Seek(data_chunk_position, soFromBeginning);
//очищаем график
Chart1.Series[0].Clear;
//читаем датачанк блоком по 2048
readed:=memstr.Read(buf,sizeof(buf));
//добавляем точки в график
i:=1;
repeat
Chart1.Series[0].Add(buf[i]);
inc(i)
until i>readed;
end;
Ниже пример отрисовки осциллограммы для любого PCM файла https://git.blindage.org/21h/draw-wave
Fortune cookie: Q: How can you tell if an elephant is sitting on your back in a hurricane? A: You can hear his ears flapping in the wind.
Leave a Reply