我一直在试图弄清楚这一天没有成功: 如何在pygame中设置歌曲播放列表? queue命令似乎对我不起作用。所有这一切都是我加载的第一首歌将一直播放,然后第二首歌将无法启动。 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()
答案 0 :(得分:1)
Pygame模块中的queue()函数无法正常工作。
我创建了一个没有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()
答案 1 :(得分:0)
请改为尝试:
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()
语句),然后{{} 1}}再次。