使用 mixer_music 模块控制背景音乐
阅读 2:41·字数 806·发布
Youtube 频道
Bilibili 空间
关注 1800
关注 1800
如何在 Pygame 中控制背景音乐的播放、循环、音量视频演示 YouTube如何在 Pygame 中控制背景音乐的播放、循环、音量视频演示 Bilibili
引言
Pygame 的混音系统分为两个主要部分:音效和背景音乐。与可以同时播放多个音效不同,Pygame 在同一时间内仅支持播放一个背景音乐,音乐数据采用流式传输。
初始化 mixer_music 模块
要在游戏中处理背景音乐,需要使用 Pygame 的mixer_music模块,该模块依赖于mixer模块的初始化。
import pygame
from pygame import mixer
from pygame import mixer_music
# 初始化混音器系统
pygame.mixer.init()加载音乐文件
mixer_music模块提供了load函数用于加载音乐。加载音乐不会自动开始播放,如果已有音乐正在播放,加载新音乐会停止当前播放。
load(filename, namehint='')
- filename 参数
音频文件路径或包含音频数据的
IO对象。- namehint 参数
当使用
IO对象时,指定音频格式,如ogg。
# 加载音乐文件
pygame.mixer.music.load('sea.mp3')播放控制
mixer_music模块提供了一系列控制函数。
play(loops=0, start=0.0, fade_ms=0)
- loops 参数
默认值
0或设置为1,表示播放一次,设置为-1,表示无限循环播放。
# 播放音乐(循环参数设置为 -1,表示无限循环)
pygame.mixer.music.play(loops=-1)
# 停止播放
pygame.mixer.music.stop()
# 暂停播放
pygame.mixer.music.pause()
# 恢复播放
pygame.mixer.music.unpause()
# 重新开始播放
pygame.mixer.music.rewind()音量控制
mixer_music模块提供了控制音量的函数get_volume和set_volume。
set_volume(volume)
- volume 参数
小于
0,音量不变;大于1,等同于设置为1(最大音量)。
# 获取当前音量(0.0 到 1.0之间)
current_volume = pygame.mixer.music.get_volume()
# 设置音量(0.0 静音,1.0 最大音量)
pygame.mixer.music.set_volume(0.5) # 设置为 50% 音量完整示例
import pygame
from pygame.locals import *
# 初始化
pygame.init()
pygame.mixer.init()
screen = pygame.display.set_mode((400, 300))
pygame.display.set_caption("音乐控制示例")
# 加载音乐
pygame.mixer.music.load('sea.mp3')
pygame.mixer.music.play(loops=-1) # 无限循环播放
running = True
while running:
for event in pygame.event.get():
if event.type == QUIT:
running = False
# 鼠标控制
if event.type == MOUSEBUTTONDOWN:
if event.button == 1: # 左键暂停
pygame.mixer.music.pause()
elif event.button == 3: # 右键恢复
pygame.mixer.music.unpause()
elif event.button == 2: # 滚轮静音
pygame.mixer.music.set_volume(0)
pygame.display.flip()
pygame.quit()讲解视频
如何在 Pygame 中控制背景音乐的播放、循环、音量·YouTube如何在 Pygame 中控制背景音乐的播放、循环、音量·Bilibili