PyGame 音效與音樂

Ping-Lun Liao
2 min readMar 4, 2019

--

聲音的基本原理
維基百科對聲音的解釋如下:

聲音是振動產生的聲波,通過介質氣體固體液體)傳播並能被人或動物聽覺器官所感知的波動現象。


而在 聲音記錄與重播的基本原理 一文中,也說明了聲音是「聲波推動人耳的耳膜所產生的感受」

PyGame Tutorial: Music and Sound Effects一文,我們可以知道Pygame控制音樂的基礎程式寫法:

pygame.mixer.music.load(‘foo.mp3’)
pygame.mixer.music.play(0)

底下也是播放一次:

pygame.mixer.music.play() # play once

pygame.mixer.music.load(‘foo.mp3’)
pygame.mixer.music.play(-1)

這個會在播完一首後,繼續播放清單(Queue)裡的音樂。

pygame.mixer.music.queue(‘next_song.mp3’)

pygame.mixer.music.stop()

判斷音樂是否結束播放:

SONG_END = pygame.USEREVENT + 1pygame.mixer.music.set_endevent(SONG_END)
while True:
for event in pygame.event.get():
if event.type == SONG_END:
print(“the song ended!”)

依照這些function以及一點點的GUI設計,就可以設計出簡易的 mp3 player了。
底下程式碼中,按鈕的圖片來源:http://www.iconarchive.com/show/nuoveXT-icons-by-saki.2.html。而測試的音樂是從 https://www.bensound.com/ 下載的。

程式碼:https://gist.github.com/pinglunliao/258aa68c6525f0d8793061e949653761
程式壓縮檔下載處


Demo Video:

Originally published at yunlinsong.blogspot.com on March 4, 2019.

--

--

No responses yet