作者[美]Al Sweigart(斯维加特)

2.22 播放声音

播放存储在声音文件中的声音,甚至比显示图像文件中的图像还要简单。首先,必须通过调用pygame.mixer.Sound()构造函数,来创建一个pygame.mixer.Sound对象(后面我们将其简称为Sound对象)。它接受一个字符串参数,这是声音文件的文件名。Pygame可以加载WAV、MP3或OGG文件。http://invpy.com/formats 介绍了这些声音文件格式的区别。

要播放声音,调用Sound对象的play()方法。如果想要立即停止Sound对象播放,调用stop()方法。stop()方法没有参数。如下是一些示例代码。

python 实时显示音频波形 python怎么播放声音_播放声音

可以从http://invpy.com/beeps.wav 下载beeps.wav 文件。

在调用play()之后,程序会立即继续执行;在移动到下一行代码之前,它不会等待声音播放完成。

当玩家受到伤害、挥动一次剑,或收到一个硬币的时候,用Sound对象播放声音效果,这对游戏来说是很不错的。但是,如果不管游戏中发生了什么,都有一个背景音乐在播放,你的游戏可能会更好。Pygame一次只能加载一个作为背景音乐播放的声音文件。要加载一个背景声音文件,调用pygame.mixer.music.load()函数并且将要加载的声音文件作为一个字符串参数传递。这个文件可以是WAV、MP3或MIDI格式。

要开始把加载的声音文件作为背景音乐播放,调用pygame.mixer.music.play(−1, 0.0)函数。当到达了声音文件的末尾的时候,−1参数会使得背景音乐永远循环。如果将其设置为一个整数0或者更大,那么,音乐只能循环指定的那么多次数,而不是永远循环。0.0意味着从头开始播放声音文件。如果这是一个较大的整数值或浮点值,音乐会开始播放直到声音文件中指定的那么多秒。例如,如果传入13.5作为第二个参数,声音文件会从开始处播放到第13.5秒的地方。

要立即停止背景音乐,调用pygame.mixer.music.stop()函数。该函数没有参数。

如下是声音方法和函数的一些示例代码。

python 实时显示音频波形 python怎么播放声音_字符串_02