2010-03-15 47 views
1

有没有办法在Windows中完全控制主板扬声器?因此,而不是调用这样的功能:Windows中系统扬声器的低级控制

beep(durationMs, frequency); 

我可以使用:

beepContinuous(frequency); 

所以我必须指定一个频率,它会输出正确的电压,播放频率。

+0

好吧,我看不出有什么理由为什么你会这样做..你可以设置一些东西,如循环或定时器,以不断开始新的哔哔声(给予它的感觉是连续的)..我猜那里赢了在可能的'缺口'中没有任何噪音......但我不确定。 – Marcelo 2010-03-15 12:04:23

+0

我已经试过这个,听起来很糟糕。至少在我的电脑上。 – Bevin 2010-03-15 18:43:54

回答

0

关于this SO question的一堆音频API选择有一个很好的讨论。最基本的技术是使用Waveform Audio API set中的waveOut调用。

+0

我不确定这是否回答这个问题。 OP正在讨论内部扬声器,即主板上的原始扬声器(或“蜂鸣器”),而不是计算机的正常音频输出。我不确定waveOut API函数可以使用内部扬声器。他们可以吗? – 2010-03-18 17:02:06

+0

@Andreas Rejbrand - 在我的笔记本电脑上,“Beep”和“waveOut”指的是同一个设备 - 我听到的都是耳机插孔。有几个函数允许枚举所有设备:'waveOutGetNumDevs'和'waveOutGetDevCaps'。我不确定现代个人电脑还有一个单独的扬声器与那个简单的扬声器驱动程序。 – mtrw 2010-03-18 17:07:28