Показать сообщение отдельно
  #3  
Старый 10.04.2016, 19:40
js roman1 js roman1 вне форума
Прохожий
 
Регистрация: 08.04.2016
Сообщения: 25
Версия Delphi: XE8
Репутация: 10
По умолчанию

Код:
procedure TForm1.Button3Click(Sender: TObject);
var
FFTFata:TFFTData;
mixer: HMIXER;
i:integer;
begin
 BASS_RecordInit(-1);
 rchan := BASS_RecordStart(11025,2,0,nil,0);
 mixerOpen(@mixer,0,handle,0,CALLBACK_WINDOW);
 mixerGetLineInfo(mixer,@FFTFata,MIXER_GETLINEINFOF_LINEID);
 //BASS_ChannelGetData(, @FFTFata, BASS_DATA_FFT512);
 Draw (pb1.Canvas.Handle, FFTFata, 0,-5);
end;

Процедура Draw
Код:
procedure TForm1.Draw(HWND : THandle; FFTData : TFFTData; X, Y : Integer);
var i, YPos : LongInt; YVal : Single;
begin
pb1.Canvas.Pen.Color := clBlack;
pb1.Canvas.Brush.Color := clBlack;
pb1.Canvas.Rectangle(0, 0, pb1.Width, pb1.Height);
for i := 1 to 5 do
begin
 YVal := Abs(FFTData[i]);
 YPos := trunc((YVal) * 500);
 if YPos > pb1.Height then YPos := pb1.Height;
 if YPos >= FFTPeacks[i] then FFTPeacks[i] := YPos
  else FFTPeacks[i] := FFTPeacks[i] - 1;
 if YPos >= FFTFallOff[i] then FFTFallOff[i] := YPos
  else FFTFallOff[i] := FFTFallOff[i] - 3;
 pb1.Canvas.Pen.Color := clYellow;
 pb1.Canvas.MoveTo(X + i*(3+1) , Y + pb1.Height - FFTPeacks[i]);
 pb1.Canvas.LineTo(X + i*(3+1) + 3, Y + pb1.Height - FFTPeacks[i]);
 pb1.Canvas.Pen.Color := clRed;
 pb1.Canvas.Brush.Color := clRed;
 pb1.Canvas.Rectangle(X + i*(3+1) , Y + pb1.Height - FFTFallOff[i], X + i*(3+1) + 3, Y + pb1.Height);
end;

end;
Админ: Для вставки кода существует специальный тег CODE, а цитата - соотв. используется для цитирования текста.

Invalid floating point operation
Я незнаю, может в bass.dll есть какой то определенный поток который отвечает за все звуки компьютера?
Ответить с цитированием