Python Pygame声音的播放与停止

在游戏中,我们常常需要通过背景音乐来烘托一种氛围,或者通过某种音效来表达一种游戏状态。很多游戏程序都使用了大量的声音效果,来表现游戏中不同的事件和状态,或者对玩家起到某种提示的作用。

播放声音文件中的声音,甚至比显示图像文件中的图像还要简单。首先,通过调用 pygame.mixer.Sound() 构造函数,来创建一个 pygame.mixer.Sound 对象。它接受一个字符串参数,这个字符串就是声音文件的文件名。Pygame 可以加载 WAV、MP3 或 OGG 等类型的声音文件。

要播放声音,调用 Sound 对象的 play() 方法。如果想要立即停止 Sound 对象的播放,调用 stop() 方法。stop() 方法没有参数。代码如下。
import pygame
pygame.init()
windowSurface=pygame.display.set_mode([500,400])

music=pygame.mixer.Sound("sample.wav")
music.play()

Running=True
while Running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            Running =False

         if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_ESCAPE:
                music.stop()
pygame.quit()

在突出显示的代码中,我们首先初始化混合器,然后将一段背景音乐 sample.wav 加载到一个 Sound 对象中,并将其存储到变量 music 中。接下来,调用 play() 函数播放音乐。另外,在事件循环中,增加了一个对键盘事件的判断,如果按下了 Esc 键,就调用 stop() 函数来停止音乐播放。

需要注意的是,和图像文件一样,我们需要将 sample.wav 保存在和程序文件相同的文件夹之下,程序才能够找到该文件并使用它,否则,就需要指定文件的路径。