Simpleaudio WAV文件只能播放一次

时间:2020-07-12 18:01:29

标签: python raspberry-pi

提前致歉,因为我是编码新手。我在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")

0 个答案:

没有答案