pygame.mixer是一个用来处理声音的模块,其含义为“混音器”。游戏中对声音的处理一般包括制造声音和播放声音两部分,这里仅学习了播放声音部分。
1、pygame.mixer启动与初始化
pygame.mixer.init():mixer的初始化。程序中,使用时,一般放在最前面的几句代码中:
import pygame pygame.init() pygame.mixer.init()
soundwav=pygame.mixer.Sound("filename.wav") #filename.wav文件名 soundwav.play()
import pygame,sys pygame.init() pygame.mixer.init() screen=pygame.display.set_mode([640,480]) pygame.time.delay(1000)#等待1秒让mixer完成初始化 soundwav=pygame.mixer.Sound("filename.wav") soundwav.play() while 1: for event in pygame.event.get(): if event.type==pygame.QUIT: sys.exit()
pygame.mixer.music.load("filename.mp3") pygame.mixer.music.play(n,start,stop)#第一个参数为播放次数,如果是-1表示循环播放,省略表示只播放1次。第二个参数和第三个参数分别表示播放的起始和结束位置。
import pygame,sys pygame.init() pygame.mixer.init() screen=pygame.display.set_mode([640,480]) pygame.time.delay(1000) pygame.mixer.music.load("filename.mp3") pygame.mixer.music.play() while 1: for event in pygame.event.get(): if event.type==pygame.QUIT: sys.exit()
pygame.mixer.music.load("filename1.mp3") pygame.mixer.music.play() pygame.mixer.music.load("filename2.mp3") pygame.mixer.music.play()
import pygame,sys pygame.init() pygame.mixer.init() screen=pygame.display.set_mode([640,480]) pygame.time.delay(1000) pygame.mixer.music.load("filename.mp3") pygame.mixer.music.play() soundwav=pygame.mixer.Sound("filename.wav") while 1: for event in pygame.event.get(): if event.type==pygame.QUIT: sys.exit() if not pygame.mixer.music.get_busy(): soundwav.play() pygame.time.delay(5000)#等待5秒让filename.wav播放结束 sys.exit()
pygame.mixer.music.set_volume()用来控制音量,取值范围为0-1.0的浮点数。0为最小值,1为最大值。
5、制作mp3播放器中遇到的问题
python+wxpython+pygame完全可以很容易方便的做出一个mp3播放器,但是在制作中遇到两个问题:
一是中文歌曲名的显示,通过搜索已经解决,加上# encoding='GBK'
二是pygame在播放mp3文件时,发现并不是所有的mp3文件都有播放,常常会出现播放声音不正确的情况,有时只是杂响。经过与python学习交流群(2)中的すeasyげ交流,すeasyげ提出位速128kbps的mp3文件可以播放,但从网上下了几个128kbps的mp3测试后,发现播放不正常的情况依然存在。不知道哪位大牛能解决这一问题,希望能把解决方法告知一下,谢谢。
因此,如果您打算写一个mp3的播放工具,python能做mp3播放的模块很多,这里,我觉得可以考虑使用mp3play模块,比较方便简单。目前版本为mp3play 0.1.15,具体下载地址为http://pypi.python.org/pypi/mp3play/。这里简单介绍一下其主要方法:
play(n,starms,endms):播放,第一个参数表示次数,第二、三个参数表示播放的起止位置,单位是毫秒。
stop(): 停止。
pause(), unpause(): 暂停和开始。
isplaying(): 判断是否正在播放,如果返回为TRUE,表示正在播放歌曲。
ispaused(): 判断是否为暂停,如果返回为TRUE,表示暂停。
seconds(): 返回mp3文件共多少秒,注意这里的单位是秒。
milliseconds(): 返回mp3文件共多少毫秒,注意这里的单位是毫秒。
mp3play首页上给出的例子为:
import mp3play filename = r'C:\music.mp3'#播放c盘下的music.mp3文件 clip = mp3play.load(filename) clip.play() import time time.sleep(min(30, clip.seconds()))#如果mp3文件的长度小于30少时,全部播放完,否则仅播放30秒。 clip.stop()
本文向大家介绍pygame学习笔记(5):游戏精灵,包括了pygame学习笔记(5):游戏精灵的使用技巧和注意事项,需要的朋友参考一下 据说在任天堂FC时代,精灵的作用相当巨大,可是那时候只知道怎么玩超级玛丽、魂斗罗,却对精灵一点也不知。pygame.sprite.Sprite就是Pygame里面用来实现精灵的一个类,使用时,并不需要对它实例化,只需要继承他,然后按需写出自己的类就好了,因此非常简
本文向大家介绍Bootstrap学习笔记之js组件(4),包括了Bootstrap学习笔记之js组件(4)的使用技巧和注意事项,需要的朋友参考一下 这次我们来看下js组件的使用,本篇文章会有点长,希望大家可以耐心看,相信收获会有不少。不少园友加我好友,表示喜欢我写文字的风格,简单明了,这里,再次谢谢你们的支持。一方面,自身技术有限,写的东西都比较基础,另一方面,写的东西,都是根据自己的理解,把复杂
本文向大家介绍MongoDB 学习笔记,包括了MongoDB 学习笔记的使用技巧和注意事项,需要的朋友参考一下 1、配置:mongod --dbpath=D:\MongoDB\data mongo 2、基本的增删查改 find() update()-- 整体更新,局部更新。 修改器: $inc db.person.update({"age":23},{$inc:{"salary":1000}})
本文向大家介绍cmake 学习笔记,包括了cmake 学习笔记的使用技巧和注意事项,需要的朋友参考一下 最近接触到一些工程上的代码,都是用cmake来编译的,每次看着CMakeLists.txt 就各种懵逼,决定从0 开始学习 1 set 输出 hello 其实并不是单单输出hello,还有很多其他信息,会生成很多文件 files 2 CMAKE_C(XX)_FLAGS 变量 CMAKE_C_FL
TensorFlow安装 初识Tensorboard SKflow 觉得我的文章对您有帮助的话,就给个star吧~ 土豪可以打赏支持,一分也是爱
Copyright © 2004,2005,2006 本文遵从GNU 的自由文档许可证(Free Document License)的条款,欢迎转载、修改、散布。 发布时间:2004年11月16日 最近更新:2006年06月08日,增加安全策略。 Abstract Debian 是 Linux 发行版当中最自由的一种。由位于世界各地上千名的自愿者不断开发和维护。它不属于任何的商业公司,完全由开源社