mixer模块主要用于加载和播放声音。在pygame中,声音主要用Sound对象来表示,所以说mixer模块实现声音的播放、暂停和一些其他的功能,也就是通过mixer模块中的一些函数来实现。

# 初始化mixer模块
pygame.mixer.init()
# 设置mixer模块的参数
pygame.mixer.pre_init()
# 取消初始化mixer模块
pygame.mixer.quit()
# 判断mixer模块是否初始化
pygame.mixer.get_init()
# 停止所有声道声音的播放
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()
# 判断mixer是否混合各个声道
pygame.mixer.get_busy()
# 获取mixer的SDL版本
pygame.mixer.get_sdl_mixer_version()
# 根据文件或者缓冲区创建一个Sound对象
pygame.mixer.Sound()
# 创建一个用于控制播放的Channel对象
pygame.mixer.Channel()

创建Sound对象有多个方法。

pygame.mixer.Sound(filename)
pygame.mixer.Sound(file=filename)
pygame.mixer.Sound(file=pathlib_path)
pygame.mixer.Sound(buffer)
pygame.mixer.Sound(buffer=buffer)
pygame.mixer.Sound(object)
pygame.mixer.Sound(file=object)
pygame.mixer.Sound(array=object)

对于某个Sound对象,pygame中的mixer模块提供了相应的控制方法。

# 根据文件或者缓冲区创建一个Sound对象
sound = pygame.mixer.Sound()
# 声音的播放,在可用通道上强制选择一个通道进行播放
# 参数loops表示播放后重复的次数,为1表示播放结束后再重复播放一次,为0表示不重复,为-1表示重复无限次
# 参数maxtime表示在给定的时间后停止播放,单位为毫秒,0表示不停止播放
# 参数fade_ms表示声音淡入淡出的时间,单位为毫秒,0表示不进行淡入淡出
sound.play(loops=0, maxtime=0, fade_ms=0)
# 声音的停止
sound.stop()
# 声音淡出后停止的时间
sound.fadeout(time=2000)
# 设置音量,值在0.0-1.0之间浮动
sound.set_volume(value=0.5)
# 获取音量
sound.get_volume()
# 计算声音播放的次数
sound.get_num_channels()
# 获取声音的长度,单位为秒
sound.get_length()
# 获取声音的字符串副本
sound.get_raw()

创建Channel对象,通过

pygame.mixer.Channel(id)

其中,id的值位于0到pygame.mixer.get_num_channels()之间。
对于某个Channel对象,也有许多控制方法,与Sound对象的方法类似。

# 声音在某个通道的播放
channel.play(sound, loops=0, maxtime=0, fade_ms=0)
# 声音在某个通道停止播放
channel.stop()
# 声音在某个通道上暂停播放
channel.pause()
# 声音在某个通道上恢复播放
channel.unpause()
# 声音在某个通道淡出后停止的时间
channel.fadeout(time=2000)
# 设置某个通道音量,值在0.0-1.0之间浮动
# 如果某个Channel对象和某个Sound对象都通过set_volume(0.5)设置过音量,那么声音在这个通道上播放的音量为0.5*0.5
channel.set_volume(value=0.5)
# 获取某个通道的音量
channel.get_volume()
# 判断通道是否处于活动状态
channel.get_busy()
# 获取当前的声音,返回一个Sound对象
channel.get_sound()
# 将另外一个Sound对象送入当前的队列中,当前Sound对象播放完毕后才播放另外一个Sound对象
channel.queue(sound)
# 返回待播放的Sound队列
channel.get_queue()
# 在播放停止时,向pygame中的事件队列中发送一个时间,可以通过pygame.event.get()获取
channel.set_endevent()
# 获取事件的类型
channel.get_endevent()

也可以通过mixer模块中的music子模块来播放、暂停、停止音乐。

函数 描述
pygame.mixer.music.load 加载音乐文件进行播放
pygame.mixer.music.unload 卸载当前加载的音乐以释放资源
pygame.mixer.music.play 开始播放音乐流
pygame.mixer.music.rewind 重新开始音乐
pygame.mixer.music.stop 停止音乐播放
pygame.mixer.music.pause 暂时停止音乐播放
pygame.mixer.music.unpause 恢复暂停的音乐
pygame.mixer.music.fadeout 淡出后停止音乐播放
pygame.mixer.music.set_volume 设置音乐音量
pygame.mixer.music.get_volume 获取音乐音量
pygame.mixer.music.get_busy 检查音乐流是否正在播放
pygame.mixer.music.set_pos 设置播放位置
pygame.mixer.music.get_pos 获取音乐播放时间
pygame.mixer.music.queue 排队一个声音文件以跟随当前
pygame.mixer.music.set_endevent 让音乐在播放停止时发送事件
pygame.mixer.music.get_endevent 获取播放停止时频道发送的事件

