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

Цитата:
Сообщение от Dmitry_DM
Можно по-подробнее?
Код:
    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;

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