我正在为自己制作一个 mp3 音乐播放器。当启用暂停(按下按键)时,一切都很好,但是如果您关闭暂停,它会跳过当前音乐,尽管它不应该这样做。
我已经尝试了很多东西,但我仍然不明白代码有什么问题。如果您能帮助我,我将非常感激。
代码-
import os
import pygame as pg
from random import *
Mlist=[]
Mlist=os.listdir("playlist")
shuffle(Mlist)#getting a music list from a folder "playlist"
pg.init()
size = [800, 600]
screen = pg.display.set_mode(size)
clock = pg.time.Clock()
pause = False
running = True
pos=0
while running:
for event in pg.event.get():
if event.type == pg.QUIT:
running = False
if event.type == pg.KEYDOWN:#pause music (key down)
if pause:
pg.mixer.music.play(0)
pause = False
else:
pause = True
pg.mixer.music.pause()
if Mlist and not(pg.mixer.music.get_busy()) and not(pause):
song = choice(Mlist)
Mlist.remove(song)
pg.mixer.music.load("playlist/"+song)
pg.mixer.music.play()
pg.display.flip()
clock.tick(30)
quit()
取消暂停后,您正在从开始播放音乐= 0
这是该函数的文档
pygame.mixer.music.play()
Start the playback of the music stream
play(loops=0, start=0.0, fade_ms=0) -> None
当您暂停时,您应该捕获歌曲暂停的时间点,然后将其传递给播放函数
即。
if pause is False:
unnormalized_position = pygame.mixer.music.get_pos()
position_music = float(unnormalized_position / 1000)
pygame.mixer.music.pause()
else:
pygame.mixer.music.play(0, position_music)