代码只是打印歌曲的名称,他完成后就不要停止 我的代码:
import glob
import os
os.environ['PYGAME_HIDE_SUPPORT_PROMPT'] = "hide"
import pygame
songs = glob.glob("C:\\Users\zivsi\Music\\*.mp3")
import random
song = random.choice(songs)
song_name = song.replace("C:\\Users\zivsi\Music\\", "").replace(".mp3", "")
print("song: ", song_name)
pygame.init()
pygame.mixer.music.load(song)
pygame.mixer.music.play()
while pygame.mixer.music.get_busy():
pygame.time.Clock().tick(10)
我没有从pygame导入中使用* 因为它无法在def中完成
答案 0 :(得分:0)
要停止音乐时,请使用pygame.mixer.music.stop()
。 pygame.time.Clock().tick(10)
计算自上次被调用以来的时间,并暂停程序直到1 /帧速率(在您的情况下,帧速率= 10)秒过去。因此,您的代码将一直运行到歌曲播放完毕为止。相反,如果您想暂停程序一段固定的时间并停止播放音乐,请使用time.sleep()
,它以秒为参数。可能的例子:
import glob
import os
import time
os.environ['PYGAME_HIDE_SUPPORT_PROMPT'] = "hide"
import pygame
songs = glob.glob("C:\\Users\zivsi\Music\\*.mp3")
import random
song = random.choice(songs)
song_name = song.replace("C:\\Users\zivsi\Music\\", "").replace(".mp3", "")
print("song: ", song_name)
pygame.init()
pygame.mixer.music.load(song)
pygame.mixer.music.play()
time.sleep(10) #sleep for 10 seconds before moving on
pygame.mixer.music.stop()
答案 1 :(得分:0)
谢谢。我现在知道了。我的错误是: pygame.init()- 我需要 pygame.mixer.init()