Как заставить звуковой эффект играть каждый раз, когда я нажимаю?

11

Я знаю, это звучит странно, но я хочу поэкспериментировать с этим.

За последние несколько месяцев я как бы превратил Ubuntu в своего собственного маленького монстра Франкенштейна, но все, что ты мне скажешь, все равно должно работать.

Джон Доу
источник

Ответы:

4

Хм, довольно хакерское решение, но оно работает! Прежде всего установите следующие вещи:

sudo apt-get install xmacro expect mpg321

xmacroэто программа, которая будет определять ваши щелчки мышью. expectэто программа, которая будет прослушивать вывод xmacroваших щелчков мыши, чтобы выполнить mpg321, который является игроком командной строки!

Итак, запустите этот скрипт из терминала:

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

while { 1 } {
   expect "ButtonRelease 1"
   system mpg321 /home/alex/Music/notification/notification.mp3&
}

Когда вы выполните вышеупомянутый скрипт (повторяю, через терминал ), вас попросят ввести ключ ввода. Дайте необычный ключ (например, F7), это будет ключ, который, независимо от того, когда вы нажмете его, остановит этот процесс.

Так что, просто внутри приведенного выше скрипта установите mpg321 в свой действительный mp3-файл и протестируйте его :)

Он отлично работает под Ubuntu 12.04, но я использовал все эти 3 инструмента под Oneiric без проблем!

xmacrorec2может принять в качестве аргумента ожидаемый ключ (аргумент -k) в качестве кода kei. Это очень вам поможет, если вы захотите поместить вышеописанный скрипт в ваши приложения запуска, потому что он не будет каждый раз запрашивать ключ ввода. Чтобы найти соответствующий код ключа, который вы хотите использовать, вы должны установить крошечную программу xbindkeys:

sudo apt-get install xbindkeys

Затем сделайте:

touch ~/.xbindkeysrc
xbindkeys -k

После последней команды появится маленькое окно, ничего не делая с ним, дайте ему ввод с клавиатуры, скажем, 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

Обратите внимание на строку:

    m:0x0 + c:73

Код 73, ожидаемый xmacrorec2. Таким образом, вы можете добавить в вышеприведенный скрипт аргумент -k, например так: spawn xmacrorec2 -k 73и он автоматически запустится. После того, как вы закончили редактирование скрипта, сохраните его в стабильном каталоге (я имею в виду каталог, который вы не будете удалять / перемещать в ближайшее будущее), например ~ / Documents, и дайте ему права на выполнение (щелкните правой кнопкой мыши на нем-> Properties-> Разрешения-> Разрешить выполнение файла как программы или через терминал chmod +x script_name.sh). Затем просто добавьте ваш скрипт в ваши приложения запуска . Конечно, всякий раз, когда вы хотите, чтобы этот звук прекратился, вы должны будете дать соответствующий ввод с клавиатуры, например F7.

PS: Если вы не хотите устанавливать дополнительный mp3-плеер из командной строки (например mpg321), то вы можете использовать предустановленный плеер canberra-gtk-play, который используется как

canberra-gtk-play -f music.wav

Недостатком является то, что он может воспроизводить только определенные файлы ogg и wav.

hytromo
источник
Я попробую твою команду. Кроме того, что означает -fв начале и spawnкоманда?
Лусио
И разве вы не знаете что-то еще, что mpg321 не устанавливает внешнюю программу?
Лусио
Manpage ( man expect) подсказал мне, что должно быть моей первой строкой сценария. Другой предустановленный проигрыватель командной строки называется canberra-gtk-playи может называться canberra-gtk-play -f file.ogg. Недостатком этой программы является то, что она может воспроизводить только определенные файлы ogg и wav.
Hytromo
Сейчас я не могу доказать ваш метод из-за ошибки GPG при обновлении .
Лусио
хорошо, не спеши.
Hytromo