Pygame 官方文档 - pygame.mixer

pygame.mixer

pygame模块用来加载和播放声音
pygame.mixer.init - 初始化mixer模块
pygame.mixer.pre_init - 预设mixer初始化参数
pygame.mixer.quit - 取消初始化mixer
pygame.mixer.get_init - 测试mixer是否已初始化
pygame.mixer.stop - 停止播放所有声道
pygame.mixer.pause - 暂时停止播放所有声道
pygame.mixer.unpause - 恢复暂停播放声道
pygame.mixer.fadeout - 停止前淡出所有声音的音量
pygame.mixer.set_num_channels - 设置播放频道的总数
pygame.mixer.get_num_channels - 获取播放频道的总数
pygame.mixer.set_reserved - 保留自动使用的频道
pygame.mixer.find_channel - 找到一个未使用的频道
pygame.mixer.get_busy - 测试是否混合了任何声音
pygame.mixer.Sound - 从文件或缓冲区对象创建一个新的Sound对象
pygame.mixer.Channel - 创建一个用于控制播放的Channel对象

        此模块包含用于加载Sound对象和控制播放的类。mixer模块是可选的,取决于SDL_mixer。您的程序应该测试pygame.mixer模块在加载和播放声音之前是否可用,并在使用之前初始化。
        mixer模块具有有限数量的声道播放声音。通常程序会告诉pygame开始播放音频,它会自动选择一个可用的频道。默认为8个同步的通道,但复杂的程序可以更精确地控制通道数量及其使用。
        所有声音播放都混合在后台线程中。当您开始播放Sound对象时,它会在声音继续播放时立即返回。单个Sound对象也可以多次主动播放。
        mixer还有一个特殊的流媒体通道。这是用于音乐播放,可通过pygame.mixer.music模块访问。
        mixer模块必须像其他pygame模块一样初始化,但它有一些额外的条件。 pygame.mixer.init()函数采用几个可选参数来控制播放速率和样本大小。 Pygame将默认为合理的值,但pygame无法执行声音重采样,因此应初始化mixer以匹配你的音频资源的值。
        注意:不要使用较少的延迟声音,请使用较小的缓冲区大小。默认设置为减少某些计算机上发出刺耳声音的可能性。在pygame.mixer.init()或者pygame.init()初始化之前,您可以通过调用pygame.mixer.pre_init()来更改默认缓冲区(default buffer)。例如:pygame.mixer.pre_init(44100,-16,2,1024)。在pygame 1.8中,默认大小从1024更改为3072。

 

pygame.mixer.init() ↶

初始化mixer模块
init(frequency=22050, size=-16, channels=2, buffer=4096) -> None
初始化mixer模块以进行声音加载和播放。可以重写默认参数以提供特定的音频混合。关键字参数被接受。接受关键字参数。为了实现向后兼容性,在参数设置为零的情况下,将使用默认值(可能通过pre_init调用进行更改)。。
size参数表示每个音频样本使用的位数。如果值为负,则将使用带符号的样本值。正值表示将使用不带符号的音频样本,无效值会引发异常。
pygame 2中的新功能(使用SDL2编译时) - size大小可以是32(32位浮点数)。
channels参数用于指定是使用单声道还是立体声。 1为单声道,2为立体声。不支持其他值(负值被视为1,大于2的值被视为2)。
buffer参数控制声音混合器mixer中使用的内部样本数。默认值应适用于大多数情况。可以降低它以减少延迟,但可能会发生声音丢失。它可以被提升到更大的值,以确保播放永远不会跳过,但它会对声音播放施加延迟。缓冲区大小必须是2的幂(如果不是,它会向上舍入到下一个最接近的2的幂)。
某些平台需要pygame.mixer在display模块初始化后才能被初始化。顶层的pygame.init()自动处理这个问题,但不能将任何参数传递给mixer的 init。为了解决这个问题,mix有一个函数pygame.mixer.pre_init()来设置在使用顶层init之前适当的默认值。
多次用它是安全的,但是在初始化mixer之后,如果没有先调用pygame.mixer.quit(),就无法更改播放参数。
搜索pygame.mixer.init的示例

pygame.mixer.pre_init() ↶

预设mixer的初始化参数
pre_init(frequency=22050, size=-16, channels=2, buffersize=4096) -> None
调用pre_init可以更改实际pygame.mixer.init()调用时使用的默认值。 关键字参数被接受。 设置自定义mixer播放值的最佳方法是在调用在顶层的pygame.init()之前调用pygame.mixer.pre_init()。 对于向后兼容性参数,将参数值零将替换为启动的默认值。
搜索pygame.mixer.pre_init的示例

pygame.mixer.quit() ↶

取消初始化mixer
quit() -> None
这将取消初始化pygame.mixer模块。 如果稍后重新被初始化,则所有播放都将停止,并且任何加载的声音对象可能与mixer不兼容。
搜索pygame.mixer.quit的示例

