热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Pygame官方文档pygame.mixer

pygame.mixerpygame模块用来加载和播放声音pygame.mixer.init-初始化mixer模块pygame.mixer.pre_init-预设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.


推荐阅读
  • 本文介绍了Swing组件的用法,重点讲解了图标接口的定义和创建方法。图标接口用来将图标与各种组件相关联,可以是简单的绘画或使用磁盘上的GIF格式图像。文章详细介绍了图标接口的属性和绘制方法,并给出了一个菱形图标的实现示例。该示例可以配置图标的尺寸、颜色和填充状态。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 本文讨论了Kotlin中扩展函数的一些惯用用法以及其合理性。作者认为在某些情况下,定义扩展函数没有意义,但官方的编码约定支持这种方式。文章还介绍了在类之外定义扩展函数的具体用法,并讨论了避免使用扩展函数的边缘情况。作者提出了对于扩展函数的合理性的质疑,并给出了自己的反驳。最后,文章强调了在编写Kotlin代码时可以自由地使用扩展函数的重要性。 ... [详细]
  • Java中包装类的设计原因以及操作方法
    本文主要介绍了Java中设计包装类的原因以及操作方法。在Java中,除了对象类型,还有八大基本类型,为了将基本类型转换成对象,Java引入了包装类。文章通过介绍包装类的定义和实现,解答了为什么需要包装类的问题,并提供了简单易用的操作方法。通过本文的学习,读者可以更好地理解和应用Java中的包装类。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • Ubuntu安装常用软件详细步骤
    目录1.GoogleChrome浏览器2.搜狗拼音输入法3.Pycharm4.Clion5.其他软件1.GoogleChrome浏览器通过直接下载安装GoogleChro ... [详细]
author-avatar
l沈佩玉iVf
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有