【问题标题】:play music using pygame but no sound [duplicate]使用pygame播放音乐但没有声音[重复]
【发布时间】:2012-11-30 17:14:46
【问题描述】:
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系统上也没有任何声音。有人知道如何解决吗?

【问题讨论】:

  • 如果你创建了一个显示屏幕,上面的代码就可以工作,没有它就不行。你想在没有 pygame 屏幕的情况下播放音乐吗?我找不到任何显示混音器模块独立于典型 pygame 应用程序工作的文档。
  • 我想你只需要先打开一个窗口。

标签: python macos pygame


【解决方案1】:

在 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)

【讨论】:

    【解决方案2】:
    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 命令中应用的整数

    玩得开心

    【讨论】:

      【解决方案3】:

      Pygame 声音不工作修复

      信息

      尝试重新安装 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
      

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          【解决方案5】:

          为了让 pygame 开心,你必须把它加到最后:

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

          另外,导入系统。

          【讨论】:

            【解决方案6】:

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

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

            【讨论】:

            • 1.在pygame.init() 之前使用import pygame。如果你from pygame import *,pygame 将不会被定义。你会遇到其他问题。 2.pygame.mixer.music.loadpygame.error: Unrecognized file format
            猜你喜欢
            • 2013-10-30
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-02-25
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多