Q&A

  • 사운드 카드의 Line In 볼륨제어를 어떻게 해야하는지???
안녕하세요. 한승구입니다.



사운드 카드의 Line In으로 들어오는 오디오의



볼륨 제어를 어떻게 해야 하는지 고수님의 현

명하신 고견을 삼가 부탁드립니다.



꾸벅꾸벅..

1  COMMENTS
  • Profile
    keisu 2000.02.10 11:12
    고순 아니지만 답해줄 순 있습니다. 버튼을 4개 만드시고. Edit를 4개 만드신 후 아래 소스를 써보세요.



    unit Unit1;



    interface



    uses

    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

    StdCtrls, MMSystem; // <-- MM SYSTEM 추가



    type

    TForm1 = class(TForm)

    Button1: TButton;

    Button2: TButton;

    Button3: TButton;

    Button4: TButton;

    Edit1: TEdit;

    Edit2: TEdit;

    Edit3: TEdit;

    Edit4: TEdit;

    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

    procedure Button3Click(Sender: TObject);

    procedure Button4Click(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    end;



    var

    Form1: TForm1;



    implementation

    {$R *.DFM}



    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;



    end.