№ 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: Today's spam: Want to know how the porn_stars get so big and hard?
Leave a Reply