pygame.mixer 模組提供簡單易用的音訊播放功能,支援 MP3、WAV、OGG 等格式。本文介紹兩種常見播放音樂的寫法,並說明關鍵參數用法,適合遊戲開發、多媒體應用入門參考。
pygame 會在第一次呼叫 pygame.mixer.music 時自動初始化混音器,適合簡單腳本:
import pygame
filename = '/home/A.mp3'
pygame.mixer.music.load(filename)
pygame.mixer.music.play(loops=0, start=0.0)
loops=0:播放一次;設為 -1 可無限循環start=0.0:從頭開始播放(秒數),可指定跳轉位置手動呼叫 pygame.mixer.init() 可自訂取樣率、位元深度、聲道數,避免預設值不相容問題:
import pygame
filename = '/home/pengtao/Music/b.mp3'
pygame.mixer.init() # 可加參數:frequency=44100, size=-16, channels=2, buffer=4096
pygame.mixer.music.load(filename)
pygame.mixer.music.play(1) # 播放 2 次(1 表示重複 1 次,共播 2 次)
| 函式 | 說明 |
|---|---|
pygame.mixer.music.pause() | 暫停播放 |
pygame.mixer.music.unpause() | 繼續播放 |
pygame.mixer.music.stop() | 停止播放 |
pygame.mixer.music.set_volume(0.5) | 設定音量(0.0~1.0) |
pygame.mixer.music.get_pos() | 取得目前播放位置(毫秒) |
pygame.mixer.music.queue(next_track) | 排入下一首(無縫銜接) |
import pygame
import time
pygame.mixer.init()
pygame.mixer.music.load('song.mp3')
pygame.mixer.music.play(-1) # 無限循環
print("播放中... 按 Ctrl+C 停止")
try:
while pygame.mixer.music.get_busy():
time.sleep(1)
except KeyboardInterrupt:
pygame.mixer.music.stop()
print("已停止")
libmpg123,Windows 通常內建)pygame.mixer.Sound 載入記憶體,music 適合串流播放長音樂pygame.mixer.quit() 釋放資源