URLhttps://learnscript.net/zh-hant/pygame/mixer/music/
    複製連結移至說明  範例

    使用 mixer_music 模組控製背景音樂

    閱讀 2:27·字數 738·發佈 
    Youtube 頻道
    訂閱 375

    前言

    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