----------------
播放声音2
--------------------
应のBlog
作者:摇滚米饭
在阅读此节之前请先将这一节(技巧篇1)看完.
上一讲我们简单的说了播放声音.今天我们再详细说一下.
在技巧篇1里我们知道了怎么查看一个模块中的所有函数.现在我们就来看一下:
在py解释器里运行:
>>> import audio
>>> dir(audio.Sound)
["__class__", "__delattr__", "__dict__", "__getattribute__", "__hash__", "__init__", "__module__", "__new__", "__reduce__", "__repr__", "__setattr__", "__str__", "__weakref__", "_say", "close", "current_position", "current_volume", "duration", "max_volume", "open", "play", "record", "set_position", "set_volume", "state", "stop"]
>>>
我们就来了解一下这些函数的功能.注意一下,下面代码中的 S 是上一讲中的 S=audio.Sound.open(soundfile). 这里就不再重复写这段了
1.调节音量
S.current_volume()
#返回当前音量,0-9
S.max_volume()
#返回最大音量,我测试几次都是9
S.set_volume(X)
#设置音量为X.括号中的X为0-9任意数字(0为静音,9为最大音量)
2.播放时间
S.duration()
#返回当前音频长度,格式为300000000L这样的值.我不知道什么意思
要将此值转换成时间格式用如下代码:
du=(S.duration())/100000
str(du/600)+":"+"%02d"%(du%600/10)+"."+str(du%600)[-1]
此段代码摘自 MP3 编辑软件,对原作者表示敬佩和感谢.
S.current_position()
#当前播放时间.同样返回上面的数值.同样处理方法
S.set_position(X)
#设置播放位置为X.X值同300000000L样的值.
3.录音功能
在我的 6600 上面测试可以录 amr 和 wav 格式的声音.效果不错.而且最出色的是:如果已经存在此名称的声音文件,则追加声音,就是继续录,而不会覆盖以前的声音 .great!
s=audio.Sound.open("e:\\mifan.wav")#要保存的文件路径,如果不存在此路径会自动生成,如果已经存在此文件则追加声音,后缀名可以为amr,wav,mp3请自测.
s.record()#开始录音,现在就对着MIC唱歌吧.
s.stop()
#唱够了就可以停止录音了.
s.play()#听一下效果吧.
如果想接着录的话就再s.record()
4.其他
S.state()#返回数字: 0:声音对象被建立,但是没有音频打开; 1:停止; 2,正在播放; 3:正在录音
S.stop()#关闭音频文件