URLhttps://learnscript.net/zh/pygame/mixer/music/
    复制链接转到说明  示例

    使用 mixer_music 模块控制背景音乐

    我被代码海扁署名-非商业-禁演绎
    阅读 2:41·字数 806·发布 

    引言

    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_volumeset_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