每次点击时如何播放音效?

Joh*_*Doe 11 mouse sound input-devices settings

我知道这听起来很奇怪,但我有点想尝试一下。

在过去的几个月里,我有点把 Ubuntu 变成了我自己的小弗兰肯斯坦的怪物,但无论你告诉我什么都应该仍然有效。

hyt*_*omo 5

嗯,这是一个很老套的解决方案,但它确实有效!首先安装以下东西:

sudo apt-get install xmacro expect mpg321
Run Code Online (Sandbox Code Playgroud)

xmacro是检测您的鼠标点击的程序。 expect是一个程序,它将监听xmacro您鼠标点击的输出,以便执行mpg321,这是一个命令行播放器!

因此,从终端内部运行此脚本:

#!/usr/bin/expect -f
spawn xmacrorec2

while { 1 } {
   expect "ButtonRelease 1"
   system mpg321 /home/alex/Music/notification/notification.mp3&
}
Run Code Online (Sandbox Code Playgroud)

当您执行上述脚本(我重复一遍,通过终端)时,系统会要求您输入输入键。给一个不寻常的键(例如F7),这个键无论你什么时候按下它,都会阻止这个过程继续进行。

因此,只需在上面的脚本中,将 mpg321 设置为您的有效 mp3 文件并测试它:)

它在 Ubuntu 12.04 下工作得很好,但我在 Oneiric 下使用了所有这 3 个工具,没有任何问题!

xmacrorec2可以将预期的密钥(-k 参数)作为参数作为 kei 代码。如果您想将上述脚本放入启动应用程序,这对您有很大帮助,因为它不会每次都要求输入键。为了找到您想要使用的适当的密钥代码,您必须安装小程序xbindkeys

sudo apt-get install xbindkeys
Run Code Online (Sandbox Code Playgroud)

然后做:

touch ~/.xbindkeysrc
xbindkeys -k
Run Code Online (Sandbox Code Playgroud)

最后一个命令之后,会出现一个小窗口,无需对其执行任何操作,给它一个键盘输入,比方说 F7。你会看到这样的东西:

You can use one of the two lines after "NoCommand"
in $HOME/.xbindkeysrc to bind a key.
"(Scheme function)"
m:0x0 + c:73
F7
Run Code Online (Sandbox Code Playgroud)

注意这一行:

    m:0x0 + c:73
Run Code Online (Sandbox Code Playgroud)

该代码73是 xmacrorec2 所期望的代码。因此,您可以向上面的脚本添加一个 -k 参数,如下所示:spawn xmacrorec2 -k 73它会自动启动。编辑完脚本后,将其保存到一个稳定的目录(我的意思是您不会删除/移动到不久的将来的目录),例如〜/ Documents,并为其赋予可执行权限(右键单击它 - >属性 - >权限 -> 允许将文件作为程序执行,或者通过终端,chmod +x script_name.sh)。然后,只需将脚本添加到启动应用程序中即可。当然,每当你想让这个声音停止时,你就必须给出相应的键盘输入,比如F7

PS:如果你不想安装额外的命令行mp3播放器(如mpg321),那么你可以使用预装的播放器canberra-gtk-play,它用作

canberra-gtk-play -f music.wav
Run Code Online (Sandbox Code Playgroud)

它的缺点是只能播放某些ogg和wav文件。