如何在播放音频文件的同时,通过点击按钮先停止播放音频文件,再播放自身音频?

2024-05-28 23:31:55 发布

您现在位置:Python中文网/ 问答频道 /正文

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

代码:

#!/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):

Tags: inimportfalseinputgpioifos文件名
1条回答
网友
1楼 · 发布于 2024-05-28 23:31:55

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

类似地,您可以在主程序中检查您的键并启动一个线程来播放:http://docs.python.org/3/library/threading.html(这没有多大意义,因为另一个程序无论如何都是一个新进程)。在

相关问题 更多 >

    热门问题