目录
pygame.mixer.set_num_channels()
pygame.mixer.get_num_channels()
pygame.mixer.get_sdl_mixer_version()
pygame.mixer.Sound.set_volume()
pygame.mixer.Sound.get_volume()
pygame.mixer.Sound.get_num_channels()
pygame.mixer.Sound.get_length()
pygame.mixer.Channel.unpause()
pygame.mixer.Channel.fadeout()
pygame.mixer.Channel.set_volume()
pygame.mixer.Channel.get_volume()
pygame.mixer.Channel.get_busy()
pygame.mixer.Channel.get_sound()
pygame.mixer.Channel.get_queue()
pygame.mixer.Channel.set_endevent()
pygame.mixer.Channel.get_endevent()
pygame.mixer.music.set_volume()
pygame.mixer.music.get_volume()
pygame.mixer.music.set_endevent()
pygame.mixer.music.get_endevent()
此模块包含用于加载声音对象和控制播放的类,以及一个用于播放音乐的的流媒体频道。混音器模块是可选的,取决于SDL_mixer。程序需要测试 pygame.mixer
可用并在使用前初始化。
pygame.mixer.init()
函数需要几个可选参数来控制播放速率和样本大小。Pygame将默认为合理的值,但是Pygame不能执行声音重采样,因此应该初始化混音器以匹配音频资源的值。pygame.mixer.init()
或 pygame.init()
之前调用pygame.mixer.pre_init()
。例如:pygame.mixer.pre_init(44100,-16,2, 1024)
pygame.mixer.music
模块控制音乐播放。音乐播放和常规声音播放的区别在于,音乐是流媒体播放的,而不是一次全部加载。混音系统一次只支持一个音乐流。但是注意MP3支持是有限的。在某些系统上,不支持的格式可能会使程序崩溃,例如Debian Linux,考虑改用OGG。pygame.mixer.
init
()功能:初始化混音器模块
属性:init(frequency=44100, size=-16, channels=2, buffer=512, devicename=None, allowedchanges=AUDIO_ALLOW_FREQUENCY_CHANGE | AUDIO_ALLOW_CHANNELS_CHANGE) -> None
初始化混音器模块以加载和播放声音。可以重写默认参数以提供特定的音频混合。可以接受关键字参数,并对于设置为零的参数有向后兼容性,即替换为默认值。【可调用 pre_init 更改】
pygame.mixer
模块。最高层 pygame.init()
自动处理此问题,但不能将任何参数传递给混音器初始化方法。为了解决这个问题,mixer有一个函数 pygame.mixer.pre_init()
可以在使用顶层初始化之前设置正确的默认值。
|
New in pygame 2:为SDL2添加了allowedchanges。这对SDL1没有影响(即请求的格式可能总是与返回的格式不同)。
pygame.mixer.quit()
无法更改播放参数。Changed in pygame 1.8::默认缓冲区大小从1024更改为3072。The default buffersize
was changed from 1024 to 3072.
Changed in pygame 1.9.1:默认缓冲区大小从3072更改为4096。
Changed in pygame 2.0.0:默认缓冲区大小从4096更改为512。默认频率从22050更改为44100。
pygame.mixer.
pre_init
()功能:预设混音器初始参数
属性:pre_init(frequency=44100, size=-16, channels=2, buffer=512, devicename=None) -> None
当实际调用 pygame.mixer.init()
时调用 pre_init 更改默认使用值。可以接受关键字参数。设置自定义混音器播放值的最佳方法是在顶层初始化 pygame.init()
之前调用 pygame.mixer.pre_init()
。具有向后兼容性,参数值0将替换为启动默认值。
Changed in pygame 1.8::默认缓冲区大小从1024更改为3072。The default buffersize
was changed from 1024 to 3072.
Changed in pygame 1.9.1:默认缓冲区大小从3072更改为4096。
Changed in pygame 2.0.0:默认缓冲区大小从4096更改为512。默认频率从22050更改为44100。
pygame.mixer.
quit
()功能:取消混音器初始化
属性:quit() -> None
将取消初始化pygame.mixer
。如果稍后重新初始化混音器,则所有播放都将停止,并且任何加载的声音对象可能与混音器不兼容。
pygame.mixer.
get_init
()功能:测试混音器是否初始化
属性:get_init() -> (frequency, format, channels)
如果混音器已初始化,则返回正在使用的播放参数。如果混音器尚未初始化,则返回None
。
pygame.mixer.
stop
()功能:停止播放所有声道
属性:stop() -> None
pygame.mixer.
pause
()功能:暂时停止所有声道的播放
属性:pause() -> None
稍后可以使用 pygame.mixer.unpause()
恢复播放。
pygame.mixer.
unpause
()功能:恢复暂停的声道播放
属性:unpause() -> None
pygame.mixer.
fadeout
()功能:停止前将所有声音的音量淡出
属性:fadeout(time) -> None
将在时间参数(毫秒)中淡出所有活声道通道上的音量。静音后,播放将停止。
pygame.mixer.
set_num_channels
()功能:设置播放频道总数
属性:set_num_channels(count) -> None
设置混音器的可用频道数。默认值为8。该值可以增加或减少。如果该值减小,则在缩减的频道上播放的声音将停止。
pygame.mixer.
get_num_channels
()功能:获取当前活动的播放频道的总数【返回值】
属性:get_num_channels() -> count
pygame.mixer.
set_reserved
()功能:预约自动使用的频道
属性:set_reserved(count) -> None
混音器可以预约任意数量的声道,这些声道不会自动选择以供声音播放。如果当前正在预约频道上播放声音,则不会停止。这允许应用程序为重要声音预约特定数量的频道,以保证这些声音不能被丢弃或有频道可供播放。
pygame.mixer.
find_channel
()功能:查找未使用的频道
属性:find_channel(force=False) -> Channel
None
。如果没有不活动的通道并且force参数为 True
,则会找到运行声音最长的通道并返回该通道。pygame.mixer.set_reserved()
留了一些频道,则这些频道将不会在此处返回。pygame.mixer.
get_busy
()功能:测试混音器是否运行
属性:get_busy() -> bool
如果混音器任何频道运行,则返回True
。如果混音器空闲,则返回 False
。
pygame.mixer.
get_sdl_mixer_version
()功能:获取混音器的SDL版本
属性:
参数:linked (bool) -- 如果为 True
(默认值),则返回链接的版本号,否则返回编译的版本号。
返回值(tuple):混音器的SDL库版本号(根据linked
参数选择是链接或编译)为3个整数的元组(major, minor, patch)
注意:链接的和编译的版本号应该相同。
New in pygame 2.0.0.
pygame.mixer.
Sound
功能:从文件或缓冲区对象中创建新的声音(Sound)对象
属性:
sndarray.make_sound
,因此采样忽略符号和字节顺序。但是如果不正确处理符号和字节顺序,在不同的情况下可能会引发异常。此外,源样本会被截断以适应音频样本大小。New in pygame 1.8:pygame.mixer.Sound(buffer)
New in pygame 1.9.2:pygame.mixer.Sound
关键字参数和数组接口支持
pygame.mixer.
Sound.play
()功能:开始播放声音
属性:play(loops=0, maxtime=0, fade_ms=0) -> Channel
stop()
来停止)。pygame.mixer.
Sound.stop
()功能:停止在任何活动频道上播放此声音
属性:stop() -> None
pygame.mixer.
Sound.fadeout
()功能:淡出后停止播放声音
属性:fadeout(time) -> None
将在时间参数(毫秒)内淡出声音后停止播放。所有正在播放频道上的此声音都将减弱并停止。
pygame.mixer.
Sound.set_volume
()功能:设置此声音的播放音量
属性:set_volume(value) -> None
设置此声音的播放音量(响度)。如果正在播放,这将立即影响声音。也会影响到以后播放的任何声音。
参数:value (float) -- 0.0到1.0(含)范围内的音量。如果值小于0.0,则不会更改音量;如果值大于1.0,则音量将设置为1.0。
pygame.mixer.
Sound.get_volume
()功能:获取播放音量
属性:get_volume() -> value
返回一个从0.0到1.0的值,表示此声音的音量。
pygame.mixer.
Sound.get_num_channels
()功能:计算此声音正在播放的频道数【返回值】
属性:get_num_channels() -> count
pygame.mixer.
Sound.get_length
()功能:获取声音的长度【返回值(秒)】
属性:get_length() -> seconds
pygame.mixer.
Sound.get_raw
()功能:获取声音样本的bytestring副本
属性:get_raw() -> bytes
以字节(对于Python3.x)或字符串对象(对于Python2.x)的形式返回一个声音对象缓冲区的副本。
New in pygame 1.9.2.
pygame.mixer.
Channel
功能:创建一个用于控制播放的通道(Channel)对象
属性:Channel(id) -> Channel
pygame.mixer.get_num_channels()
的值。pygame.mixer.
Channel.play
()功能:在特定频道播放声音
属性:play(Sound, loops=0, maxtime=0, fade_ms=0) -> None
Sound.play()
中一致:第一次重复声音的次数。如果是3,声音将播放4次(第一次,然后再播放3次)。如果循环为-1,则播放将无限期重复。Sound.play()
,maxtime参数可用于在给定毫秒数后停止播放声音。Sound.play()
,fade_ms参数可以在声音中使用淡出。pygame.mixer.
Channel.stop
()功能:停止频道上的声音播放
属性:stop() -> None
停止播放后,频道可供播放新声音。
pygame.mixer.
Channel.pause
()功能:暂时停止在频道上播放声音
属性:pause() -> None
以后可以使用Channel.unpause()
恢复播放。
pygame.mixer.
Channel.unpause
()功能:在暂停的频道上继续播放
属性:unpause() -> None
pygame.mixer.
Channel.fadeout
()功能:淡出频道后停止播放
属性:fadeout(time) -> None
在给定时间参数(毫秒)内淡出声音后停止播放频道。
pygame.mixer.
Channel.set_volume
()功能:设置播放频道的音量
属性:
None
,则第一个参数将是两个扬声器的音量。)sound.set_volume()
,则将同时考虑这两个调用。例如: sound = pygame.mixer.Sound("s.wav")
channel = s.play() # Sound plays at full volume by default
sound.set_volume(0.9) # Now plays at 90% of full volume.
sound.set_volume(0.6) # Now plays at 60% (previous value replaced).
channel.set_volume(0.5) # Now plays at 30% (0.6 * 0.5).
pygame.mixer.
Channel.get_volume
()功能:获取播放频道的音量
属性:get_volume() -> value
返回当前播放声音的频道音量。这不考虑由Channel.set_volume()
设置的立体声分离的情况,声音对象仍有与声道混合在一起的自己的音量。
pygame.mixer.
Channel.get_busy
()功能:检查通道是否激活
属性:get_busy() -> bool
如果通道正在进行声音混合,则返回 True
。如果通道空闲,则返回 False
。
pygame.mixer.
Channel.get_sound
()功能:获取当前播放的声音
属性:get_sound() -> Sound
返回当前在此频道上播放的实际声音对象。如果通道空闲,则返回 None
。
pygame.mixer.
Channel.queue
()功能:将声音对象排队以跟随当前
属性:queue(Sound) -> None
Channel.stop()
或 Channel.play()
调用关联。pygame.mixer.
Channel.get_queue
()功能:返回任何正排队的声音
属性:get_queue() -> Sound
如果一个声音已经在这个频道上排队,它将被返回。一旦队列中的声音开始播放,它将不再在队列中。
pygame.mixer.
Channel.set_endevent
()功能:播放停止时让频道发送事件
属性:
pygame.event.get()
索回。Sound.play(n)
或Channel.play(sound,n)
,end event只发送一次:在声音播放“n+1”次之后(参见Sound.play详细文档)。Channel.stop()
或 Channel.play()
,事件将立即发布。pygame.locals.USEREVENT
和pygame.locals.NUMEVENTS
二者之一。 如果未给出类型参数,则通道将停止发送endevents。pygame.mixer.
Channel.get_endevent
()功能:获取播放停止时频道发送的事件
属性:get_endevent() -> type
返回每次频道完成声音播放时要发送的事件类型。如果没有endevent,则函数返回pygame.NOEVENT
。
pygame.mixer.music
pygame.mixer.music.
load
()功能:加载音乐文件以便播放
属性:
加载音乐文件名/文件对象并准备播放。如果音乐流已在播放,则将停止播放。但不会开始播放音乐。
pygame.mixer.music.
unload
()功能:卸载当前加载的音乐以释放资源
属性:unload() -> None
New in pygame 2.0.0.
pygame.mixer.music.
play
()功能:开始播放音乐流
属性:play(loops=0, start=0.0, fade_ms = 0) -> None
播放加载的音乐流。如果音乐已经播放,它将重新启动。
参数:
pygame.mixer.music.
rewind
()功能:重新启动当前音乐
属性:rewind() -> None
pygame.mixer.music.
stop
()功能:停止音乐播放
属性:stop() -> None
如果当前正在播放音乐,则停止播放。不会卸载音乐。
pygame.mixer.music.
pause
()功能:暂时停止音乐播放
属性:pause() -> None
暂时停止播放音乐流。可以用pygame.mixer.music.unpause()
函数恢复播放。
pygame.mixer.music.
unpause
()功能:继续播放暂停的音乐
属性:unpause() -> None
pygame.mixer.music.
fadeout
()功能:淡出后停止播放当前音乐
属性:fadeout(time) -> None
此功能将一直阻塞,直到音乐淡出。在此期间,对 fadeout()
和set_volume()
的调用将无效。如果使用set_endevent()
设置了事件,则在音乐淡出后将调用该事件。
参数:time (int) -- 音乐音量在停止前淡出的时间(毫秒)。
pygame.mixer.music.
set_volume
()功能:设置音乐音量
属性:set_volume(volume) -> None
参数:volume (float) -- 参数值应介于0.0和1.0之间。重新加载音乐时,音量将重置为满音量。
pygame.mixer.music.
get_volume
()功能:获取音乐音量
属性:get_volume() -> value
返回混音器的当前音量。该值将介于0.0和1.0之间。
pygame.mixer.music.
get_busy
()功能:检查音乐流是否正在播放
属性:get_busy() -> bool
当音乐流正在播放时返回True。当音乐空闲时,返回False。即使音乐暂停,它也会返回True。
pygame.mixer.music.
set_pos
()功能:设置播放位置
属性:set_pos(pos) -> None
这将设置音乐文件中开始播放的位置。“pos”的意思是一个浮点数(或一个可以转换成浮点数的数字),取决于音乐格式。
MOD
文件,pos是模块中的整数模式号。对于OGG
,它是从声音开始的绝对位置,以秒为单位。对于MP3
文件,它是相对于当前位置的相对位置(秒)。要在MP3文件中进行绝对定位,请首先调用rewind()
。set_pos()
调用带下划线的SDL_mixer函数 Mix_SetMusicPosition
。New in pygame 1.9.2.
pygame.mixer.music.
get_pos
()功能:获得音乐播放时间
属性:get_pos() -> time
获取音乐播放的毫秒数。返回的时间仅表示音乐已播放的时间,不考虑任何起始位置偏移。
pygame.mixer.music.
queue
()功能:将声音文件排队以跟踪当前文件
属性:queue(filename) -> None
这将加载一个声音文件并将其排队。当前声音自然结束后,排队的声音文件将立即开始。一次只能排队一个声音。在另一个声音排队时对新声音排队将导致新声音成为正在排队声音。此外,如果当前声音被停止或更改,排队的声音将丢失。以下示例将播放巴赫的音乐六次,然后播放莫扎特的音乐一次:
pygame.mixer.music.load('bach.ogg')
pygame.mixer.music.play(5) # Plays six times, not five!
pygame.mixer.music.queue('mozart.ogg')
pygame.mixer.music.set_endevent
()功能:播放停止时让音乐发送事件
属性:
pygame.mixer.music.
get_endevent
()功能:获取播放停止时频道发送的事件
属性:get_endevent() -> type
返回每次音乐播放结束时要发送的事件类型。如果没有,则函数返回 pygame.NOEVENT
。
整理自: