我一直在尝试使用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
你可以建议我如何使这个工作或我应该检查什么,以找出它不起作用的原因?干杯
答案 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()