私はPerlスクリプトにサウンドを追加して、トランザクションがOKであることをユーザーに警告しています(作業中は常に画面を見ていないかもしれません)。スクリプトはWindowsとLinuxのステーションで実行されるので、私はできるだけポータブルにしておきたいと思います。 Windows用
私はできPerlスクリプトでサウンドを再生する
use Win32::Sound;
Win32::Sound::Play('SystemDefault',SND_ASYNC);
。しかし、私はLinux(Gnome)で一般的なサウンドを呼び出す方法がわかりません。これまでのところ、私は思いつきました
system('paplay /usr/share/sounds/gnome/default/alert/sonar.ogg');
しかし、私はそのパスが利用可能であることを期待することはできません。
ので、3つの質問:
- Gnomeの にデフォルトのサウンドを呼び出すためのより良い方法は、(少なくともDebain/Ubuntuのフレーバーの中で)かなり普遍そのパスであり
paplay
はにしばらく時間がかかりますサウンドを再生した後に終了する、それを呼び出すより良い方法はありますか?
私はむしろシステムスピーカーから鳴り響くのを避けたいと思います。これはひどく聞こえるでしょう(これはたくさん演奏されます)。そして、UbuntuのブラックリストはPCスピーカーに関係しています。
ありがとうございます!
私は 'fork'を考えていましたが、それが繰り返し呼び出されることにより多くの問題を引き起こすかどうかは分かりませんでした。私はそれを試してみましょう。ありがとう! – charlesbridge
また、私は、再生可能であることを期待できるサウンドファイルへのパスを意味しました( 'paplay'自体ではなく)。しかし、私はそれが同じ考えだと思う、私はちょうど( - R $のパス)私は動作することを見つけるまで。 – charlesbridge
また、私はPerl/Tkでこれを書いています。 'fork'は明示的に' CORE :: exit() 'や' POSIX :: _ exit() 'を呼び出さなければならないか、恐ろしいことが起こります。 – charlesbridge