import pygame,time pygame.init() screen = pygame.display.set_mode((196, 100)) pygame.display.set_caption("pygame.mouse函數") pygame.mixer.music.load('酒醉的蝴蝶.mp3') #載入音樂 #音樂可以是ogg、mp3、wav等格式 #載入的音樂不會全部放到內容中,而是以流的形式播放的,即在播放的時候才會一點點從文件中讀取 pygame.mixer.music.play() #播放載入的音樂 #該函數立即返回,音樂播放在后台進行。play方法還可以使用兩個參數
#如果音樂已經播放,它就會重新啟動
#play(loops=0, start=0.0) -> None
#參數1:控制音樂播放的次數。播放(5)將使音樂播放一次,然后重復5次,總共是6次。如果循環是-1,那么音樂就會無限重復
#起始位置的參數控制着歌曲開始播放的地方。起始位置取決於音樂演奏的格式。MP3和OGG以時間為單位(以秒為單位)。MOD音樂是模式的序號。如果不能設置起始位置,通過一個startpos將會拋出一個NotImplementedError
time.sleep(10) pygame.mixer.music.load('酒醉的蝴蝶.mp3') #如果一個音樂流已經播放,它就會被停止。這並不是音樂的開始 while True: event=pygame.event.wait() if event.type == pygame.QUIT: exit() pygame.display.update()
pygame.mixer.music.rewind() #重新啟動音樂 #將當前音樂的播放重新設置為一開始
pygame.mixer.music.stop() #停止音樂播放
pygame.mixer.music.pause() #暫時停止音樂播放 pygame.mixer.music.unpause() #恢復暫停音樂
pygame.mixer.music.fadeout(30000) #再播放指定時間后就淡出並停止播放音樂 #單位:毫秒 #此函數將阻塞,直到音樂淡出
print('音量0.5') pygame.mixer.music.set_volume(0.5) #調節音樂音量 #設置音樂播放的音量。值參數在0.0和1.0之間。當加載新音樂時,音量就會重置 time.sleep(30) print('音量1') pygame.mixer.music.set_volume(1) time.sleep(30) print('音量0.3') pygame.mixer.music.set_volume(0.3)
b=pygame.mixer.music.get_volume() #返回當前音量 #值將在0.0和1.0之間
b=pygame.mixer.music.get_busy() #檢查音樂流是否在播放 #當音樂流在積極播放時,就會返回True。當音樂空閑時,返回False #暫停相當於在播放,返回True
x=pygame.mixer.music.get_pos() #獲得音樂播放時間 #單位:毫秒 #注意:不是播放位置 pygame.mixer.music.set_pos(30) #設定播放位置 ''' 這將在播放播放的音樂文件中設置位置。“pos”的含義,一個浮點數(或一個可以轉換為浮點數的數字),取決於音樂的格式。對於MOD文件,它是模塊中的整數模式號。從聲音的開始,在幾秒鍾內,就會得到絕對的位置。對於MP3文件,它是相對位置,在幾秒內,從當前位置。對於MP3文件中的絕對定位,首先調用rewind()。其他文件格式是不支持的。更新版本的sdl混音版本比以前更有定位支持。如果某個特定格式不支持定位,則會提高一個SDLError 【MP3:從當前位置再往后推延指定的秒數】 '''
import pygame,time pygame.init() screen = pygame.display.set_mode((196, 100)) pygame.display.set_caption("pygame.mouse函數") pygame.mixer.music.load('酒醉的蝴蝶.mp3') pygame.mixer.music.play() pygame.mixer.music.set_endevent(pygame.KEYDOWN) #當播放停止時,音樂會發送一個事件 #參數:事件 #每次音樂結束時,這個事件都會被排隊,而不僅僅是第一次[只要不在播放狀態,會一直發送]。為了防止事件被排隊,請調用這個方法,沒有參數 b=pygame.mixer.music.get_endevent() #當播放停止時,獲取set_endevent發送的事件--int #pygame.KEYDOWN=2 #如果沒有endevent,函數將返回pygame.NOEVENT print('xxxxxxx',b) while True: event=pygame.event.wait() if event.type == pygame.QUIT: exit() print('aaaaaa',event) pygame.display.update()
b=pygame.mixer.get_init() #測試混音器是否初始化 #如果混音器已初始化,則返回正在使用的播放參數。如果混音器尚未初始化,則返回None #get_init() -> (frequency, format, channels) #(22050, -16, 2)