PC スピーカーからビープ音を鳴らす方法

PC スピーカーからビープ音を鳴らす方法

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ターミナルで有効にする: 編集 > プロファイル設定 > 一般 > ターミナルベル

システム > 設定 > サウンド > さまざまなタブで「ミュート」が選択されていないことを確認します (すべてチェックを外します)。

システム > 設定 > サウンド > サウンド効果で「ウィンドウとボタンのサウンドを有効にする」を選択します。

デスクトップ > gnome > サウンドでgconf-editor、3 つのサウンド チェック ボックスを選択します。

gconf-editorアプリ > metacity > 全般でaudible bellチェックボックスを選択します。

それでも、Javaプログラムでコード7をコンソールに送信したり、

echo -e '\a'

または同等

echo -e "\a"

bash コマンドラインで。(-e オプションはエスケープ シーケンスの解釈を有効にすることを意味します。) 他に何を試せばよいでしょうか?

アップデート私の目標は CPU の負荷を最小限に抑えることなので、経過時間の比較を示します。各テストは 100,000 回の反復です。各バリアントは 3 回実行されたため、それぞれに対して 3 つの結果が示されています。

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. options snd-hda-intel beep_mode=2に入力します/etc/modprobe.d/enable-beep.conf(これは、私の Latitude E6420 のような Intel サウンド チップを搭載したシステムを所有している場合にのみ必要です)。その後、alsamixer でスピーカーのミュートを解除します。

一部の端末(konsoleなど、バグ参照)バグ 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ユーティリティよりも効率的です。

ところで、PCスピーカーが嫌いな人もいる

答え3

確認するターミナルとテーマはイベントを消費しません。

外部ツール動作すると言うでしょう。そのコードを調べることもできます。これ役立つかもしれません。

答え4

使用beepプログラムLucid リポジトリの 1.2.2 は動作しないため、v1.3 をコンパイルしました。

  • 実行する必要があるsudo
  • すでに行ったように、pcspkrモジュールをロードする必要があります

関連情報