模块七:mixer模块相关推荐

  1. Python基础(七)--模块和包

    目录 Python基础(七)--模块和包 1 模块 1.1 什么是模块 1.2 模块的使用 1.3 模块的搜索路径 1.4 模块的缓存 2 包 2.1 什么是包 2.2 包的使用 3 常用模块 3.1 ...

  2. PyTorch 入坑七:模块与nn.Module学习

    PyTorch 入坑七 模型创建概述 PyTorch中的模块 torch模块 torch.Tensor模块 torch.sparse模块 torch.cuda模块 torch.nn模块 torch.n ...

  3. Pygame mixer 模块

    pygame.mixer 用于加载和播放声音的pygame模块 函数 pygame.mixer.init  -  初始化混音器模块 pygame.mixer.pre_init  -  预设混音器初始化 ...

  4. 2021年艺术高考模块七成绩查询,2021年各省份艺术类专业统考合格线

    省份艺术类专业统考合格线 安徽"模块一"统考合格线为110分,"模块二"统考合格线为153分,"模块三"统考合格线为226分,"模 ...

  5. mysql七个模块_mysql(pymysql模块的使用,视图,触发器)

    本节重点: pymysql的下载和使用 execute()之sql注入 增.删.改:conn.commit() 查:fetchone.fetchmany.fetchall 一.pymysql的下载和使 ...

  6. Python程序开发——第七章 模块与包

    目录 一.模块的定义 二.导入模块.调用模块 (一)import语句 (二)from-import语句 三.标准模块库 (一)sys模块 (二)os模块 (三)random模块 (四)time模块 四 ...

  7. 每天一小时python官方文档学习(七)————模块与包

    6. 模块 模块是一个包含Python定义和语句的文件,实际上就是一个正常的.py文件.但是作用和普通需要运行的程序不一样,它实际上有点像函数.如果说函数实现了代码的重用,模块则是实现了函数的重用.我 ...

  8. python第七章_python 第七章 模块

    模块 一个py文件就是一个模块 模块一共三种:1.python标准库 2.第三方模块 3.应用程序自定义模块 import:1.执行对应文件 2.引入变量名 if__name__="__ma ...

  9. python - 啃书 第七章 模块、包和库 (二)

    常用第三方库 Pandas Pandas 中文网 Pandas是基于NumPy库的一种解决数据分析任务的工具库 Pandas库纳入了大量模块和一些标准的数据模型,提供了高效的操作大型数据集所需的工具 ...

  10. Soot 静态分析框架(七)模块分析

    Java 9里开始支持模块化,以一个独立的开源项目jigsaw而来, 具体可以参考链接, https://openjdk.java.net/projects/jigsaw/  同时也可以参考JSR37 ...

最新文章

  1. Hadoop(HDFS、YARN、HBase、Hive和Spark等)默认端口表
  2. 你选的那些创业方向 可能正在毁掉你!
  3. phpstudy一直自动停止启动_phpstudy apache启动后停止怎么办?
  4. # 2018-2019-1 20165230 《信息安全系统设计基础》第四周学习总结
  5. 新手如何快速上手Linux,韦东山告诉你。
  6. javascript学习系列(11):数组中的findIndex方法
  7. 《自然》年度十大人物出炉!中国科学家入选
  8. 用框图说明计算机控制系统,计算机控制系统试题
  9. Arraylist理解(2)扩容
  10. spring5(6) ---Ioc和DI
  11. attention :为什么要用attention机制
  12. WebStrom的学习使用 H5开发
  13. Java应用案例分析_Java应用启动参数实例解析
  14. QCC Practice
  15. 如何快速8小时写一篇毕业论文
  16. R语言基于visreg 包COX回归和连续变量交互效应(交互作用)的可视化分析
  17. pdf转换成word后有文字叠加_PDF转换成Word后进行处理
  18. 输出1-1000内 所有 7 的倍数或个位是7的整数。
  19. 如何编辑运行HTML网页文件(HTML编辑工具使用介绍)
  20. 飞思卡尔芯片k66单片机溢出_PWM 初试溢出中断

热门文章

  1. SpringCloud-Netflix
  2. DeepFaceLab:视频中有多人,仅替换特定人脸的方法!
  3. 密码学小知识(1):布隆过滤器(Bloom Filter)、混淆布隆过滤器(Garbled BF)和布谷鸟过滤器(Cuckoo Filter)
  4. 蓝桥杯练习 杨辉三角形
  5. iOS检测当前设备是否越狱系统
  6. windows系统下itunes的备份路径修改
  7. 音乐心理学 | 书籍推荐
  8. HTML中图片文件名字有括号,文件批量顺序重命名去掉括号
  9. python 模拟汽车转动
  10. GIMP制作电子签名