pygame.mixer.music 提供串流播放音樂功能,支援 MIDI、MP3、OGG 等格式。本例示範初始化混音器、載入音樂、播放、音量控制與淡出停止。
import pygame as pg
def play_music(music_file):
clock = pg.time.Clock()
try:
pg.mixer.music.load(music_file)
print("Music file {} loaded!".format(music_file))
except pg.error:
print("File {} not found! {}".format(music_file, pg.get_error()))
return
pg.mixer.music.play()
while pg.mixer.music.get_busy():
clock.tick(30)
# 設定混音器參數
freq = 44100 # CD 品質
bitsize = -16 # 16-bit 有號
channels = 2 # 立體聲
buffer = 2048 # 緩衝區大小
pg.mixer.init(freq, bitsize, channels, buffer)
pg.mixer.music.set_volume(0.8)
music_file = "Latin.mid" # 或 "Drumtrack.mp3"
try:
play_music(music_file)
except KeyboardInterrupt:
pg.mixer.music.fadeout(1000)
pg.mixer.music.stop()
raise SystemExit
| 參數 | 建議值 | 說明 |
|---|---|---|
| freq | 44100 | 取樣率,44.1kHz 為 CD 標準 |
| bitsize | -16 | 16-bit 有號整數(負號表有號) |
| channels | 2 | 1=單聲道,2=立體聲 |
| buffer | 2048 | 樣本數,影響延遲與流暢度 |
play()、stop()、pause()、unpause()fadeout(ms):淡出停止,避免突兀斷音。set_volume(0.0~1.0):主音量。get_busy():是否正在播放。