【问题标题】:Python import pygame does not play an audioPython import pygame 不播放音频
【发布时间】:2020-01-03 13:11:27
【问题描述】:

代码只打印歌曲的名称,完成后不要停止 我的代码:

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)

我没有使用 from pygame import * 因为不能在def中完成

【问题讨论】:

  • 我不明白问题是音乐没有开始还是永远不会停止

标签: python-3.x pygame mp3


【解决方案1】:

当您想停止音乐时,请使用pygame.mixer.music.stop()pygame.time.Clock().tick(10) 计算自上次调用以来的时间并暂停程序,直到 1/framerate(在您的情况下为 framerate=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()

【讨论】:

    【解决方案2】:

    谢谢。我现在知道了。我的错误是: pygame.init() - 我需要 pygame.mixer.init()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多