使用pygame播放音乐,但没有声音

时间:2012-11-30 17:14:47

标签: python macos pygame

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系统上也没有任何声音。有人知道怎么解决吗?

6 个答案:

答案 0 :(得分:12)

适用于Ubuntu 10.04和Pygame 1.9.1。

你可以尝试一些事情:

  • 初始化整个pygame pygame.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)

答案 1 :(得分: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命令中获取要应用的整数

玩得开心

答案 2 :(得分:1)

Pygame声音无效修复

INFO

  

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

pip install pygame --upgrade

注意:

  

如果使用easy_install安装它,它确实无法正常工作。不确定但是   当我尝试使用easy_install时,它无法正常工作

代码与您的相同,但我只是用我的音乐文件替换它来检查它 你可以在图片中看到它:

In this image

.wav文件似乎运行良好

  

我使用 .mp3 文件检查了它,发现它确实无法正常工作。   您可以将.mp3转换为.wav:Converter

     

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

您可以从此

下载pydub
  

link

或者在命令行中输入以下命令:

pip install pydub

答案 3 :(得分:0)

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

答案 4 :(得分:0)

你必须把这个加到最后,才能让 pygame 开心:

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

另外,导入系统。

答案 5 :(得分:-1)

如果你把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)

投票答案如果它的工作,如果没有告诉我什么是错的