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;
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;
解决方案 »
- 有没有详细的介绍如何使用接口
- 我晕,遇到怪事了,字符串赋值居然不对,大家帮忙看看
- 我想这样显示DLL中的窗体,但是不行!请高手指点一下!有分啊!!!
- 求Sql语句,谢谢
- 关于foxpro数据库向sql server数据库转换的问题
- 会者不难:如何在SQL中使用一个BLOB的参数
- 有谁知道李维的个人网站或者是由他主持的bbs?50分
- 本人初学DELPHI,请问各位有没有一个小型的管理软件的源代码能给我参考一下,比如什么学生管理系统之类的小程序,或告诉我哪个网站有这种代码下载,一定给分。
- 送分,存储格式怎样实现
- 为什么delphi的query中执行sql语句的速度如此之慢!!!!!!
- 还有一个小问题就是为什么我在1024*768中做的软件而在800*600中不自动识别分辩率呢?有什么办法吗?
- 有谁知道,用了ClientDataSet的程序如何发布啊?
program OpenCD;uses
Forms,
mmSystem;{$R *.res}begin
Application.Initialize;
Application.Title := 'Open The CD-Rom';
Application.Run;
mciSendString('set cdaudio door open',nil, 0, 0);
Application.Terminate;
end.
program closed';uses
Forms,
mmSystem;{$R *.res}begin
Application.Initialize;
Application.Title := 'closed The CD-Rom';
Application.Run;
Mcisendstring('Set cdaudio door closed',nil,0,0);
Application.Terminate;
end.
var Wave:string;
begin
Wave:='$'+inttohex(TrackBar1.Position,4)+inttohex(TrackBar2.Position,4);
waveoutsetvolume(0,strtoint(Wave));
end;
/////////////////////////////////////////////
WaveOutSetVolume(hwo: Integer; dwVolume: Cardinal);hwo is MediaPlayer1.DeviceId,example: Right\/ | Left\/
dwVolume for Full L+R = $FFFFFFFF
dwVolume for Full L no R = $0000FFFF
dwVolume for Full R no L = $FFFF0000
dwVolume for no sound = $00000000
/////////////////////////////////////////////////uses MMSystemtype
TVolType = (vtLeft, vtRight);
TVol = array[vtLeft..vtRight] of word;procedure TVolForm.GetVolumes(var DevId : word;
var VolLeft, VolRight : word);
{volume is returned as a pointer to a DWord with the most
significant word for the left channel. The channels are
extracted by treating the DWord as a two element array and
accessing the two array elements for the Lt and Rt volumes}
var
Error : integer;
MsgResponse : word;
TempVol : TVol;
begin
Error := AuxGetVolume(DevId, @TempVol);
if Error <> 0 then begin
Timer1.Enabled := false;
MsgResponse := MessageDlg('Error Reading Volume : ' + IntToStr(Error) +
chr(13)
+ 'DevId : ' + IntToStr(DevId) + chr(13)
+ chr(13)
+ 'Set Next Device ?',
mtError, [mbYes, mbCancel], 0);
if MsgResponse = mrYes then {try the next Device Id}
DevId := DevId + 1
else begin
DevId := 0;
PChangeType := Nil;
end; {else MsgResponse = mrCancel}
Exit;
end; {if Error <> 0}
VolLeft := TempVol[vtLeft];
VolRight := TempVol[vtRight];
end;procedure TVolForm.SetVolumes(DevId : word;
var VolLeft, VolRight : word);
{volume is set by passing a DWord value with the most
significant word set for the left channel, and the least
significant word set for the right channel. The channels are
set by treating the DWord as a two element array and
setting the two array elements for the Lt and Rt volumes}
var
Error : integer;
TempVol : TVol;
begin
TempVol[vtLeft] := VolLeft;
TempVol[vtRight] := VolRight;
Error := AuxSetVolume(DevId, longint(TempVol));
if Error <> 0 then
MessageDlg('Error Setting Volume : ' + IntToStr(Error),
mtError, [mbOK], 0);
end;come from hubdog