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

Тема в разделе "Delphi - Multimedia, Графика, Игры", создана пользователем M@T$, 26 дек 2007.

Статус темы:
Закрыта.
  1. M@T$

    M@T$ Гость

    PODSKAZITE PLIZ FUNKCIJU DLJA IZMERENIJA PARAMETROV ZVUKOVOGO SIGNALA S AUDIOVHODA MIKROFONA ILI TV-TUNERA :blink:
     
  2. M@T$

    M@T$ Гость

    NI4EGO NE ZAPADALO, YA PROSTO NE MOGU POMENIATb YAZIK I PRIHODITCA IZVRASH4ATCA
     
  3. root

    root Гость

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

    M@T$ Гость

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

    root Гость

    Для: M@T$
    Задача какая ?
     
  6. M@T$

    M@T$ Гость

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

    Вот код который я нашёл.......
    Код (Text):
    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. Только быстрее плиз........
    Заранее благодарен
     
  7. root

    root Гость

    Для: M@T$
    Код (Text):
    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;
     
  8. M@T$

    M@T$ Гость

    Спасиб ща проверю...........
     
  9. M@T$

    M@T$ Гость

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


    ТВ-карту достать не получилось......
     
Загрузка...
Похожие Темы - Измерение звука
  1. Screamer
    Ответов:
    1
    Просмотров:
    1.331
  2. paxac
    Ответов:
    4
    Просмотров:
    37
  3. diod_
    Ответов:
    18
    Просмотров:
    3.027
  4. aelfa
    Ответов:
    0
    Просмотров:
    5.858
Статус темы:
Закрыта.

Поделиться этой страницей