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 默认情况下,它表示音乐开始播放的时间位置。开始位置取决于播放的音乐的格式。 MP3OGG 使用位置作为以秒为单位的时间。为 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.01.0 这将设置音量级别。加载新音乐时,音量将重置为最大音量。如果 volume 为负值时,它将被忽略,音量将保持在当前水平。如果 volume 参数大于 1.0 ,音量将设置为 1.0

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

返回混音器的当前音量。该值将介于 0.01.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