gpt4 book ai didi

python - 如何让按钮先停止播放音频文件,然后播放自己的音频?

转载 作者:行者123 更新时间:2023-12-03 01:52:11 27 4
gpt4 key购买 nike

我的问题是,每个按钮下的音频文件都很长,如果我按错了按钮,我将不得不等待它播放结束。如何让每个按钮按下 1)停止可能播放的音频文件,然后 2)播放它自己的文件?
我正在使用 mpg123 播放音频文件,文件名是占位符。

代码:

#!/usr/bin/env python

import os
from time import sleep
import RPi.GPIO as GPIO

GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.IN)
GPIO.setup(19, GPIO.IN)
GPIO.setup(20, GPIO.IN)
GPIO.setup(21, GPIO.IN)
GPIO.setup(22, GPIO.IN)
GPIO.setup(23, GPIO.IN)
GPIO.setup(24, GPIO.IN)
GPIO.setup(25, GPIO.IN)
GPIO.setup(26, GPIO.IN)
GPIO.setup(27, GPIO.IN)

while True:

if (GPIO.input(18)==False):
os.system('mpg123 audio.mp3 &')
if (GPIO.input(19)==False):
os.system('mpg123 audio.mp3 &')
if (GPIO.input(20)==False):
os.system('mpg123 audio.mp3 &')
if (GPIO.input(21)==False):
os.system('mpg123 audio.mp3 &')
if (GPIO.input(22)==False):
os.system('mpg123 audio.mp3 &')
if (GPIO.input(23)==False):
os.system('mpg123 audio.mp3 &')
if (GPIO.input(24)==False):
os.system('mpg123 audio.mp3 &')
if (GPIO.input(25)==False):
os.system('mpg123 audio.mp3 &')
if (GPIO.input(26)==False):
os.system('mpg123 audio.mp3 &')
if (GPIO.input(27)==False):
os.system('mpg123 audio.mp3 &')

sleep(0.1):

最佳答案

您可以使用subprocess异步,因此函数调用立即返回。我认为有可能获得一个“句柄”对象来与外部进程通信,这也允许你“kill”它。

同样,您可以在主程序中检查您的 key 并启动一个线程进行播放:http://docs.python.org/3/library/threading.html (没有多大意义,因为其他程序无论如何都是一个新进程)。

关于python - 如何让按钮先停止播放音频文件,然后播放自己的音频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38736340/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com