基本上 pygame 里的 mixer.Sound 和 mixer.music 导入的音源无差别
其它差别,就如字面上的意思一样,sound 表示声音,music 表示曲。
一般 music 适用于背景音效,因为其长度比 sound 更长(当然也有短的)
而 sound 更适合作为画面渲染效果音效(比如射击,子弹发出的声音等)
至於两者功能也稍微不同:
mixer.Sound
pygame.mixer.Sound.play | 開始聲音播放 |
pygame.mixer.Sound.stop | 停止聲音播放 |
pygame.mixer.Sound.fadeout | 淡出後停止聲音播放 |
pygame.mixer.Sound.set_volume | 設置此聲音的播放音量 |
pygame.mixer.Sound.get_volume | 獲取播放音量 |
pygame.mixer.Sound.get_num_channels | 計算這個聲音播放了多少次 |
pygame.mixer.Sound.get_length | 獲取聲音的長度 |
pygame.mixer.Sound.get_raw | 返迴聲音樣本的字節串副本 |
mixer.music
pygame.mixer.music.load | 加載音樂文件進行播放 |
pygame.mixer.music.unload | 卸載當前加載的音樂以釋放資源 |
pygame.mixer.music.play | 開始播放音樂流 |
pygame.mixer.music.rewind | 重新開始音樂 |
pygame.mixer.music.stop | 停止音樂播放 |
pygame.mixer.music.pause | 暫時停止音樂播放 |
pygame.mixer.music.unpause | 恢復暫停的音樂 |
pygame.mixer.music.fadeout | 淡出後停止音樂播放 |
pygame.mixer.music.set_volume | 設置音樂音量 |
pygame.mixer.music.get_volume | 獲取音樂音量 |
pygame.mixer.music.get_busy | 檢查音樂流是否正在播放 |
pygame.mixer.music.set_pos | 設置播放位置 |
pygame.mixer.music.get_pos | 獲取音樂播放時間 |
pygame.mixer.music.queue | 將聲音文件排隊以跟隨當前 |
pygame.mixer.music.set_endevent | 讓音樂在播放停止時發送一個事件 |
pygame.mixer.music.get_endevent | 獲取頻道在播放停止時發送的事件 |
我的代码如下图,我通常会以 music 作为背景曲,sound 作为游戏音效(一般都这样,但没有指定一定要这样,随意)