pygame音乐播放,但声音对象不播放

时间:2013-10-21 23:06:39

标签: python audio pygame raspberry-pi mixer

我一直在尝试使用pyGame播放声音,同时在背景中循环播放音乐 -

我使用Horts Jens的演示代码

进行了测试
import pygame
import os

pygame.mixer.pre_init(44100, -16, 2, 2048) # setup mixer to avoid sound lag
pygame.init()                              #initialize pygame

# look for sound & music files in subfolder 'data'
pygame.mixer.music.load(os.path.join('data', 'foxhaunt.ogg'))#load music
jump = pygame.mixer.Sound(os.path.join('data','scream.wav'))  #load sound
fail = pygame.mixer.Sound(os.path.join('data','fail.wav'))  #load sound

# play music non-stop
pygame.mixer.music.play(-1)

...

if "a" in answer:
     jump.play()
     print "playing jump.wav once"
 elif "b" in answer:
     fail.play()
     print "playing fail.wav once"
 elif "m" in answer:
     if pygame.mixer.music.get_busy():
         pygame.mixer.music.stop()
     else:
         pygame.mixer.music.play()
 elif "q" in answer:
     #break from gameloop
     gameloop = False
 else:
     print "please press either a, b, m or q and ENTER"

对pygame.mixer.music.play(-1)的调用工作正常,我听到了音乐,但是对jump.play()和fail.play()的调用没有做任何事情。我甚至尝试在调用.play()之后延迟,以确保有足够的时间让声音播放完成 - 但仍然没有。

您对我应该寻找的内容有什么想法吗?

该平台是运行Wheezy的Raspberry Pi

pygame的: 1.9.1release + dfsg-8 - python2.7-pygame python2.6-pygame

你可以建议我如何使这个工作或我应该检查什么,以找出它不起作用的原因?

干杯

1 个答案:

答案 0 :(得分:0)

pygame.mixer.Sound()不能与pygame.mixer.music模块的pygame.mixer.music.play()一起播放。
您需要tp调用声音play()才能开始播放:

jump = pygame.mixer.Sound(os.path.join('data','scream.wav'))
jump.play()