Python 为什么';我的游戏混音器播放的声音是什么,?

Python 为什么';我的游戏混音器播放的声音是什么,?,python,windows,pygame,windows-7-x64,mixer,Python,Windows,Pygame,Windows 7 X64,Mixer,我的PyGame混音器在2.7版本中无法使用声音选项。我可以用mixer.music使它工作,但不能用mixer.sound,用mixer.sound使它发出轻微的滴答声,然后停止。代码: import pygame pygame.mixer.init(frequency=22050, size=-16, channels=2, buffer=4096) song = pygame.mixer.Sound("song.mp3") pygame.mixer.Sound.play(song) 没有

我的PyGame混音器在2.7版本中无法使用声音选项。我可以用mixer.music使它工作,但不能用mixer.sound,用mixer.sound使它发出轻微的滴答声,然后停止。代码:

import pygame
pygame.mixer.init(frequency=22050, size=-16, channels=2, buffer=4096)
song = pygame.mixer.Sound("song.mp3")
pygame.mixer.Sound.play(song)
没有错误,它只是不会播放,并给出一个小滴答声。
顺便说一句,在windows 7-x64上,Pygame通常不会播放mp3文件。您可以测试.wav和.ogg文件是否会首先播放,以确保您的代码是正确的(根据您粘贴的内容,它似乎是正确的)。我建议您将mp3声音转换为ogg for Pygame。

这很容易解决,因为您的歌曲文件应该作为音乐加载,而不是作为普通声音加载。因此,以下代码使其能够完美工作:

import pygame
pygame.mixer.init(frequency=22050, size=-16, channels=2, buffer=4096)
pygame.mixer.music.load("song.mp3")
pygame.mixer.music.play()

Pygame可以播放mp3文件。我也有同样的问题,但我找到了解决办法:

如果您将mp3文件保存为'filename.mp3',并且您自己写下了.mp3文件扩展名,那么pygame的pygame.mixer.music.load()函数中的文件名必须写为'filename.mp3.mp3',因为python希望您添加.mp3。有时,如果手动将.mp3保存为文件名,则文件名中已包含.mp3

因此,请尝试以下方法:
pygame.mixer.music.load('filename.mp3.mp3')
您刚刚创建了一个名为song的对象

尝试以下方法,而不是“pygame.mixer.Sound.play(song)”:


song.play()

虽然使用音乐模块可以更好地播放歌曲,但音乐模块对于混音器模块所缺少的不同文件类型没有任何功能。在这种情况下,应将音乐模块用于.mp3文件,因为它们不会在混音器模块上播放。虽然使用音乐模块更好,我想说的是,即使这样,它也不会总是支持mp3文件格式。当我使用Audacity将MP3转换为Wave时,Pygame不会播放它。但当我把MP3转换成Ogg Vorbis时,它就工作了。然而,任何最初的声音都会播放。有什么原因吗?@GalenNare我不是Pygame大师,但我最好的预测是,你可能在Audacity中使用某些编解码器或奇怪的设置制作了一个.wav,而“本机”wav文件更普通。这正是我想要的答案。切换了声音格式,突然它开始工作。“隐藏已知文件类型的扩展名”不应该是windows上的设置。。。