pygame.mixer.get_init() ↶

测试mixer是否已初始化
get_init() -> (frequency, format, channels)
如果mixer已初始化,则返回正在使用的播放参数。 如果mixer尚未初始化,则返回None
搜索pygame.mixer.get_init的示例

pygame.mixer.stop() ↶

停止播放所有声道
stop() -> None
这将停止所有活跃状态下(active)mixer通道的所有播放。
搜索pygame.mixer.stop的示例

pygame.mixer.pause() ↶

暂时停止播放所有声道
pause() -> None
这将暂时停止活跃状态下mixer通道上的所有播放。 之后可以使用pygame.mixer.unpause()恢复播放
搜索pygame.mixer.pause的示例

pygame.mixer.unpause() ↶

恢复暂停播放声道
unpause() -> None
这将在声道暂停之后,恢复所有可用声道。
搜索pygame.mixer.unpause的示例

pygame.mixer.fadeout() ↶

停止前淡出所有声音的音量
fadeout(time) -> None
这将在以时间为参数,淡出所有活跃状态下通道上的音量,以毫秒为单位。 声音减弱后,播放将停止。
搜索pygame.mixer.fadeout的示例

pygame.mixer.set_num_channels() ↶

设置播放频道的总数
set_num_channels(count) -> None
设置mixer的可用频道数。 默认值为8。可以增加或减少该值。 如果该值减小,则被截断的通道上播放的声音将停止。
搜索pygame.mixer.set_num_channels的示例

pygame.mixer.get_num_channels() ↶

获取播放频道的总数
get_num_channels() -> count
返回当前活跃状态下的播放通道数。
搜索pygame.mixer.get_num_channels的示例

pygame.mixer.set_reserved() ↶

保留自动使用的频道
set_reserved(count) -> None
mixer可以保留任何数量的通道,这些通道不会被声音自动选择播放。 如果声音当前正在预留频道播放,则不会停止。
这允许应用程序为重要声音预留特定数量的声道,这些声音不得被丢弃或具有可保证的频道。
搜索pygame.mixer.set_reserved的示例

pygame.mixer.find_channel() ↶

找到一个未使用的频道
find_channel(force=False) -> Channel
这将找到并返回一个非活跃状态下的通道对象。 如果没有非活跃状态下的通道,则此功能将返回None。 如果没有非活跃状态下通道并且force参数为True,则会找到运行时间最长的声道并返回它。
如果混音器有pygame.mixer.set_reserved()保留的通道,那么这里不会返回这些通道。
搜索pygame.mixer.find_channel的示例

pygame.mixer.get_busy() ↶

测试是否混合了任何声音
get_busy() -> bool
如果mixer忙于混合任何通道,则返回True。 如果mixer处于空闲状态,则返回False。
搜索pygame.mixer.get_busy的示例
 

pygame.mixer.Sound ↶

从文件或缓冲区对象创建一个新的Sound对象
Sound(filename) -> Sound
Sound(file=filename) -> Sound
Sound(buffer) -> Sound
Sound(buffer=buffer) -> Sound
Sound(object) -> Sound
Sound(file=object) -> Sound
Sound(array=object) -> Sound
pygame.mixer.Sound.play - 开始播放声音
pygame.mixer.Sound.stop - 停止声音播放
pygame.mixer.Sound.fadeout - 淡出后停止声音播放
pygame.mixer.Sound.set_volume - 设置此声音的播放音量
pygame.mixer.Sound.get_volume - 获取播放音量
pygame.mixer.Sound.get_num_channels - 计算此声音播放的次数
pygame.mixer.Sound.get_length - 获取Sound的长度
pygame.mixer.Sound.get_raw - 返回Sound样本的字节串副本。

        从文件名、python文件对象或可读缓冲区对象加载新的声音缓冲区。将执行有限的重采样以帮助样本匹配mixer的初始化参数。 Unicode字符串只能是文件路径名。 Python 2.x字符串或Python 3.x字节对象可以是路径名或缓冲区对象。使用’file’或’buffer’关键字来避免歧义;否则Sound可能会猜错。如果使用了数组关键字,该对象期待导出版本3,C级数组接口,或者对于Python 2.6或更高版本,导出新的缓冲区接口(首先检查该对象的缓冲区接口。)
        Sound对象表示实际的声音样本数据。更改Sound对象状态的方法将播放的所有Sound实例。 Sound对象还导出数组接口,对于Python 2.6或更高版本,还会导出新的缓冲区接口。
        声音可以从OGG音频文件或未压缩的WAV加载。
        注意:缓冲区将在内部复制,不会在它与Sound对象之间共享数据。
        就目前来看,缓冲区和数组支持与数字数组的sndarray.make_sound的支持是一致的,忽略了样本符号和字节顺序。这将通过正确处理符号和字节顺序或在不同时引发异常来改变。此外,截断源样本以适合音频样本大小。这不会被改变。
        pygame.mixer.Sound(buffer)是pygame 1.8中pygame.mixer.Sound的新增的功能
        关键字参数和数组接口支持pygame 1.9.2中的新功能
 

