提前致歉,因为我是编码新手。我在rasbperry pi上使用python编写了一个简单程序。每次检测到运动时,应该从文件夹中包含的wav文件列表中播放随机文件。我最初在两个单独的文件中拥有“播放随机文件代码”和“运动检测器代码”,它们各自工作正常。但是,将它们组合时,只会在第一次检测到运动时播放wav文件(但是,每次检测到运动时,它都会打印“正在播放声音”。Tkinter在那儿,因为我将来有计划向其中添加一个录制按钮)我也可以通过一个小的触摸屏来添加新的声音。我敢肯定这很简单,直到我发现自己做错了什么,我才继续看python教程。代码在下面
from tkinter import *
import glob
import random
import time
import simpleaudio as sa
from gpiozero import LED
from gpiozero import MotionSensor
green_led = LED(17)
pir = MotionSensor(4)
sound_list = glob.glob("sounds/*.wav")
sound_item = random.choice(sound_list)
wave_obj = sa.WaveObject.from_wave_file(sound_item)
play_obj = wave_obj.play()
green_led.off()
while True:
pir.wait_for_motion()
print("Motion Detected")
green_led.on()
play_obj.wait_done() #Wait until sound has finished playing
print("Playing Sound")
pir.wait_for_no_motion()
green_led.off()
print("No Motion")