我們在python中製作了一個鬧鐘程序,噹噹前時間等於用戶設置的鬧鐘時間時,它使用TKinter顯示單詞「ALARM」。現在我們試圖給程序添加一個鬧鐘聲音,所以當前時間達到設置的鬧鐘時間時會播放聲音。 由於某些奇怪的原因,當前時間到達鬧鐘時間時,鬧鐘聲音會一次打開並播放大約7次,然後退出。 我們嘗試了幾種不同的方法讓它只播放一次聲音文件,但沒有任何效果。你們有什麼建議嗎?如果需要,我可以發佈更具體的信息/截圖。 :)樹莓派和Python(TKinter和Omxplayer)
到目前爲止的代碼:
import time
import subprocess
#GUI Setup
from Tkinter import *
alarm_window = Tk()
alarm_window.configure(bg = 'lightblue')
alarm_window.title('Alarm Clock!')
display = Label(alarm_window, font = ('Arial', 25), bg = 'lightblue', width = 13, height = 1, borderwidth = 2)
display.grid(row = 1, column = 1, columnspan = 6)
current_time = time.strftime("%H:%M:%S")
def refresh_time():
global current_time
current_time = time.strftime("%H:%M:%S")
if current_time == times.get():
alarm_window.configure(bg='red')
timelabel.configure(bg='red')
alarmdisplay = Label(alarm_window, font = ('Arial', 25), text = 'ALARM', bg='red', width = 13, height = 1, borderwidth = 2,)
alarmdisplay.grid(row = 2, column = 1, columnspan = 6)
playProcess = subprocess.Popen(['omxplayer', '/home/pi/Digital Alarm.mp3?dl=0'])
display.config(text=current_time)
display.after(10, refresh_time)
timelabel = Label(alarm_window, text = 'Enter H:M:S', bg = 'lightblue')
timelabel.grid(row = 2, column = 1)
times = Entry(alarm_window, width = 10, bg = 'lightgrey', justify = CENTER)
times.grid(row = 2, column = 2, columnspan = 5)
times.focus()
refresh_time()
alarm_window.mainloop()
爲什麼你每10毫秒輪詢一次,如果你知道時間每秒只有一次機會? – 2014-10-17 11:15:44