Показать сообщение отдельно
  #12  
Старый 24.09.2012, 15:15
Dmitry_DM Dmitry_DM вне форума
Активный
 
Регистрация: 07.08.2012
Сообщения: 258
Версия Delphi: Delphi 7
Репутация: 11
По умолчанию

Цитата:
Сообщение от poli-smen
Код:
    for i := X1 to X2 do
    begin
      X := Trunc(KX * (i - X1));
      Y := aHeight - Trunc(KY * FWavInfo.Samples[Chanel, i] + DY);
         //^^^^^^^^^ - ВОТ ЭТО ДОБАВИТЬ
      if DrawWaveForm then
      begin
        if i = X1 then Can.MoveTo(X, Y) else Can.LineTo(X, Y);
      end else
      begin
        Can.Rectangle(X, DY, Trunc(KX * (i - X1 + 1)), Y);
      end;
    end;

BlockAlign вычисляется так:
Код:
Header.BlockAlign := Header.NumChannels * BytsPerSample;
Если звук двухканальный и двубайтный (т.е. 16-ти-битный), то как раз и получится 4 байта на сэмпл. А как можно вместить двухканальный двухбайтный сэмпл в 2 байта?
Все понятно. Спасибо большое за помощь!!!
Ответить с цитированием