Измерение звука

  • Автор темы M@T$
  • Дата начала
Статус
Закрыто для дальнейших ответов.
M

M@T$

PODSKAZITE PLIZ FUNKCIJU DLJA IZMERENIJA PARAMETROV ZVUKOVOGO SIGNALA S AUDIOVHODA MIKROFONA ILI TV-TUNERA :blink:
 
M

M@T$

NI4EGO NE ZAPADALO, YA PROSTO NE MOGU POMENIATb YAZIK I PRIHODITCA IZVRASH4ATCA
 
R

root

Для: M@T$
Multimedia System (в народе просто MMSystem)
подключается
Код:
uses MMSystem;
 
M

M@T$

А функции какие -нить.....................
 
M

M@T$

Задача в том чтобы измерять уровень входящего звукового сигнала с аудио карты или ТВ-тюнера и отслеживать изменение его параметров.............

Вот код который я нашёл.......
Код:
uses
MMSystem;

function GetLineInHandle(AudioType: Integer): Integer;
var
i: Integer;
AudioCaps: TAuxCaps;
begin
Result := 0;
for i := 0 to auxGetNumDevs - 1 do
begin
auxGetDevCaps(i, @AudioCaps, SizeOf(AudioCaps));
if AudioCaps.wTechnology = AudioType then
begin
Result := i;
Break;
end;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
v: DWORD;
begin
AuxGetVolume(GetLineInHandle(AUXCAPS_CDAUDIO), @v);
Edit1.Text := IntToStr(LoWord(v));
Edit2.Text := IntToStr(HiWord(v));
end;

procedure TForm1.Button2Click(Sender: TObject);
var
v: DWORD;
begin
v := MakeLong(Word(StrToInt(Edit1.Text)),
Word(StrToInt(Edit2.Text)));
AuxSetVolume(GetLineInHandle(AUXCAPS_CDAUDIO), v);
end;

procedure TForm1.Button3Click(Sender: TObject);
var
v: DWORD;
begin
AuxGetVolume(GetLineInHandle(AUXCAPS_AUXIN), @v);
Edit3.Text := IntToStr(LoWord(v));
Edit4.Text := IntToStr(HiWord(v));
end;

procedure TForm1.Button4Click(Sender: TObject);
var
v: DWORD;
begin
v := MakeLong(Word(StrToInt(Edit3.Text)),
Word(StrToInt(Edit4.Text)));
AuxSetVolume(GetLineInHandle(AUXCAPS_AUXIN), v);
end;




вроде ничего сложного, но он по-моему не работает........
помогите в нём разобраться.....
есть ли более оптимальные альтернативы..............




P.S. Только быстрее плиз........
Заранее благодарен
 
R

root

Для: M@T$
Код:
procedure TForm1.FormCreate(Sender: TObject);
var
i: integer;
cap: TWaveInCaps;
begin
for i := 0 to waveInGetNumDevs do
begin
waveInGetDevCaps(i, Addr(cap), SizeOf(cap));
ListBox1.Items.Add(cap.szPname )
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
vol: longint;
ll, lr: integer;
begin
waveOutGetVolume( ListBox1.ItemIndex, @Vol);
ll:= (vol shr 16) +1000;
lr:= ((Vol shl 16) shr 16)+1000;
waveOutSetVolume (ListBox1.ItemIndex,ll shl 16 + lr );
end;
 
M

M@T$

На какое устройство рассчитано...........
На линеёный вход аудиокарты?
Я проверяю так: подключился через линейный вход аудиокарты видиком и просматриваю кассеты......
Звук с него выдаёт нормально.......
Но вот чего-то ничего не выносит в ListBox


ТВ-карту достать не получилось......
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!