11
import pygame
pygame.mixer.init()
pygame.mixer.music.load("only one.mp3")
pygame.mixer.music.play(0)
while pygame.mixer.music.get_busy():
    pygame.time.Clock().tick(10)

当我运行代码时,没有声音,程序在一秒钟内结束。最初我没有 while 循环,直到我看到类似问题的答案中的建议。该程序在我朋友的windows系统上确实进入了while循环,但在我的mac上没有,即使在我朋友的windows系统上也没有任何声音。有人知道如何解决吗?

4

6 回答 6

16

在 Ubuntu 10.04 和 Pygame 1.9.1 上运行良好。

你可以尝试一些事情:

  • 初始化整个pygamepygame.init()
  • i_4_got 的建议(创建展示)pygame.display.set_mode((200,100))
  • 在播放 get_busy 之间暂停(打勾)
  • 循环内的轮询事件pygame.event.get()

例子:

import pygame
pygame.init()
pygame.display.set_mode((200,100))
pygame.mixer.music.load("only one.mp3")
pygame.mixer.music.play(0)

clock = pygame.time.Clock()
clock.tick(10)
while pygame.mixer.music.get_busy():
    pygame.event.poll()
    clock.tick(10)
于 2012-11-30T22:01:16.230 回答
1
import winsound
winsound.PlaySound(filename [as string with path if necessary], flag [integer z.B. 1 for asynchronous] )

这适用于Windows 8 和 Python 2.7.6*.wav文件

如果您键入winsound.并查找自动填充列表,您可以检查不同的标志。
标志相似SND_FILENAME或相似。
如果您将它们输入到编辑器中,例如:您会从上面的命令*winsound.SND_FILENAME 中获得要应用的整数PLaySound

玩得开心

于 2014-11-24T18:57:38.263 回答
1

Pygame声音不起作用修复

信息

尝试重新安装 pygame 或升级它 我有通过以下命令 1.9.1升级到的版本1.9.3

pip install pygame --upgrade

笔记:


如果您使用 easy_install 安装它,则它不起作用。不确定,但是当我尝试使用 easy_install 时它不起作用


该代码与您的代码相同,但我只是将其替换为我的音乐文件以进行检查。
您可以在图像中看到它:

在这张图片中

.wav 文件似乎运行良好

我用.mp3文件检查了它,发现它不起作用。您可以将 .mp3 转换为 .wav:转换器

或使用PyMedia
如果您不想使用任何网站进行转换。
您也可以使用 pydub 进行转换。

你可以从这里下载 pydub

关联

或者在命令行中输入这个命令:

pip install pydub
于 2017-04-11T14:45:52.863 回答
0

您必须将其添加到末尾,以使 pygame 满意:

while True:
    for event in pygame.event.get():
            if event.type==QUIT:
                pygame.quit()
                sys.exit()

另外,导入系统。

于 2021-03-02T22:27:54.960 回答
0

通常,Pygame 不会播放 mp3 文件。您可以测试看看 .wav 和 .ogg 文件是否会首先播放,以确保您的代码是正确的(根据您粘贴的内容,它似乎是正确的)。我建议将您的 mp3 声音转换为 Pygame 的 ogg。

于 2019-09-19T17:58:37.493 回答
-2

如果你将mp3更改为ogg格式会更容易,试试这个..它很简单

from pygame import *
pygame.init()
pygame.mixer.music.load("only one.ogg")
pygame.mixer.music.play(-1)
pygame.mixer.music.set_volume(0.3)

如果有效,请投票回答,如果无效,请告诉我出了什么问题

于 2012-12-01T14:28:17.997 回答