pygame.mixer.Sound.play() ↶

开始播放声音
play(loops=0, maxtime=0, fade_ms=0) -> Channel
在可用频道上开始播放声音(即,在计算机的扬声器上)。 这将强制选择一个频道,因此如有必要,播放可能会切断当前正在播放的声音。
loops参数控制第一次播放后样本重复的次数。 值5表示声音将播放一次,然后再重复播放五次,因此总共播放六次。 默认值(零)表示声音不重复,因此只播放一次。 如果循环设置为-1,则Sound将无限循环(尽管您仍然可以调用stop()来停止它)。
maxtime参数可用于在给定的毫秒数后停止播放。
fade_ms参数将使声音以0音量开始播放,并在给定时间内逐渐淡出至全音量。 样本可以在淡入完成之前结束。
这将返回所选通道的Channel对象。
搜索pygame.mixer.Sound.play的示例

pygame.mixer.Sound.stop() ↶

停止声音播放
stop() -> None
这将停止在任何活跃频道上播放此声音。
搜索pygame.mixer.Sound.stop的示例

pygame.mixer.Sound.fadeout() ↶

淡出后停止声音播放
fadeout(time) -> None
这将在以毫秒为单位的时间参数,淡出后停止播放声音。 声音会在所有活跃状态下播放的频道上消失并停止。
搜索pygame.mixer.Sound.fadeout的示例

pygame.mixer.Sound.set_volume() ↶

设置此声音的播放音量
set_volume(value) -> None
这将设置此声音的播放音量(响度)。 如果正在播放,这将立即影响声音。 它还会影响此声音的任何未来播放。 参数是从0.0到1.0的值。
搜索pygame.mixer.Sound.set_volume的示例

pygame.mixer.Sound.get_volume() ↶

获取播放音量
get_volume() -> value
返回0.0到1.0之间的值,表示此Sound的音量。
搜索pygame.mixer.Sound.get_volume的示例

pygame.mixer.Sound.get_num_channels() ↶

计算此声音播放的次数
get_num_channels() -> count
返回此声音正在播放的活跃状态的频道数。
搜索ygame.mixer.Sound.get_num_channels的示例

pygame.mixer.Sound.get_length() ↶

获取Sound的长度
get_length() -> seconds
以秒为单位返回此声音的长度。
搜索pygame.mixer.Sound.get_length的示例

pygame.mixer.Sound.get_raw() ↶

返回Sound样本的字节串副本。
get_raw() -> bytes
将Sound对象缓冲区的副本作为字节(对于Python 3.x)或str(对于Python 2.x)对象返回。
pygame 1.9.2中的新功能。
搜索pygame.mixer.Sound.get_raw的示例
 

pygame.mixer.Channel ↶

创建一个用于控制播放的Channel对象
Channel(id) -> Channel
pygame.mixer.Channel.play - 在特定频道播放声音
pygame.mixer.Channel.stop - 停止在频道上的播放
pygame.mixer.Channel.pause - 暂时停止频道的播放
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.queue - 将Sound对象排队以跟随当前
pygame.mixer.Channel.get_queue - 返回排队的所有声音
pygame.mixer.Channel.set_endevent - 让频道在播放停止时发送一个事件
pygame.mixer.Channel.get_endevent - 获取播放停止时频道发送的事件
        返回其中一个当前通道的Channel对象。 id必须是从0到pygame.mixer.get_num_channels()返回的值之间的值。
        Channel对象可用于精确控制Sounds的播放。 一个频道只能播放一个声音。 使用频道完全是可选的,因为pygame默认可以管理它们。

 

pygame.mixer.Channel.play() ↶

在特定频道播放声音
play(Sound, loops=0, maxtime=0, fade_ms=0) -> None
这将开始播放特定频道上的声音。 如果频道正在播放任何其他声音,它将被停止。
loops参数与Sound.play()中的含义相同:它是第一次重复声音的次数。 如果是3,声音将播放4次(第一次,然后是三次)。 如果循环为-1,则播放将无限重复。
与Sound.play()一样,maxtime参数可用于在给定的毫秒数后停止播放Sound。
与Sound.play()一样,fade_ms参数可以在声音中淡入淡出。
搜索pygame.mixer.Channel.play的示例

pygame.mixer.Channel.stop() ↶

停止在频道上的播放
stop() -> None
停止在频道上播放声音。 播放停止后,频道可用于播放新的声音。
搜索pygame.mixer.Channel.stop的示例

