以下是我的代码片段:
import pygame
class Player():
playlist= ["track1.mp3","track2.mp3",...]
def __init__(self):
pygame.init()
pygame.mixer.music.load(self.playlist[0])
pygame.mixer.music.play()
def playnext(self):
self.playlist = self.playlist[1:] + [self.playlist[0]]
pygame.mixer.music.load(self.playlist[0])
pygame.mixer.music.play()
我的问题是我想在第一首曲子结束后播放下一首曲子,但是没有一个while真循环。这个类不是我代码中唯一的一个,我希望其他类在音乐播放时工作。在
就像触发器一样;当歌曲结束时,调用playnext()
函数。在
提前谢谢!在
您可以使用^{} 使音乐结束时事件出现在事件队列中。只需检查一下那个事件,然后换到下一首歌。在
事件将只是一个整数(就像所有其他事件一样),因此为了不影响另一个事件,请使用
pygame.USEREVENT
。如果有其他用户定义的事件,只需使用pygame.USEREVENT + 1
,然后使用pygame.USEREVENT + 2
等。只要确保它是独一无二的。在另外,尽量不要将音乐放在播放器类中;将其重构到另一个类中。一个类最好只做一件事。我在下面创建了一个简短的演示。行
if __name__ == '__main__':
下面的所有内容都可能是其他文件中的内容。在相关问题 更多 >
编程相关推荐