-
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.mixer
pygame module for loading and playing sounds 。使用音乐模块控制混音器中音乐的播放。音乐播放和常规声音播放的不同之处在于,音乐是流播放的,而不是真正一次加载所有音乐。混音器系统一次仅支持单个音乐流。
在较旧的电子游戏版本上,
MP3
在Mac和Linux下的支持是有限的。这在骗局中发生了变化。v2.0.2
它得到了改进的MP3支持。考虑使用OGG
音乐的文件格式,因为在大多数情况下,这种格式的压缩效果略好于MP3。- pygame.mixer.music.load()¶
- Load a music file for playbackload(filename) -> Noneload(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 resourcesunload() -> None
这将关闭资源,如可能加载的任何音乐的文件。
New in pygame 2.0.0.
- pygame.mixer.music.play()¶
- Start the playback of the music streamplay(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 musicrewind() -> None
将当前音乐的播放重置到开头。如果
pause()
如果之前已习惯暂停音乐,则音乐将保持暂停状态。
- pygame.mixer.music.stop()¶
- stop the music playbackstop() -> None
如果当前正在播放音乐,则停止播放。如果设置了EnDevent,则将触发该事件。它不会卸载音乐。
- pygame.mixer.music.pause()¶
- temporarily stop music playbackpause() -> None
暂时停止播放音乐流。它可以使用
unpause()
功能。
- pygame.mixer.music.unpause()¶
- resume paused musicunpause() -> None
这将在暂停后继续播放音乐流。
- pygame.mixer.music.fadeout()¶
- stop music playback after fading outfadeout(time) -> None
淡出并停止当前播放的音乐。
这个
time
参数表示生成淡入淡出效果的整数毫秒数。请注意,此功能会一直阻止,直到音乐淡出。呼叫至
fadeout()
和set_volume()
在这段时间内不会有任何影响。如果事件是使用set_endevent()
它将在音乐褪色后被调用。
- pygame.mixer.music.set_volume()¶
- set the music volumeset_volume(volume) -> None
设置音乐播放的音量。
这个
volume
参数是一个浮点型0.0
和1.0
这将设置音量级别。加载新音乐时,音量将重置为最大音量。如果volume
为负值时,它将被忽略,音量将保持在当前水平。如果volume
参数大于1.0
,音量将设置为1.0
。
- pygame.mixer.music.get_volume()¶
- get the music volumeget_volume() -> value
返回混音器的当前音量。该值将介于
0.0
和1.0
。
- pygame.mixer.music.get_busy()¶
- check if the music stream is playingget_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 fromset_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 timeget_pos() -> time
这将获取音乐已播放的毫秒数。返回的时间只表示音乐播放了多长时间;它不考虑任何开始位置的偏移。
- pygame.mixer.music.queue()¶
- queue a sound file to follow the currentqueue(filename) -> Nonequeue(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 stopsset_endevent() -> Noneset_endevent(type) -> None
当音乐播放完毕时,这会导致pyGame发出信号(通过事件队列)。该参数确定将排队的事件的类型。
该活动将在每次音乐结束时排队,而不仅仅是第一次。若要停止将事件排队,请不带参数调用此方法。
- pygame.mixer.music.get_endevent()¶
- get the event a channel sends when playback stopsget_endevent() -> type
返回每次音乐播放结束时发送的事件类型。如果没有参与者,则函数返回
pygame.NOEVENT
。
Edit on GitHub