Показать сообщение отдельно
  #29  
Старый 20.08.2012, 13:24
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Dmitry_DM
Пока что у меня проблемы с записью данных в memo1. Можете посмотреть на код и сказать что сделать, что бы данные шли в своем порядке. А то ни как не могу сделать красиво и ровно. должно быть так:
Код:
RIFF
chunkSize 2194
WAVE
fmt 
subchunk1Size 16
audioFormat 1
numChannels 1
sampleRate 22050
byteRate 44100
blockAlign 2
bitsPerSample 16
data
subchunk2Size 2158
А оно все так:
Код:
RIFF
WAVE
fmt 
16
data
2158
audioFormat 0001
numChannels 1
sampleRate 22050
byteRate 44100
blockAlign 2
bitsPerSample 16
В приведённом коде я вообще не вижу где идёт вывод в Memo1 кроме этих двух строчек:
Код:
    Form1.memo1.Lines.Add(RiffChunk.RiffSign);
    Form1.memo1.Lines.Add(RiffChunk.WaveSign);
И кроме того этим двум строчкам не место в процедуре ReadWavInfo, так как эта процедура абстрагирована от элементов управления. Выводить нужно в методе формы, например в ButtonClick. И Form1 в нём указывать не нужно.


Цитата:
Сообщение от Dmitry_DM
Так же отмечу, что не могу найти 2 значение chunkSize. Не вывести, не мне даже понять, в каком месте оно читается.
А зачем его выводить? В информационных целях чтоли?

Размер чанка 'RIFF' читается здесь:
Код:
    fs.ReadBuffer(RiffChunk, SizeOf(RiffChunk));
А размер внутренних чанков ('fmt ', 'data' и остальных если есть) читаются здесь:
Код:
fs.ReadBuffer(Chunk, SizeOf(Chunk));
Ответить с цитированием