Pygame音乐队列不工作

2024-10-01 07:24:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我一整天都在想办法解决这个问题,但没有成功: 如何设置歌曲播放列表以在pygame中播放?队列命令似乎对我不起作用。所发生的一切就是我加载的第一首歌会一直播放下去,然后第二首就不会开始了。pygame文档说这就是我所需要的。我犯了明显的错误吗?在

import pygame
pygame.init()
pygame.mixer.init

screen=pygame.display.set_mode((800,450))
pygame.mixer.music.load('mimages\\sounds\\droll.wav')

pygame.mixer.music.play(0,0.0)
pygame.mixer.music.queue('mimages\\sounds\\hip2014.wav')


running=True
clock=pygame.time.Clock()
while running:
    clock.tick(2)
    for event in pygame.event.get():
            if event.type==pygame.QUIT:
                running=False
                holdon=False
            if event.type==pygame.KEYDOWN and event.key==pygame.K_ESCAPE:
                running=False
                holdon=False
    print pygame.mixer.music.get_busy()

Tags: eventfalsegetifinittypemusicpygame
2条回答

游戏中的队列()功能不正常。

我创建了一个没有queue()函数的函数。在

我不知道为什么不起作用。:)

但幸运的是有一个代码可以工作。在

试试看:

import pygame
import time
from tkinter import *

root = Tk()
c = ["music1.mp3","music2.mp3","music3.mp3"] #you_can_add_more
x= 0

def music():
    pygame.init()
    pygame.mixer.init()
    pygame.mixer.music.load(c[x])
    pygame.mixer.music.play(0)
    que()

def que():
    global x, c
    pos = pygame.mixer.music.get_pos()
    if int(pos) == -1:
        x += 1
        pygame.mixer.music.load(c[x])
        pygame.mixer.music.play(0)

    root.after(1, que)

music()

root.mainloop()

试试这个:

pygame.mixer.music.load('mimages\\sounds\\droll.wav')
pygame.mixer.music.queue('mimages\\sounds\\hip2014.wav')
pygame.mixer.music.play()

这允许您建立队列,然后一次播放所有队列。如果以后想播放不同的文件,请尝试运行pygame.mixer.music.stop()(如果队列尚未完成),然后使用load()(可选地后跟一个或多个queue()语句),然后再次运行play()。在

相关问题 更多 >