pygame.mixer.Channel.pause() ↶

暂时停止频道的播放
pause() -> None
暂时停止在频道上播放声音。 它可以在之后用Channel.unpause()恢复
搜索pygame.mixer.Channel.pause的示例

pygame.mixer.Channel.unpause() ↶

恢复暂停频道的播放
unpause() -> None
在暂停的频道上恢复播放。
搜索pygame.mixer.Channel.unpause的示例

pygame.mixer.Channel.fadeout() ↶

在淡出频道后停止播放
fadeout(time) -> None
在给定以毫秒为单位的时间参数上淡出声音后,停止播放通道。
搜索pygame.mixer.Channel.fadeout的示例

pygame.mixer.Channel.set_volume() ↶

设置播放频道的音量
set_volume(value) -> None
set_volume(left, right) -> None
设定播放声音的音量(响度)。 当频道开始播放时,其音量值将被重置。 这只会影响当前的声音。 value参数介于0.0和1.0之间。
如果传递一个参数,则它将是两个扬声器的音量。 如果传递两个参数并且mixer处于立体声模式,则第一个参数将是左扬声器的音量,第二个参数将是右扬声器的音量。 (如果第二个参数为None,则第一个参数将是两个扬声器的音量。)

如果频道正在播放已调用set_volume()的声音,则两个调用都该考虑在内。 例如:

sound = pygame.mixer.Sound("s.wav")
channel = s.play()      # 默认情况下,声音以全音量播放
sound.set_volume(0.9)   # 现在播放量为全音量的90%。
sound.set_volume(0.6)   # 现在播放量为全音量的60%(之前的值已被替换)。
channel.set_volume(0.5) # 现在播放量为全音量的30%(0.6 * 0.5)。

搜索pygame.mixer.Channel.set_volume的示例

pygame.mixer.Channel.get_volume() ↶

获取播放频道的音量
get_volume() -> value
返回当前播放声音的通道音量。 这没有把Channel.set_volume()使用的立体声考虑在内。Sound对象也有自己的音量,它与音频混合
搜索pygame.mixer.Channel.get_volume的示例

pygame.mixer.Channel.get_busy() ↶

检查通道是否处于活跃状态
get_busy() -> bool
如果通道正在混合声音,则返回true。 如果通道空闲,则返回False。
搜索pygame.mixer.Channel.get_busy的示例

pygame.mixer.Channel.get_sound() ↶

获取当前播放的声音
get_sound() -> Sound
返回当前在此频道上播放的实际Sound对象。 如果通道空闲,则返回None。
搜索pygame.mixer.Channel.get_sound的示例

pygame.mixer.Channel.queue() ↶

将Sound对象排队以跟随当前
queue(Sound) -> None
当声音在频道上排队时,它将在当前声音结束后立即开始播放。 每个通道一次只能排队一个声音。 排队的声音仅在当前播放自动结束时播放。在其它任何调用Channel.stop()或Channel.play()时,被清除。
如果频道上没有主动播放声音,则声音将立即开始播放。
搜索pygame.mixer.Channel.queue的示例

pygame.mixer.Channel.get_queue() ↶

返回排队的所有声音
get_queue() -> Sound
如果声音已在此频道上排队,则会返回该声音。 一旦排队的声音开始播放,它将不再在队列中。
搜索pygame.mixer.Channel.get_queue的示例

pygame.mixer.Channel.set_endevent() ↶

让频道在播放停止时发送一个事件
set_endevent() -> None
set_endevent(type) -> None
当为某个频道设置了一个endevent时,每当一个声音在该频道上播放完成时(不仅仅是第一次),它将向该游戏队列发送一个事件。 一旦发送,就可以使用pygame.event.get()来取回endevent。
请注意,如果您调用Sound.play(n)或Channel.play(sound,n),则结束事件仅发送一次:声音播放“n + 1”次后(请参阅Sound.play文档)。
如果在声音仍在播放时调用Channel.stop()或Channel.play(),则会立即发布该事件。
type参数将是发送到队列的事件id。 这可以是任何有效的事件类型,但是一个好的选择是pygame.locals.USEREVENT和pygame.locals.NUMEVENTS之间的值。 如果没有给出类型参数,那么Channel将停止发送endevent。
搜索pygame.mixer.Channel.set_endevent的示例

pygame.mixer.Channel.get_endevent() ↶

获取播放停止时频道发送的事件
get_endevent() -> type
返回每次Channel完成声音播放时要发送的事件类型。 如果没有endevent,该函数返回pygame.NOEVENT。
搜索pygame.mixer.Channel.get_endevent的示例

以上文档,自己翻译,可能有误,可参考:pygame.image

点我回顶部 ☚

 
 
 
 
 
 
 
Fin.

你可能感兴趣的:(Pygame,官方文档,-,中译版)