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
对象,它会首先加载整个文件。
嗨,这个代码只播放第一个加载的声音。我需要初始化一些添加的参数。我目前使用pygame.init(),它只播放第一个声音。 wav文件全部是一秒钟,如果这是一个令人担忧的问题 – oat 2013-05-14 09:20:56
嗯。在文档中,它显示了正在加载的第一个声音,然后播放,并且在播放时,其他声音正在排队。你尝试过吗? – Haz 2013-05-14 13:56:06
是的,我尝试这个例子以及pygame文档中显示的一个。我仍然只能播放第一个声音:( – oat 2013-05-14 16:39:08