Pygame:播放声音和音效 – 零基础入门学习Python087

Pygame:播放声音和音效

 

让编程改变世界

Change the world by program


 

几乎没有任何游戏是一声不吭的,因为多重的感官体验更能刺激玩家的神经。没有声音的游戏就好比是不沾番茄酱的薯条、没有女优的AV、忘记带枪的战士。尽管如此,Pygame 对于声音的处理并不是特别擅长,我说的是如果你想用 Pygame 来做一个炫酷的音乐播放器的话可能不行,因为 Pygame 对声音格式的支持十分有限。不过对于游戏开发来说,是完全足够的。

 

对于一般游戏来说,声音分为背景音乐和音效两种。背景音乐是时刻伴随着游戏存在的,往往是重复播放的一首歌或曲子;而音效则是在某种条件下被触发产生的,例如两个小球碰撞就会发出啪啪啪的声音。刚才我们也说了,Pygame 支持的声音格式十分有限,所以一般情况下我们用 ogg 格式作为背景音乐,用无压缩的 wav 格式作为音效。

 

播放音效我们使用 mixer 模块,需要先生成一个 Sound 对象,然后调用 play() 方法来播放。

 

下表列举了 Sound 对象支持的方法:

方法 含义
play() 播放音效
stop() 停止播放
fadeout() 淡出
set_volume() 设置音量
get_volume() 获取音量
get_num_channels() 计算该音效播放了多少次
get_length() 获得该音效的长度
get_raw() 将该音效以二进制格式的字符串返回

 

播放背景音乐我们使用 music 模块,music 模块是 mixer 模块中的一个特殊实现,因此我们使用 pygame.mixer.music 来调用该模块下的方法。

 

下表列举了 music 模块支持的方法:

方法 含义
load() 载入音乐
play() 播放音乐
rewind() 重新播放
stop() 停止播放
pause() 暂停播放
unpause() 恢复播放
fadeout() 淡出
set_volume() 设置音量
get_volume() 获取音量
get_busy() 检测音乐流是否正在播放
set_pos() 设置开始播放的位置
get_pos() 获取已经播放的时间
queue() 将音乐文件放入待播放列表中
set_endevent() 在音乐播放完毕时发送事件
get_endevent() 获取音乐播放完毕时发送的事件类型

 

…… 此处省略N多内容,具体请看视频讲解 ……

 


为您推荐

报歉!评论已关闭.