def on_press(self):
file_name = self.filename
if(self.flag1<3):
var="thread1"+str(self.flag1)
var=myThread(1,file_name)
self.flag1=self.flag1+1
print "Thread count is "+str(threading.active_count())
var.start()
此处flag1
最初设置为1
。每次按前端按钮时都会调用函数on_press()
。
我的myThread
班级():
class myThread (threading.Thread):
def __init__(self,counter,file_name):
threading.Thread.__init__(self)
self.counter = counter
self.file_name=file_name
def run(self):
print "Starting "
channel=pygame.mixer.music.load(self.file_name)
channel=pygame.mixer.music.play()
print "Exiting "
现在我的问题是每次调用on_press()
函数时都会创建新线程,它会覆盖正在播放的任何音频文件。我希望所有线程同时播放音频文件。新线程不应覆盖其他已创建的线程播放的音乐。我该怎么做?
答案 0 :(得分:1)
如果您想一次播放多个声音,请使用Sound
课程。
来自music module(强调我的)的文档:
音乐播放和常规声音播放之间的区别在于音乐是流式传输的,并且从未实际加载过所有音乐。 调音台系统一次只支持一个音乐流。