Цитата:
Сообщение от poli-smen
Ты же пытаешься читать сэмплы в том месте где должен читаться чанк "fmt". Читать нужно когда уже найден чанк "data" - в твоём коде это перед словом Exception:
Код:
until String(ID)='data';
<-- Вот тут
Except
Result.ERROR := ReadError;
end;
|
Теперь вроде бы получилось! Только сколько сэмплов надо читать? Их там что, бесконечно? И можно ли как-то сделать все одной строчкой, чтобы не писать:
Код:
Sample0 : WORD;
Sample1 : WORD;
Sample2 : WORD;
Sample3 : WORD;
Sample4 : WORD;
Sample5 : WORD;
Sample6 : WORD;
Sample7 : WORD;
Sample8 : WORD;
А потом еще и:
Код:
f.ReadBuffer(Header, Min(wChankSize, SizeOf(TWaveHeaderChank)));
Form1.memo1.Lines.Add('' + intToStr(Header.Sample0));
Form1.memo1.Lines.Add('' + intToStr(Header.Sample1));
Form1.memo1.Lines.Add('' + intToStr(Header.Sample2));
Form1.memo1.Lines.Add('' + intToStr(Header.Sample3));
Form1.memo1.Lines.Add('' + intToStr(Header.Sample4));
Form1.memo1.Lines.Add('' + intToStr(Header.Sample5));
Form1.memo1.Lines.Add('' + intToStr(Header.Sample6));
Form1.memo1.Lines.Add('' + intToStr(Header.Sample7));
Form1.memo1.Lines.Add('' + intToStr(Header.Sample8));
И верны ли эти цифры? Содержаться ли они в wav'е или это просто от фонаря как то?
Вот программа: