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 官方文档 - pygame.mixer相关推荐

  1. Pygame 官方文档 - pygame.display

    Pygame.display Pygame中用于控制窗口和屏幕显示的模块 pygame.display.init - 初始化display模块 pygame.display.quit - 取消初始化d ...

  2. Pygame 官方文档 - pygame.cursors

    pygame.cursors Pygame 中使用光标资源的模块. pygame.cursors.compile -- 由纯字符串创建二进制光标数据 pygame.cursors.load_xbm - ...

  3. Pygame 官方文档 - pygame.key

    pygame.key 与键盘相关的 Pygame 模块. pygame.key.get_focused() - 当窗口获得键盘的输入焦点时返回 True pygame.key.get_pressed( ...

  4. Pygame 官方文档 - pygame.mouse

    pygame.mouse Pygame 中与鼠标工作相关的模块. pygame.mouse.get_pressed -- 获取鼠标按键的情况(是否被按下) pygame.mouse.get_pos - ...

  5. Pygame 官方文档 - pygame.transform

    pygame.transform 用于改变surfaces形态的pygame模块 pygame.transform.flip - 垂直和水平翻转 pygame.transform.scale - 调整 ...

  6. Pygame 官方文档 - pygame.scrap

    pygame.scrap pygame模块用于支持剪切板( clipboard) pygame.scrap.init - 初始化scrap模块 pygame.scrap.get - 从剪贴板获取指定类 ...

  7. Pygame 官方文档 - 中译版

    pygame 文档 Pygame之家[Pygame Home] 帮助内容[Help Contents] 指导索引[Reference Index] 最有用的东西 [Most useful stuff] ...

  8. Pygame 官方文档 - Tutorials - 逐行的黑猩猩教程(Line By Line Chimp)

    逐行的黑猩猩教程(Line By Line Chimp) 作者: Pete Shinners 联系方式: pete@shinners.org 介绍(Introduction)        在pyga ...

  9. Pygame 官方文档 - Tutorials - 游戏制作指南(Making Games Tutorial)- 校订:基础(Revision: Pygame fundamentals)

    游戏制作指南(Making Games Tutorial) 点我回总目录 ☚ 2.校订:Pygame基础(Revision: Pygame fundamentals) 2.1.基本的Pygame游戏 ...

  10. Pygame 官方文档 - Tutorials - Surfarray模块介绍(Surfarray Introduction)

    Surfarray模块介绍(Surfarray Introduction) Author: Pete Shinners Contact: pete@shinners.org 介绍(Introducti ...

最新文章

  1. python序列类型包括哪三种映射类型_python序列类型包括哪三种_后端开发
  2. 谷歌zxing 二维码生成工具
  3. python range函数怎么表示无限_Python for循环与range函数的使用详解
  4. ASP.NET (C#) 面试笔试题目收集
  5. linux下使用wget下载jdk
  6. 计算机职业英语一级,计算机职业英语一级
  7. 《3S 新闻周刊》No.14:从融资到裁员,灵图那些事儿
  8. Linux 动态链接和静态链接简析(库名与库文件名)
  9. BN、LN、IN、GN、SN归一化
  10. java mysql 博客园_JAVA基础--MySQL
  11. linux中和salt中的fqdn测试小节
  12. 遭DeFi反噬,以太坊绝地反击
  13. 查看电脑连接的wifi密码
  14. 解决ImportError: /lib64/libm.so.6: version `GLIBC_2.23‘ not found (required by /root/anaconda3/lib/pyt
  15. Nginx配置天地图缓存
  16. vs code的php格式化
  17. 人脸识别智能门禁D508也能“码”上开门
  18. oracle 里面加条件判断,oracle 查询的时候加条件判断
  19. DS1302 时钟 51单片机实现时钟显示
  20. 黄蓝专场之 | 小蓝单车生死故事

热门文章

  1. server: WebGame服务端架构分析
  2. Oblivious transfer and Garbled circuits
  3. 伍斯特学院计算机专业排名,美国大学计算机专业排名!
  4. 企信下载的文件在哪里_Foobar2000(无损音乐播放器下载)(软件篇)
  5. 【数据结构】leetcode707:python实现链表设计;leetcode142:环形链表
  6. LeetCode题解:707.设计链表
  7. 新手入门 | Pr剪辑教程
  8. 如何在Mac上清理磁盘空间?
  9. 大数据平台的SQL查询引擎有哪些—SparkSQL
  10. excel如何把顺序倒过来_excel表格怎么把字倒过来