Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Измерение звука
Форум программистов > Системное программирование > Delphi и Pascal > Delphi - Multimedia, Графика, Игры
M@T$
PODSKAZITE PLIZ FUNKCIJU DLJA IZMERENIJA PARAMETROV ZVUKOVOGO SIGNALA S AUDIOVHODA MIKROFONA ILI TV-TUNERA blink.gif
sax_ol
Для: M@T$
У вас Shift запал, почистите клавиатуру.
M@T$
NI4EGO NE ZAPADALO, YA PROSTO NE MOGU POMENIATb YAZIK I PRIHODITCA IZVRASH4ATCA
root
Для: M@T$
Multimedia System (в народе просто MMSystem)
подключается
uses MMSystem;
M@T$
А функции какие -нить.....................
root
Для: M@T$
Задача какая ?
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. Только быстрее плиз........
Заранее благодарен
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@T$
Спасиб ща проверю...........
M@T$
На какое устройство рассчитано...........
На линеёный вход аудиокарты?
Я проверяю так: подключился через линейный вход аудиокарты видиком и просматриваю кассеты......
Звук с него выдаёт нормально.......
Но вот чего-то ничего не выносит в ListBox


ТВ-карту достать не получилось......
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2008 IPS, Inc.