不能在同一场景中播放不同频率的声音

时间:2014-09-12 18:44:44

标签: python-2.7 pygame

在同一个游戏场景中,我尝试播放几种声音:一种音乐文件声音和一些声音效果(如激光击中船或发射鱼雷)。这些与pygame.mixer的经典设置值配合使用。所以我打字:

pygame.mixer.init(22050, -16, 2, 4096)

但是我想在这个场景开始时播放一个声音文件(一个声音),经过多次尝试后,似乎这个声音应该以30000的频率播放才恰到好处。所以我想播放所有的声音。在22050频率的场景,除了这个,我想以正确的30000频率播放,我不能在同一时间播放。这就是我尝试的:

pygame.mixer.init(30000, -16, 2, 4096)
die = pygame.mixer.Sound('die.ogg')
die.set_volume(0.40)
die.play(0)
pygame.mixer.quit()
pygame.mixer.init(22050, -16, 2, 4096)
pygame.mixer.music.load('Sounds/through space.ogg')
pygame.mixer.music.play(-1)

这并没有发挥'die.ogg'声音文件。或者,如果我删除行:

pygame.mixer.quit()
pygame.mixer.init(22050,-16, 2, 4096)

其他声音不能很好地播放。我应该删除“死亡”。声音对象和他的频率还是有另一种方法可以很好地播放所有声音吗?

1 个答案:

答案 0 :(得分:1)

您应该在音频编辑软件中打开声音。 (Audacity是免费的)。大多数情况下你可以拖放,但通常有一个文件>导入选项。

导入单个文件。文件>退回或文件>导出相同的文件并仔细查看选项。您应该能够选择文件格式,采样率和位深度。按照你想要的方式设置后,完成反弹。

对每个声音文件重复此过程,每次使用相同的反弹设置。

这是最干净的解决方案。您将了解您的采样率。如果您的节目期望采样率为4400k(44.1k)并且只能获得30k的录音,则播放速度会过快。