Python 问题是我能';t连续播放2个声音(即使使用music.queue),它只播放1个音乐,节目停止,知道吗?

Python 问题是我能';t连续播放2个声音(即使使用music.queue),它只播放1个音乐,节目停止,知道吗?,python,pygame,Python,Pygame,我试图制作一个程序,连续播放一列音乐,直到我按下按钮停止播放,为此我想使用pygame.mixer.music。 问题是我不能连续播放2种声音(即使使用music.queue),它只播放1种音乐,并且程序停止: 我试过: pygame.mixer.music.load("music1") pygame.mixer.music.queue("music2") pygame.mixer.music.play() 但是什么都没用。pygame.mixer.mu

我试图制作一个程序,连续播放一列音乐,直到我按下按钮停止播放,为此我想使用pygame.mixer.music。 问题是我不能连续播放2种声音(即使使用music.queue),它只播放1种音乐,并且程序停止: 我试过:

pygame.mixer.music.load("music1")
pygame.mixer.music.queue("music2")
pygame.mixer.music.play()

但是什么都没用。

pygame.mixer.music.play()没有阻塞

因此,程序将在处理队列中的第二项之前完成并退出

尝试:

如果您希望在音乐停止时退出程序,您可以轮询混音器的
get\u busy
状态,也可以注册对队列结束时调用的
end\u事件的回调

您需要的是一个无论队列状态如何都能继续运行的循环,因此:

import pygame
pygame.init()
pygame.mixer.music.load("music1.mp3")
pygame.mixer.music.queue("music2.mp3")
pygame.mixer.music.play()

screen = pygame.display.set_mode((400,400))
clock = pygame.time.Clock()
paused = False
done = False
while not done:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.mixer.music.stop()
            done = True
        elif event.type == pygame.KEYDOWN: #press a key to pause and unpause
            if paused:
                pygame.mixer.music.unpause()
                paused = False
            else:
                pygame.mixer.music.pause()
                paused = True
        clock.tick(25)

pygame.quit()

文档说使用
队列
播放
,顺序不同。那有用吗?。。。看到答案是谢谢,但问题仍然存在,这只播放第二首歌,从来没有第一首!哦好的,非常感谢
import pygame
pygame.init()
pygame.mixer.music.load("music1.mp3")
pygame.mixer.music.queue("music2.mp3")
pygame.mixer.music.play()

screen = pygame.display.set_mode((400,400))
clock = pygame.time.Clock()
paused = False
done = False
while not done:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.mixer.music.stop()
            done = True
        elif event.type == pygame.KEYDOWN: #press a key to pause and unpause
            if paused:
                pygame.mixer.music.unpause()
                paused = False
            else:
                pygame.mixer.music.pause()
                paused = True
        clock.tick(25)

pygame.quit()