Python中背景音乐

简介

一般游戏来说,声音主要分为两种,一种是背景音乐,一种是音效。

  • 背景音乐就是时刻伴随着游戏存在的,往往就是重复播放的一首曲子或者歌曲

  • 音效就是在某种条件下被触发产生的

Pygame 支持的声音格式十分有限,一般情况下我们使用 .ogg 的格式来做背景音乐,用无压缩的 .wvb 来作为音效

如果是拿到了一个 .mp3 格式,可以使用格式工厂这类的软件把它转为.ogg 或者 .wvb 格式

还需要注意的是music 模块虽然写了支持 .mp3 格式,但是它对 .mp3 格式的支持十分有限,经常你会在网上找到一段很好的 .mp3 的曲子,但是载入之后压根没有声音。你把它转为 .ogg 格式就可以很好的支持了。

声音和音效

1️⃣音效

使用:pygame.mixer.Sound("音乐路径")

播放音效我们使用 mixer 模块,在使用之前需要先生成一个Sound对象 ,对这个Sound对象进行控制,Sound 对象 的 play() 方法就是播放音效。

Sound对象的方法

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

2️⃣背景音乐

使用:pygame.mixer.music

播放背景音乐我们使用 music 模块,music 模块和 mixer 模块是紧密关联的,所以我们用 .mixer.music ,它是在mixer里边的。

music模块方法

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

实例

import pygame							# 导入pygame资源包

pygame.mixer.init()						# 初始化
pygame.mixer.music.load(r'E:\Python_Exercise\123.mp3')	# 加载音乐文件
pygame.mixer.music.play()				# 开始播放音乐流

# 也可以
music = pygame.mixer.Sound(r'E:\Python_Exercise\123.mp3')  # 示例化对象
music.play(-1)  # 如果里面为-1,则为循环播放
posted @ 2022-01-05 21:30  Kenny_LZK  阅读(682)  评论(0编辑  收藏  举报