我想连续播放闹钟波文件,直到它检测到按下按钮。在这种情况下,我使用键盘中断来尝试。
这是我的剧本:
import pygame
pygame.mixer.init()
pygame.mixer.music.load("beep.wav")
pygame.mixer.music.play(-1)
print "Time to take medicine!"
try:
while pygame.mixer.music.get_busy() == True:
continue
except KeyboardInterrupt:
pygame.mixer.music.stop()
然而它只播放一次并停止并退出脚本。怎么了?
更新
我设法让它在键盘中断时运行并终止,但我不明白为什么play(-1)
不起作用?
这是我的工作脚本:
import pygame
import sys
pygame.mixer.init()
pygame.mixer.music.load("beep.wav")
pygame.mixer.music.play(-1)
print "Time to take medicine!"
while True:
try:
while pygame.mixer.music.get_busy() == True:
continue
except KeyboardInterrupt:
pygame.mixer.music.stop()
sys.exit()
答案 0 :(得分:0)
pygame手册说
pygame.mixer.music.get_busy()
音乐流正在播放时返回True。当音乐 空闲时返回False。
所以问题是,当声音结束并重新开始时,此函数会在小间隙中返回False。这就是你的第二个版本有效的原因。