pygame.mixer.music--音频
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)