Wie kann ich einen Soundeffekt abspielen, wenn ich klicke?

11

Ich weiß, das klingt nach einer seltsamen Idee, aber ich möchte irgendwie damit experimentieren.

In den letzten Monaten habe ich Ubuntu zu meinem eigenen kleinen Frankenstein-Monster gemacht, aber was auch immer du mir sagst, sollte immer noch funktionieren.

John Doe
quelle

Antworten:

4

Hm, eine ziemlich hackige Lösung, aber es funktioniert! Installieren Sie zunächst die folgenden Dinge:

sudo apt-get install xmacro expect mpg321

xmacroist das Programm, das Ihre Mausklicks erkennt. expectist das Programm, das die Ausgabe von xmacrofür Ihre Mausklicks abhört, um auszuführen mpg321, was ein Befehlszeilenspieler ist!

Führen Sie dieses Skript also in einem Terminal aus:

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

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

Wenn Sie das obige Skript ausführen (ich wiederhole es über ein Terminal ), werden Sie nach einer Eingabetaste gefragt. Geben Sie eine ungewöhnliche Taste ein (z. B. F7). Dies ist die Taste, mit der dieser Vorgang unabhängig vom Drücken gestoppt wird.

Setzen Sie also im obigen Skript mpg321 auf eine gültige MP3-Datei von Ihnen und testen Sie sie :)

Es funktioniert gut unter Ubuntu 12.04, aber ich habe alle diese 3 Tools unter Oneiric ohne Probleme verwendet!

xmacrorec2kann als Argument den erwarteten Schlüssel (-k Argument) als Kei-Code verwenden. Dies hilft Ihnen sehr, wenn Sie das obige Skript in Ihre Startanwendungen einfügen möchten, da nicht jedes Mal ein Eingabeschlüssel abgefragt wird. Um den entsprechenden Schlüsselcode zu finden, den Sie verwenden möchten, müssen Sie das winzige Programm installieren xbindkeys:

sudo apt-get install xbindkeys

Dann mach:

touch ~/.xbindkeysrc
xbindkeys -k

Nach dem letzten Befehl erscheint ein kleines Fenster, ohne etwas zu tun. Geben Sie ihm eine Tastatureingabe, sagen wir F7. Sie werden so etwas sehen:

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

Beachten Sie die Zeile:

    m:0x0 + c:73

Der Code 73ist der von xmacrorec2 erwartete. Sie können dem obigen Skript also ein -k-Argument wie das folgende hinzufügen: spawn xmacrorec2 -k 73und es wird automatisch gestartet. Nachdem Sie das Skript bearbeitet haben, speichern Sie es in einem stabilen Verzeichnis (ich meine ein Verzeichnis, das Sie nicht löschen / in die nahe Zukunft verschieben werden) wie ~ / Documents und erteilen Sie ihm ausführbare Berechtigungen (klicken Sie mit der rechten Maustaste darauf-> Eigenschaften-> Berechtigungen-> Erlaube die Ausführung einer Datei als Programm oder über das Terminal chmod +x script_name.sh. Fügen Sie dann einfach Ihr Skript zu Ihren Startanwendungen hinzu . Wenn Sie möchten, dass dieser Sound stoppt, müssen Sie natürlich die entsprechende Tastatureingabe eingeben, z F7.

PS: Wenn Sie keinen zusätzlichen MP3-Befehlszeilen-Player (wie mpg321) installieren möchten, können Sie den vorinstallierten Player verwenden canberra-gtk-play, der als verwendet wird

canberra-gtk-play -f music.wav

Der Nachteil ist, dass nur bestimmte ogg- und wav-Dateien abgespielt werden können.

Hytromo
quelle
Ich werde deinen Befehl versuchen. Was bedeutet das -fam Anfang und der spawnBefehl?
Lucio
Und wissen Sie nicht etwas anderes als mpg321 , um kein externes Programm zu installieren?
Lucio
Die manpage ( man expect) hat mich dazu geführt, was meine erste Zeile des Skripts sein soll. Ein weiterer vorinstallierter Befehlszeilenspieler ist canberra-gtk-playund kann als aufgerufen werden canberra-gtk-play -f file.ogg. Der Nachteil dieses Programms ist, dass es nur bestimmte ogg- und wav-Dateien abspielen kann.
Hytromo
Im Moment kann ich Ihre Methode aufgrund eines GPG-Fehlers beim Aktualisieren nicht beweisen .
Lucio
ok lassen Sie sich Zeit.
Hytromo