我正在使用Python脚本将旧的旋转电话用作网络广播的输入设备。拨号器通过GPIO连接到Raspberry Pi3,并在我拨打“ 1”时启动mplayer播放电台。 当我启动脚本形式的终端(通过ssh)时,它工作正常:我获得了有关通道,正在播放的曲目的各种信息。此外,当我在键盘上按“ 9”或“ 0”时,音量会增大和向下。
接下来我要做的是通过从脚本(!)中拨“ 2”(增大音量)或“ 3”(减小音量)来控制音量。
我已经尝试了多个库,例如xdotools等,但是我猜它们都希望显示出来。到目前为止,似乎一切都没有。
有可能吗?任何人有指针或解决方案吗?我将不胜感激,这件事花了我整天的时间,而且我没有进步。
这是到目前为止的脚本:
#!/usr/bin/env python3
import RPi.GPIO as GPIO
from time import sleep
import subprocess
#GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(15, GPIO.IN, pull_up_down=GPIO.PUD_UP)
c=0
last = 1
def count(pin):
global c
c = c + 1
def play_radio(dial):
if dial == 1:
subprocess.call("mplayer -nocache -afm ffmpeg http://playerservices.streamtheworld.com/api/livestream-redirect/SLAM_MP3.mp3",shell=True)
if dial == 2:
#HERE'S WHERE THE VOLUME MUST GO UP BY KEYPRESS '0'
if dial == 3:
#HERE'S WHERE THE VOLUME MUST GO DOWN BY KEYPRESS '9'
GPIO.add_event_detect(15, GPIO.BOTH)
while True:
try:
if GPIO.event_detected(15):
current = GPIO.input(15)
if(last != current):
if(current == 0):
GPIO.add_event_detect(18, GPIO.BOTH, callback=count, bouncetime=10)
else:
GPIO.remove_event_detect(18)
number = int((c-1)/2)
print(number)
play_radio(number)
c = 0
last = GPIO.input(15)
except KeyboardInterrupt:
break
sleep(0.3)