請電腦揚聲器發出蜂鳴聲

請電腦揚聲器發出蜂鳴聲

多年來,已經有很多關於從 Ubuntu 版本中獲取蜂鳴聲的文章。例子:修復蜂鳴聲

我的需求略有不同,因為我不想確保聲卡蜂鳴聲正常工作。相反,我想要 PC 揚聲器發出蜂鳴聲,即原始內建揚聲器發出的那種蜂鳴聲,因為我相信它們會產生更少的 CPU 負載。我透過拔掉外部揚聲器並關閉 Ubuntu 來確認我的電腦具有 PC 揚聲器。在關閉和重新啟動過程中的某個時刻,即使外部揚聲器沒有通電,也會聽到蜂鳴聲。

我已經嘗試過以下方法:

在 中/etc/modprobe.d/blacklist.conf,將這些行變成註解:

#blacklist snd_pcsp
#blacklist pcspkr

.bashrc

/usr/bin/xset b on
/usr/bin/xset b 100

在 gnome 終端機中啟用:編輯 > 設定檔首選項 > 常規 > 終端機響鈴

確保以下位置沒有「靜音」選項:系統 > 首選項 > 聲音 > 各個選項卡(全部取消選取)。

在下列位置選擇「啟用視窗和按鈕聲音」:系統 > 首選項 > 聲音 > 聲音效果

gconf-editor桌面 > gnome > 聲音中,選取三個聲音複選框。

gconf-editor應用程式 > Metacity > 常規中,選取該audible bell複選框。

當我透過 Java 程式發送代碼 7 到控制台或使用時,我仍然沒有聽到 PC 揚聲器發出蜂鳴聲

echo -e '\a'

或同等地

echo -e "\a"

在 bash 命令列上。 (-e 選項表示啟用轉義序列解釋。)我還應該嘗試什麼?

更新由於我的目標是最大限度地減少 CPU 的負載,因此這裡是經過時間的比較。每次測試迭代 100,000 次。每個變體執行三次,因此每個變體呈現三個結果。

printwriter.format("%c", 7); 
// 1.3 seconds, 1.5 seconds, 1.5 seconds

Toolkit.getDefaultToolkit().beep(); 
// 0.8 seconds, 0.3 seconds, 0.5 seconds

try { Runtime.getRuntime().exec("beep"); } catch (IOException e) { } 
// 10.3 seconds, 16.3 seconds, 11.4 seconds

這些運行是在 Eclipse 內部完成的,因此要乘以某個小於 1 的值才能獨立執行。不幸的是,Toolkit 的蜂鳴聲在我的電腦上是無聲的,代碼 7 也是如此。

答案1

在我的 Oneiric 系統上,我必須執行以下操作才能讓 XBell/XkbBell 再次運作:

  1. 載入模組pcspkr(就像您已經通過 所做的那樣/etc/modprobe.d/blacklist.conf
  2. 刪除包pulseaudio-module-x11(似乎吸收了所有 XBell 事件)
  3. 放入(您只需要擁有一個帶有英特爾聲音晶片(例如我的 Latitude E6420)的系統的情況)options snd-hda-intel beep_mode=2/etc/modprobe.d/enable-beep.conf之後在 alsamixer 中取消揚聲器靜音。

一些終端(如 konsole,請參閱 bug錯誤 177861) 忽略響鈴字符。測試系統蜂鳴聲的一個好方法是使用xkbbell命令。

在我完成所有這些之後,java 呼叫Toolkit.getDefaultToolkit().beep()工作得很好。

答案2

在 14.04.3 LTS 上,現在似乎足以透過註解掉黑名單行來編輯/etc/modprobe.d/blacklist.conf和啟用。pcspkr

#blacklist pcspkr

將該#行變成註解。

確保終端機 ( gnome-terminal) 在首選項標籤中允許控制台響鈴。

這是透過空終端行上的退格鍵進行測試的。這也透過該beep實用程式進行了測試(假設您已經安裝了它)。相反,您可以透過 java.awt.Toolkit 物件進行程式設計蜂鳴:java.awt.Toolkit.getDefaultToolkit().beep()

Toolkit 物件比beep實用程式更有效。

順便一提,有些人不喜歡電腦揚聲器

答案3

確保您的終端和主題不會吃掉該事件。

外部工具工作,你說。您可以深入研究他們的程式碼。可能有幫助。

答案4

使用beep程式。我編譯了 v1.3,因為 Lucid 儲存庫中的 1.2.2 不起作用。

  • 你需要運行它sudo
  • 必須載入 pcspkr 模組,就像您準備好的那樣

相關內容