Gab*_*lli 19 python audio pygame
我正在尝试使用pygame播放声音文件(.wav),但是当我启动它时,我从未听到任何声音.
这是代码:
import pygame
pygame.init()
pygame.mixer.init()
sounda= pygame.mixer.Sound("desert_rustle.wav")
sounda.play()
Run Code Online (Sandbox Code Playgroud)
我也试过使用频道但结果是一样的
Tri*_*ion 16
对于我(在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)
Run Code Online (Sandbox Code Playgroud)
sounda.play()返回播放声音所需的对象.有了它,您还可以查看声音是否仍在播放:
channela = sounda.play()
while channela.get_busy():
pygame.time.delay(100)
Run Code Online (Sandbox Code Playgroud)
我没有播放混音器的声音.声音,但它在我创建窗口后开始工作,这是一个最小的例子,只需更改你的文件名,运行并按UP键进行播放:
WAVFILE = 'tom14.wav'
import pygame
from pygame import *
import sys
mixer.pre_init(frequency=44100, size=-16, channels=2, buffer=4096)
pygame.init()
print pygame.mixer.get_init()
screen=pygame.display.set_mode((400,400),0,32)
while True:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
if event.type == KEYDOWN:
if event.key==K_ESCAPE:
pygame.quit()
sys.exit()
elif event.key==K_UP:
s = pygame.mixer.Sound(WAVFILE)
ch = s.play()
while ch.get_busy():
pygame.time.delay(100)
pygame.display.update()
Run Code Online (Sandbox Code Playgroud)
小智 5
你需要做的是这样的:
import pygame
import time
pygame.init()
pygame.mixer.init()
sounda= pygame.mixer.Sound("desert_rustle.wav")
sounda.play()
time.sleep (20)
Run Code Online (Sandbox Code Playgroud)
我告诉程序休眠的原因是因为我想要一种无需输入大量代码就可以保持运行的方法。我遇到了同样的问题,声音没有播放,因为程序在尝试播放音乐后立即关闭。
如果您希望程序实际执行某些操作,只需键入所有必要的代码,但要确保它能够持续足够长的时间以完全播放声音。
你的代码desert_rustle.wav在我的机器上运行得很好(Mac OSX 10.5,Python 2.6.4,pygame 1.9.1)。您使用什么操作系统、Python 和 pygame 版本?您能否.wav通过其他方式听到“确定”(例如,open在 Mac 终端或startWindows 控制台上,后跟文件名/.wav文件路径)以确保文件未损坏?如果无法重现它并且没有所有这些关键细节,则很难调试您的特定问题(这与您提供的代码无关)。
| 归档时间: |
|
| 查看次数: |
40151 次 |
| 最近记录: |