Ein bash-Script steuert den omxplayer
Das Ziel war, die Lautstärke des omxplayers durch einen GPIO zu kontrollieren. Wenn ein Relais am GPIO anzieht, soll die Lautstärke sinken, und wenn das Relais abfällt wieder steigen.
Auf der Kommandozeile kann man den Pegel durch die Tasten '-' und '+' kontrollieren. Diese Tasten senken bzw. erhöhen die Lautstärke um 3dB pro Anschlag.
Weil der GPIO nicht ohne weiteres Tastendrücke simulieren kann, habe ich das folgende Script geschrieben. Es liest den ausgewählten GPIO und stellt bei jeder Pegeländerung die gewünschte Lautstärke ein. Damit der Uebergang einigermassen sanft erfolgt, wird nach jedem 'Tastendruck' eine halbe Sekunde gewartet.
Das Script
Weil es einen GPIO liest, muss es mit sudo ausgeführt werden, damit es die nötigen Rechte für den Zugriff hat.
Die Kommentare im Script sollten eigentlich Dokumentation genug sein.
Den GPIO können Sie auf Zeile 3 einstellen. Auf Zeile 31 wird die Anzahl der Stufen festgelegt und auf Zeile 34 wie schnell die Lautstärke ändert.
Auf meinem alten Raspbian auf dem Raspberry 2 kennt der omxplayer übrigens die Option --loop noch nicht. Wenn sich der Player über diese Option beschwert, dann ist es Zeit für einen Upgrade ;-)
#!/bin/bash # The GPIO that controls the sound volume pin=17 # Configure the GPIO as input echo $pin > /sys/class/gpio/export echo in > /sys/class/gpio/gpio$pin/direction # Read the state of the input previous=$(cat /sys/class/gpio/gpio$pin/value) # Loop forever while true do # Read the input state=$(cat /sys/class/gpio/gpio$pin/value) # If the state is not the same as the previous state if [ $state -ne $previous ] then # Determine the control character if [ $state -eq "1" ] then ch='+' else ch='-' fi # Turn the volume up or down in five steps for i in {1..5} do echo -n $ch sleep 0.5 done fi # Wait a bit to keep the system load low sleep 0.5 # Update the previous state for the next round previous=$state done | omxplayer --loop '/usr/share/scratch/Media/Sounds/Music Loops/Garden.mp3'
Nicht abtippen!
Mit dem folgenden Link Download des Scripts können Sie das Script auf Ihren Raspberry holen.
Denken Sie dran, dass es ausführbar sein muss wenn es aufgerufen wird.