2010-03-15 46 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