当python开始播放时,Raspberry Pi会冻结

时间:2014-09-08 22:45:06

标签: python raspberry-pi raspbian

我已经在我的Mac上编写了一个python程序,我打算在Raspberry Pi上运行。

它包括一个更改的背景图片,以及一个启动/停止播放音乐的按钮。

该程序使用pygame。

在Mac上它完全按照我的预期运行。

但是当我在Pi上运行它并按下播放按钮时,整个程序会冻结25 - 30秒(图像停止变化,可以&c; ctrl + alt + f到不同的登录状态)没有声音。冻结后程序恢复,声音开始播放......

/ var / log / syslog ....

中没有记录任何内容

在程序的主要对象中,我初始化混音器。

    def __init__(self):
            pygame.mixer.pre_init(44100, -16, 2, 2048)
            pygame.mixer.init()
            pygame.init()

然后程序中的播放按钮调用此方法在播放和停止图标之间切换按钮图像,并启动当前曲调(媒体文件是名为001.ogg,002.ogg等的ogg文件):

    def clickButtonPlay(self):
            self.buttonPlay+=1
            if self.buttonPlay > 2:
                    self.buttonPlay=1
            self.drawButtonPlay()
            if self.buttonPlay == 1:
                    self.song.stop()
            else:
                    newTune = "tunes/%03d.ogg" %self.tuneNo
                    self.song = pygame.mixer.Sound(newTune)
                    self.song.play()

任何想法会导致冻结?

1 个答案:

答案 0 :(得分:1)

Doh!应该使用pygame.mixer.music,而不是pygame.mixer.Sound。