Pygame,声音不播放

28 投票
16 回答
56164 浏览
提问于 2025-04-15 23:20

我正在尝试用pygame播放声音文件(.wav格式),但是每次启动时都听不到任何声音。
这是我的代码:

import pygame

pygame.init()
pygame.mixer.init()
sounda= pygame.mixer.Sound("desert_rustle.wav")

sounda.play()

我也尝试过使用通道,但结果还是一样。

16 个回答

13

sounda.play() 会返回一个对象,这个对象是用来播放声音的。通过这个对象,你还可以知道声音是否还在播放:

channela = sounda.play()
while channela.get_busy():
   pygame.time.delay(100)
23

对我来说(在Windows 7上,使用Python 2.7和PyGame 1.9),我实际上需要去掉pygame.init()这个调用才能让它正常工作。或者如果保留pygame.init()的话,至少要在PyGame中创建一个屏幕。

我的例子:

import time, sys
from pygame import mixer

# pygame.init()
mixer.init()

sound = mixer.Sound(sys.argv[1])
sound.play()

time.sleep(5)
1

你的代码在我的电脑上(Mac OSX 10.5,Python 2.6.4,pygame 1.9.1)可以正常播放 desert_rustle.wav。你用的是什么操作系统、Python版本和pygame版本呢?你能通过其他方式听到这个 .wav 文件吗?比如在Mac的终端里用 open 命令,或者在Windows控制台里用 start 命令加上文件名/路径,这样可以确认文件没有损坏吗?要解决你具体的问题(看起来和你给的代码无关),我们需要重现这个问题,还需要这些重要的细节。

撰写回答