(Python3)- PyGame 基本參數學習-2 (*聲音控制*)
(Python3)- PyGame 基本參數學習-2 (*聲音控制*)
pygame.mixer是一個用來處理聲音的模組,其含義為“混音器”。遊戲中對聲音的處理一般包括製造聲音和播放聲音兩部分,這裡僅學習了播放聲音部分。
1、pygame.mixer啟動與初始化
pygame.mixer.init():mixer的初始化。程式中使用時,一般放在最前面的幾句程式碼中:
程式碼如下:
import pygame
pygame.init()
pygame.mixer.init()
2、播放聲音片段wav檔案
播放聲音片段 wav 檔案時,pygame.mixer 使用 Sound 物件:
程式碼如下:
soundwav=pygame.mixer.Sound (“filename.wav”) #filename.wav檔名
soundwav.play()
在遊戲中,往往用下面的程式碼來完成:
程式碼如下:
import pygame,sys
pygame.init()
pygame.mixer.init()
screen=pygame.display.set_mode ([640,480])
pygame.time.delay(1000) #等待1秒讓mixer完成初始化
soundwav=pygame.mixer.Sound (“filename.wav”)
soundwav.play()
while 1:
for event in pygame.event.get():
if event.type==pygame.QUIT:
sys.exit()
3、播放mp3、wma、ogg音樂檔案
這裡只是學習了一個mp3檔案,如果非windows系統,那可以試試ogg檔案。播放音樂檔案主要使用pygame.mixer中的music模組:
程式碼如下:
pygame.mixer.music.load (“filename.mp3”)
pygame.mixer.music.play (n,start,stop)
#第一個引數為播放次數,如果是-1表示迴圈播放,省略表示只播放1次。第二個引數和第三個引數分別表示播放的起始和結束位置。
完整的程式碼為:
import pygame,sys
pygame.init()
pygame.mixer.init()
screen=pygame.display.set_mode ([640,480])
pygame.time.delay(1000)
pygame.mixer.music.load (“filename.mp3”)
pygame.mixer.music.play()
while 1:
for event in pygame.event.get():
if event.type==pygame.QUIT:
sys.exit()
程式在執行時,一旦開始播放音樂,就會繼續做下一件事情,也就是說,如果我們要播放兩首歌,那麼程式碼如下:
pygame.mixer.music.load (“filename1.mp3”)
pygame.mixer.music.play()
pygame.mixer.music.load (“filename2.mp3”)
pygame.mixer.music.play()
這段程式碼執行後,就會出現兩首歌同時在播放的情況。實際中,我們常常需要播放完一首,再播放另一首,這樣就需要利用pygame.mixer.music.get_busy()函式來判斷,如果函式返回值為True那麼說明目前處於忙的狀態,否則返回 False。
完整的程式碼如下:
import pygame,sys
pygame.init()
pygame.mixer.init()
screen=pygame.display.set_mode ([640,480])
pygame.time.delay(1000)
pygame.mixer.music.load (“filename.mp3”)
pygame.mixer.music.play()
soundwav=pygame.mixer.Sound (“filename.wav”)
while 1:
for event in pygame.event.get():
if event.type==pygame.QUIT:
sys.exit()
if not pygame.mixer.music.get_busy():
soundwav.play()
pygame.time.delay(5000) #等待5秒讓filename.wav播放結束
sys.exit()
4、控制音量
pygame.mixer.music.set_volume()
#用來控制音量,取值範圍為0-1.0的浮點數。0為最小值,1為最大值。
5、mp3播放器
import time
import pygame
file=r'430220.mp3'
pygame.mixer.init()
print("播放音樂1")
track = pygame.mixer.music.load(file)
pygame.mixer.music.play()
time.sleep(10)
pygame.mixer.music.stop()
功能:播放音樂10秒後停止
附錄
pygame.init() 進行全部模組的初始化,
pygame.mixer.init() 或者只初始化音訊部分
pygame.mixer.music.load(‘xx.mp3’) 使用檔名作為引數載入音樂 ,音樂可以是ogg、mp3等格式。載入的音樂不會全部放到內容中,而是以流的形式播放的,即在播放的時候才會一點點從檔案中讀取。
pygame.mixer.music.play()播放載入的音樂。該函式立即返回,音樂播放在後臺進行。
play方法還可以使用兩個引數
pygame.mixer.music.play(loops=0, start=0.0) loops和start分別代表重複的次數和開始播放的位置。
pygame.mixer.music.stop() 停止播放。
pygame.mixer.music.pause() 暫停播放。
pygame.mixer.music.unpause() 取消暫停。
pygame.mixer.music.fadeout(time) 用來進行淡出,在time毫秒的時間內音量由初始值漸變為0,最後停止播放。
pygame.mixer.music.set_volume(value) 來設定播放的音量,音量value的範圍為0.0到1.0。
pygame.mixer.music.get_busy() 判斷是否在播放音樂,返回1為正在播放。
pygame.mixer.music.set_endevent (pygame.USEREVENT 1) 在音樂播放完成時,用事件的方式通知使用者程式,設定當音樂播放完成時傳送 pygame.USEREVENT 1 事件給使用者程式。
pygame.mixer.music.queue(filename) 使用指定下一個要播放的音樂檔案,當前的音樂播放完成後自動開始播放指定的下一個。一次只能指定一個等待播放的音樂檔案。
免責聲明:
1.本影像檔案皆從網上搜集轉載,不承擔任何技術及版權問題。
2.如有下載連結僅供寬頻測試研究用途,請下載後在24小時內刪除,請勿用於商業。
3.若侵犯了您的合法權益,請來信通知我們,我們會及時刪除,給您帶來的不便,深表歉意。