Python pygame.mixer无法无限播放音乐

时间:2014-04-10 05:16:24

标签: python audio pygame

我想连续播放闹钟波文件,直到它检测到按下按钮。在这种情况下,我使用键盘中断来尝试。

这是我的剧本:

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()

1 个答案:

答案 0 :(得分:0)

pygame手册说

pygame.mixer.music.get_busy()
  

音乐流正在播放时返回True。当音乐   空闲时返回False。

所以问题是,当声音结束并重新开始时,此函数会在小间隙中返回False。这就是你的第二个版本有效的原因。