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 官方文档 - pygame.mixer相关推荐
- Pygame 官方文档 - pygame.display
Pygame.display Pygame中用于控制窗口和屏幕显示的模块 pygame.display.init - 初始化display模块 pygame.display.quit - 取消初始化d ...
- Pygame 官方文档 - pygame.cursors
pygame.cursors Pygame 中使用光标资源的模块. pygame.cursors.compile -- 由纯字符串创建二进制光标数据 pygame.cursors.load_xbm - ...
- Pygame 官方文档 - pygame.key
pygame.key 与键盘相关的 Pygame 模块. pygame.key.get_focused() - 当窗口获得键盘的输入焦点时返回 True pygame.key.get_pressed( ...
- Pygame 官方文档 - pygame.mouse
pygame.mouse Pygame 中与鼠标工作相关的模块. pygame.mouse.get_pressed -- 获取鼠标按键的情况(是否被按下) pygame.mouse.get_pos - ...
- Pygame 官方文档 - pygame.transform
pygame.transform 用于改变surfaces形态的pygame模块 pygame.transform.flip - 垂直和水平翻转 pygame.transform.scale - 调整 ...
- Pygame 官方文档 - pygame.scrap
pygame.scrap pygame模块用于支持剪切板( clipboard) pygame.scrap.init - 初始化scrap模块 pygame.scrap.get - 从剪贴板获取指定类 ...
- Pygame 官方文档 - 中译版
pygame 文档 Pygame之家[Pygame Home] 帮助内容[Help Contents] 指导索引[Reference Index] 最有用的东西 [Most useful stuff] ...
- Pygame 官方文档 - Tutorials - 逐行的黑猩猩教程(Line By Line Chimp)
逐行的黑猩猩教程(Line By Line Chimp) 作者: Pete Shinners 联系方式: pete@shinners.org 介绍(Introduction) 在pyga ...
- Pygame 官方文档 - Tutorials - 游戏制作指南(Making Games Tutorial)- 校订:基础(Revision: Pygame fundamentals)
游戏制作指南(Making Games Tutorial) 点我回总目录 ☚ 2.校订:Pygame基础(Revision: Pygame fundamentals) 2.1.基本的Pygame游戏 ...
- Pygame 官方文档 - Tutorials - Surfarray模块介绍(Surfarray Introduction)
Surfarray模块介绍(Surfarray Introduction) Author: Pete Shinners Contact: pete@shinners.org 介绍(Introducti ...
最新文章
- python序列类型包括哪三种映射类型_python序列类型包括哪三种_后端开发
- 谷歌zxing 二维码生成工具
- python range函数怎么表示无限_Python for循环与range函数的使用详解
- ASP.NET (C#) 面试笔试题目收集
- linux下使用wget下载jdk
- 计算机职业英语一级,计算机职业英语一级
- 《3S 新闻周刊》No.14:从融资到裁员,灵图那些事儿
- Linux 动态链接和静态链接简析(库名与库文件名)
- BN、LN、IN、GN、SN归一化
- java mysql 博客园_JAVA基础--MySQL
- linux中和salt中的fqdn测试小节
- 遭DeFi反噬,以太坊绝地反击
- 查看电脑连接的wifi密码
- 解决ImportError: /lib64/libm.so.6: version `GLIBC_2.23‘ not found (required by /root/anaconda3/lib/pyt
- Nginx配置天地图缓存
- vs code的php格式化
- 人脸识别智能门禁D508也能“码”上开门
- oracle 里面加条件判断,oracle 查询的时候加条件判断
- DS1302 时钟 51单片机实现时钟显示
- 黄蓝专场之 | 小蓝单车生死故事
热门文章
- server: WebGame服务端架构分析
- Oblivious transfer and Garbled circuits
- 伍斯特学院计算机专业排名,美国大学计算机专业排名!
- 企信下载的文件在哪里_Foobar2000(无损音乐播放器下载)(软件篇)
- 【数据结构】leetcode707:python实现链表设计;leetcode142:环形链表
- LeetCode题解:707.设计链表
- 新手入门 | Pr剪辑教程
- 如何在Mac上清理磁盘空间?
- 大数据平台的SQL查询引擎有哪些—SparkSQL
- excel如何把顺序倒过来_excel表格怎么把字倒过来