关于PC喇叭的问题?(32分)

  • 主题发起人 主题发起人 shuoshuo2002
  • 开始时间 开始时间
S

shuoshuo2002

Unregistered / Unconfirmed
GUEST, unregistred user!
如何让PC喇叭发声?
Beep函数好象只能发出一种音调?请问如何让PC喇叭(不是声卡)发出不同音调的
声音?
不好意思,各位我就剩32大分了,dfw现在日$太少了!
 
用控件很简单。
 
Ahm2000包里有一个AhmSpeakerSound的控件就很好,要的话我可以发给你。
 
greenwon,
我的邮箱l_lemon@sina.com,谢谢!
 
为什么这个控件装不上?
请教如何安装?
谢谢
 
1.建议你搜索一下,用"用PC喇叭发声"等关键字,会搜索到好多的!
2.windows.beep(100,200); //自已调一下这两个参数,选择合适的音量和音调
3.汇编方法,搜索一下吧,我就不找了
 
先声明一下,这也是从DFW中看到抄下来的,具体贴子也没记下来。

const
cnst_BEEP_LOW_FREQ=40;
cnst_BEEP_HIGH_FREQ=5000;

function _GetPort(address:word):word;
var
bValue: byte;
begin
asm
mov dx, address
in al, dx
mov bValue, al
end;
Result := bValue;
end; { _GetPort }

procedure _SetPort(address, Value:Word);
var
bValue: byte;
begin
bValue := Trunc(Value and 255);
asm
mov dx, address
mov al, bValue
out dx, al
end;
end; { _SetPort }

procedure StartBeep(Freq : Word);
var
B: Byte;
begin
if (Freq >= cnst_BEEP_LOW_FREQ) and (Freq <= cnst_BEEP_HIGH_FREQ) then
begin
Freq := Word(1193181 div LongInt(Freq));
B := Byte(_GetPort($61));
if (B and 3) = 0 then
begin
_SetPort($61, Word(B or 3));
_SetPort($43, $B6);
end;
_SetPort($42, Freq);
_SetPort($42, Freq shr 8);
end;
end; { StartBeep }

procedure StopBeep;
var
Value: Word;
begin
Value := _GetPort($61) and $FC;
_SetPort($61, Value);
end; { StopBeep }
 
看看这个问题,记得刚上大学时,用QBASIC作了一个小程序,能演奏小草,现在不知道都
不知道扔那里去了。 [:(]
http://www.delphibbs.com/delphibbs/dispq.asp?lid=175014
 

Similar threads

D
回复
0
查看
911
DelphiTeacher的专栏
D
D
回复
0
查看
868
DelphiTeacher的专栏
D
D
回复
0
查看
840
DelphiTeacher的专栏
D
后退
顶部