Pygame播放声音阻止

问题描述:

我想用pygame声音播放声音。我的代码是这样的:Pygame播放声音阻止

from tkinter import * 
import pygame 
root= Tk() 
pygame.init() 
bass = pygame.mixer.Sound('sounds\\bass.wav') 
snare = pygame.mixer.Sound('sounds\snare.wav') 
crash = pygame.mixer.Sound('sounds\crash.wav') 
bass.play() 
snare.play() 
crash.play() 
root.mainloop() 

当我运行此代码时,所有三个波形文件一起播放。

我想一个接一个地播放它们,并且可能控制每个连续声音之间的时间差。

什么是一个优雅的方式来做到这一点?

非常感谢您的回复。

pygame.mixer.music模块允许您排列要播放的文件,但我不知道如何在声音之间指定缓冲区。

http://www.pygame.org/docs/ref/music.html#pygame.mixer.music.queue

pygame.mixer.music.load('sounds\bass.wav') 
pygame.mixer.music.queue('sounds\snare.wav') 
pygame.mixer.music.queue('sounds\crash.wav') 
pygame.mixer.music.play() 

要知道,mixer.music流音频,不像mixer.Sound对象,它会首先加载整个文件。

+0

嗨,这个代码只播放第一个加载的声音。我需要初始化一些添加的参数。我目前使用pygame.init(),它只播放第一个声音。 wav文件全部是一秒钟,如果这是一个令人担忧的问题 – oat 2013-05-14 09:20:56

+0

嗯。在文档中,它显示了正在加载的第一个声音,然后播放,并且在播放时,其他声音正在排队。你尝试过吗? – Haz 2013-05-14 13:56:06

+0

是的,我尝试这个例子以及pygame文档中显示的一个。我仍然只能播放第一个声音:( – oat 2013-05-14 16:39:08