Я новичок в питоне.Я пытаюсь написать программу, которая будет продолжать воспроизводить звук при включении 21-контактного светодиода GPIO.Я хочу, чтобы весь аудиофайл воспроизводился, а не только 2 секунды.Когда светодиод включается, файл должен начать воспроизводиться (Примечание: он не должен прерываться, если звук уже воспроизводится).Я не мог понять, как работает многопоточность в моей ситуации.Теперь звук воспроизводится в течение 2 секунд и останавливается
import threading
import pygame
import time
from time import sleep
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(21,GPIO.OUT)
GPIO.setup(20,GPIO.OUT)
pygame.init()
pygame.mixer.init()
ring = pygame.mixer.Sound("odo.wav")
def audio_play():
global pygame
ring.play()
sleep(5)
def led():
while(1):
GPIO.output(21,GPIO.HIGH)
GPIO.output(20,GPIO.LOW)
time.sleep(10)
GPIO.output(21,GPIO.LOW)
GPIO.output(20,GPIO.HIGH)
try:
audio.start()
except RuntimeError:
audio = threading.Thread(target=audio_play)
audio.start()
time.sleep(10)
led=threading.Thread(target=led)
audio=threading.Thread(target=audio_play)
led.start()
led.join()
audio.join()