控制 Volumio 的音量

Control the volume of Volumio

我已经用 Volumio 播放器设置了 Raspberry Pi。 现在我想用旋转编码器控制音量。 并且还想暂停或播放当前歌曲。

#!/usr/bin/env python
#
# Raspberry Pi Rotary Test Encoder Class
#
# Author : Bob Rathbone
# Site   : http://www.bobrathbone.com
#
# This class uses a standard rotary encoder with push switch
#

import sys
import time
from rotary_class import RotaryEncoder
import subprocess

# Define GPIO inputs
PIN_A = 21  
PIN_B = 16  
BUTTON = 4

# This is the event callback routine to handle events
def switch_event(event):
    if event == RotaryEncoder.CLOCKWISE:
        print "Volume up"
        subprocess.call(['mpc', 'volume', '+1'])

    elif event == RotaryEncoder.ANTICLOCKWISE:
        print "Volume down"
        subprocess.call(['mpc', 'volume', '-1' ])

    elif event == RotaryEncoder.BUTTONDOWN:
        print "Pause/Play"      

#   elif event == RotaryEncoder.BUTTONUP:
#       print "Button up"
    return

# Define the switch
rswitch = RotaryEncoder(PIN_A,PIN_B,BUTTON,switch_event)

while True:
    time.sleep(0.5)

这是我已有的编码器。 但是当我启动它并尝试将音量设置为 +1 时,我只是得到一个错误。

这个:

Traceback (most recent call last):
  File "/home/pi/radio/rotary_class.py", line 87, in switch_event
    self.callback(event)
  File "./test_rotary_class.py", line 35, in switch_event
    subprocess.call(['mpc', 'volume', '-1' ])
  File "/usr/lib/python2.7/subprocess.py", line 493, in call
    return Popen(*popenargs, **kwargs).wait()
  File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1259, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory

如果有人能帮助我并告诉我如何做 pause/play :)

那就太好了

我认为您的代码没有问题,但错误表明 mpc 可执行文件不在您的路径中 (No such file or directory)。

尝试用绝对路径替换 mpc 或使其可从您的 python 脚本访问。

It would be great if someone can help me and tell me how to do the pause/play :)

mpc toggle

就是您要找的。