
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 を再び動作させるために次の操作を実行する必要がありました。
- モジュールをロードします
pcspkr
(すでに で行ったように/etc/modprobe.d/blacklist.conf
) - パッケージを削除します
pulseaudio-module-x11
(すべての XBell イベントを吸収するようです) 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モジュールをロードする必要があります