我创建了一个tkinter程序,它使用stopwatch类作为整个程序的基础。秒表开始计时-6秒,然后前进到0并进入正刻度。 当我运行我的应用程序时,我成功地获得了一些“拖动树灯”(屏幕上的图形)来对计划时间做出反应:-
琥珀色灯1亮-3秒 琥珀色灯1关闭琥珀色灯2打开-2秒 琥珀色灯2关闭琥珀色灯3打开-1秒 琥珀色灯3熄灭绿灯亮0.0秒
还有一个错误启动的事件“红灯”(在计时器达到0.000秒之前进入比赛场地)
我的问题是,我想给这个程序添加声音,这样每次灯光出现时都会发出嘟嘟声
我几乎用pygame.mixer()实现了这一点
尽管开始播放声音,但从播放开始还有一点延迟,倒计时的嘟嘟声在整个过程中听起来并不一致
通过阅读Stackoverflow论坛的一些帖子,我的理解是:;我需要学习一种称为多线程的技术,以使其无缝工作
有人有过使用tkinter的多线程pygame.mixer()的经验吗? 关于如何实现我的目标的有用教程,有人能给我指出正确的方向吗? 如有任何帮助/建议,将不胜感激
我已经在一个叫做(有趣的是)sound的类中包含了所有的声音处理。我正在使用的3种声音都有一个函数,我只需从stopwatch类的updater函数调用这些函数。 这些声音被保存为“ogg”,正如我读过的关于pygame.mixer()的文章中所建议的那样
class Sound():
mixer.init()
def countbeep(self):
countbeep = mixer.Sound("CountBeep.ogg")
countbeep.play()
return
def gobeep(self):
gobeep = mixer.Sound("GoBeep.ogg")
gobeep.play()
return
def buzzer(self):
buzzer = mixer.Sound("Buzzer.ogg")
buzzer.play()
return
def Updater(self):
self.totalTime = time.time() - self.startTime
self.SetTime(self.totalTime)
self.counter = float('%.1f' % self.totalTime)
if self.counter == self.red_off:
LightTree.redlite(self, False)
if self.counter == -3.0:
Sound.countbeep(self)
LightTree.amber_1(self, True)
此时,程序将在没有错误消息的情况下执行。有一个问题是声音发出时有轻微的延迟。由于此应用程序旨在用作运动教练,因此需要正确计时。3个琥珀色灯使用完全相同的声音,但当我执行我的应用程序时,其中至少有一个会发出异相的声音
目前没有回答
相关问题 更多 >
编程相关推荐