声音文件无法在pygame中播放

时间:2014-02-01 15:54:48

标签: python audio pygame ubuntu-12.04 windows-7-x64

我在播放pygame时遇到了很多麻烦。

import pygame

pygame.init()
pygame.mixer.init()

sounda = pygame.mixer.Sound('G:/Portable Python/asharp.ogg') #Path and Sound File
soundb = pygame.mixer.Sound('asharp.ogg') #This also slips through without prompting an error, presumably both cmds work


sounda.play()
soundb.play()

这是我一直在玩的代码,我无法将声音文件用于在我的Windows 7 64位桌面上运行2.7.5的Portable python。我也在我的Linux笔记本电脑上试过这个,当播放声音文件时,我只听到一个短片而不是实际的声音文件。

有人有什么想法吗?

编辑我想提一下有关声音文件的内容。基本上我使用了一个带有插件'vanguard'创建了一个合成器。然后我做的是将该合成器上的注释分别导出到.wav文件中。然后为了让它们进入.ogg格式,我使用Audacity来剪切这些音符上的额外空间,然后将它们从Audacity导出为.ogg格式。此外,当我创建.wav文件时,我在70bpm播放它们。我不确定这与我在python中得到的输出有什么关系。我需要完成一些功课,如果可以的话,我会尝试其他.ogg声音文件。

2 个答案:

答案 0 :(得分:0)

好的,对于频道来说,这就是你基本上如何设置它。请注意,在每个频道上,您一次只能发布一个声音,并且尝试执行更多操作将导致第一个停止。但是,您可以创建多个通道来播放声音。

可在以下网址找到更多信息:http://www.pygame.org/docs/ref/mixer.html#pygame.mixer.Channel

channelA = pygame.mixer.Channel(1)
sounda = pygame.mixer.Sound("asharp.ogg")
channelA.set_volume(1.0)
channelA.play(sounda)

答案 1 :(得分:0)

sounda.play()返回播放声音所需的对象。有了它,您还可以查看声音是否仍在播放:

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

同样的声音...