【发布时间】:2021-11-08 08:12:00
【问题描述】:
我希望有人可以了解如何在按住按钮(或者在我的情况下按下超过一秒)时阻止脚本继续重复?
基本上,我在面包板上设置了一个按钮,我对其进行了编码,以便在按下按钮时播放音频文件。这是可行的,但是如果按钮不是很快被点击,那么音频将自行重复,直到按钮完全释放。此外,如果按住按钮,音频文件将无限重复。
我已经录制了一个快速记录来演示这个问题,如果它有帮助的话,这里:https://streamable.com/esvoy6
我还应该注意,我对 python 非常陌生(实际上是一般的编码),所以它很可能是一些我还没有找到的简单的东西。我正在为我的库使用 gpiozero。
非常感谢任何帮助或见解!
这是我的代码现在的样子:
from gpiozero import LED, Button
import vlc
import time
import sys
def sleep_minute(minutes):
sleep(minutes * 60)
# GPIO Pins of Green LED
greenLight = LED(17)
greenButton = Button(27)
# Green Button Pressed Definition
def green_btn_pressed():
print("Green Button Pressed")
greenButton.when_pressed = greenLight.on
greenButton.when_released = greenLight.on
# Executed Script
while True:
if greenButton.is_pressed:
green_btn_pressed()
time.sleep(.1)
print("Game Audio Start")
p = vlc.MediaPlayer("/home/pi/Desktop/10 Second Countdown.mp3")
p.play()
【问题讨论】:
-
您想要的应用程序正在播放音频。如果再次点击,是不是播放结束才播放?
-
是的,完全正确。我将有两个按钮,一个开始按钮和一个停止按钮。我的目标是只按一次开始按钮即可开始播放音频。然后让第二个按钮在按下时停止音频。但是在播放音频时,我希望启动按钮在被按下时无法激活。阻止音频重复。
标签: python python-3.x button gpiozero