pygame.mixer.music
pygame module for controlling streamed audio
— Load a music file for playback
— Unload the currently loaded music to free up resources
— Start the playback of the music stream
— restart music
— stop the music playback
— temporarily stop music playback
— resume paused music
— stop music playback after fading out
— set the music volume
— get the music volume
— check if the music stream is playing
— set position to play from
— get the music play time
— queue a sound file to follow the current
— have the music send an event when playback stops
— get the event a channel sends when playback stops

音乐模块与 pygame.mixerpygame module for loading and playing sounds 。使用音乐模块控制混音器中音乐的播放。

音乐播放和常规声音播放的不同之处在于,音乐是流播放的,而不是真正一次加载所有音乐。混音器系统一次仅支持单个音乐流。

在较旧的电子游戏版本上, MP3 在Mac和Linux下的支持是有限的。这在骗局中发生了变化。 v2.0.2 它得到了改进的MP3支持。考虑使用 OGG 音乐的文件格式,因为在大多数情况下,这种格式的压缩效果略好于MP3。

pygame.mixer.music.load()
Load a music file for playback
load(filename) -> None
load(fileobj, namehint="") -> None

这将加载音乐文件名/文件对象,并准备播放。如果音乐流已经在播放,它将被停止。这不会开始播放音乐。

如果从文件对象加载,则可以使用namehint参数指定对象中音乐数据的类型。例如: load(fileobj, "ogg") 。

Changed in pygame 2.0.2: 添加了可选选项 namehint 论据

pygame.mixer.music.unload()
Unload the currently loaded music to free up resources
unload() -> None

这将关闭资源,如可能加载的任何音乐的文件。

New in pygame 2.0.0.

pygame.mixer.music.play()
Start the playback of the music stream
play(loops=0, start=0.0, fade_ms=0) -> None

这将播放加载的音乐流。如果音乐已经在播放,它将重新启动。

loops 是一个可选的整型参数,它是 0 默认情况下,它指示重复播放音乐的次数。如果此参数设置为,音乐将无限期重复 -1 。

start 是一个可选的浮点参数,它是 0.0 默认情况下,它表示音乐开始播放的时间位置。开始位置取决于播放的音乐的格式。 MP3 和 OGG 使用位置作为以秒为单位的时间。为 MP3 文件选择的开始时间位置可能不准确,因为像可变比特率编码和ID3标签这样的东西可能会扰乱计时计算。为 MOD 它是音乐图案的订单号。如果无法设置开始位置,传递开始位置将引发NotImplementedError。

fade_ms 是一个可选的整型参数,它是 0 默认情况下,表示音乐从音量级别逐渐减弱的时间段(以毫秒为单位 0.0 设置为最大音量(或先前由 set_volume() )。样本可能会在淡入完成之前结束。如果音乐已经开始流媒体播放 fade_ms 被忽略。

Changed in pygame 2.0.0: 添加了可选选项 fade_ms 论据

pygame.mixer.music.rewind()
restart music
rewind() -> None

将当前音乐的播放重置到开头。如果 pause() 如果之前已习惯暂停音乐,则音乐将保持暂停状态。

备注

rewind() 支持有限数量的文件类型,尤其是 WAV 不支持文件。对于不支持的文件类型,请使用 play() 这将重新启动已在播放的音乐(请注意,这将重新开始播放音乐,即使先前暂停)。

pygame.mixer.music.stop()
stop the music playback
stop() -> None

如果当前正在播放音乐,则停止播放。如果设置了EnDevent,则将触发该事件。它不会卸载音乐。

pygame.mixer.music.pause()
temporarily stop music playback
pause() -> None

暂时停止播放音乐流。它可以使用 unpause() 功能。

pygame.mixer.music.unpause()
resume paused music
unpause() -> None

这将在暂停后继续播放音乐流。

pygame.mixer.music.fadeout()
stop music playback after fading out
fadeout(time) -> None

淡出并停止当前播放的音乐。

这个 time 参数表示生成淡入淡出效果的整数毫秒数。

请注意,此功能会一直阻止,直到音乐淡出。呼叫至 fadeout() 和 set_volume() 在这段时间内不会有任何影响。如果事件是使用 set_endevent() 它将在音乐褪色后被调用。

pygame.mixer.music.set_volume()
set the music volume
set_volume(volume) -> None

设置音乐播放的音量。

这个 volume 参数是一个浮点型 0.0 和 1.0 这将设置音量级别。加载新音乐时,音量将重置为最大音量。如果 volume 为负值时,它将被忽略,音量将保持在当前水平。如果 volume 参数大于 1.0 ,音量将设置为 1.0 。

pygame.mixer.music.get_volume()
get the music volume
get_volume() -> value

返回混音器的当前音量。该值将介于 0.0 和 1.0 。

pygame.mixer.music.get_busy()
check if the music stream is playing
get_busy() -> bool

当音乐流正在活动播放时返回True。当音乐空闲时,它返回FALSE。在pyGame 2.0.1及更高版本中,当音乐暂停时,该函数返回FALSE。在PYGAME 1中,当音乐暂停时返回True。

Changed in pygame 2.0.1: 音乐暂停时返回FALSE。

pygame.mixer.music.set_pos()
set position to play from
set_pos(pos) -> None

这将在音乐文件中设置开始播放的位置。“pos”的意思是一个浮点数(或一个可以转换为浮点数的数字),取决于音乐格式。

为 MOD FILES,POS是模块中的整数图案编号。为 OGG 它是声音开始处的绝对位置,以秒为单位。为 MP3 文件,它是相对于当前位置的相对位置,以秒为单位。中的绝对定位。 MP3 文件,第一次调用 rewind() 。

不支持其他文件格式。与早期版本相比,较新版本的SDL_Mixer具有更好的定位支持。如果特定格式不支持定位,则会引发SDLError。

功能 set_pos() 为SDL_Mixer函数加下划线的调用 Mix_SetMusicPosition 。

New in pygame 1.9.2.

pygame.mixer.music.get_pos()
get the music play time
get_pos() -> time

这将获取音乐已播放的毫秒数。返回的时间只表示音乐播放了多长时间;它不考虑任何开始位置的偏移。

pygame.mixer.music.queue()
queue a sound file to follow the current
queue(filename) -> None
queue(fileobj, namehint="", loops=0) -> None

这将加载一个声音文件并将其排队。当前声音自然结束后,排队的声音文件将立即开始。一次只能排队一个声音。在排队另一个声音的同时排队新声音将导致新声音成为排队的声音。此外,如果当前声音被停止或更改,排队的声音也将丢失。

如果从文件对象加载,则可以使用namehint参数指定对象中音乐数据的类型。例如: queue(fileobj, "ogg") 。

下面的示例将播放六次巴赫的音乐,然后播放一次莫扎特的音乐:

pygame.mixer.music.load('bach.ogg')
pygame.mixer.music.play(5)        # Plays six times, not five!
pygame.mixer.music.queue('mozart.ogg')

Changed in pygame 2.0.2: 添加了可选选项 namehint 论据

pygame.mixer.music.set_endevent()
have the music send an event when playback stops
set_endevent() -> None
set_endevent(type) -> None

当音乐播放完毕时,这会导致pyGame发出信号(通过事件队列)。该参数确定将排队的事件的类型。

该活动将在每次音乐结束时排队,而不仅仅是第一次。若要停止将事件排队,请不带参数调用此方法。

pygame.mixer.music.get_endevent()
get the event a channel sends when playback stops
get_endevent() -> type

返回每次音乐播放结束时发送的事件类型。如果没有参与者,则函数返回 pygame.NOEVENT 。




Edit on GitHub