声音之控制音量,,


  控制音量

  可以使用音量控制开关来控制计算机上的声音音量。在Windows系统上,这是利用系统托盘里的小扬声器图标完成的。这个设置会控制计算机上所有声音的音量。你的扬声器本身可能也有一个音量控制杆。

  与孩子一起学编程-python教程

  不过,除此以外,我们还可以控制Pygame发送到计算机声卡的音量。

  与孩子一起学编程-python教程

  好在我们可以单独控制每个声音的音量,例如,可以让音乐音量小一些,让“啪啪 ”声更响一些。

  要设置音乐的音量,需要使用Pygame.mixer.music.set_volume()。而每个声音对象都有一个set_volume()方法。在第一个例子中,声音对象的名字是splat,所以我们使用了splat.set_volume(),音量是一个介于0到1的浮点数,例如,0.5就是最大音量的50%或一半。

  

  

  现在试着在同一个程序中播放音乐和声音,先来播放一首歌曲。在最后再播放“啪啪”声。还要把声音的音量调低一下。我们把音乐的音量设置为30%,“啪啪”声的音量为50%,这个代码见代码清单19-3.

  与孩子一起学编程-python教程与孩子一起学编程-python教程

  试着运行这个程序,看看它的效果。

  与孩子一起学编程-python教程

  Carter注意到这样一个问题:程序一旦开始播放音乐,就会继续做下一件事,在这里就是播放“啪啪”声,为什么会出现这种情况呢?原因是:通常我们都是使用背景音乐,你肯定不希望程序只是“呆坐在那里”,一直等到整首歌都播放完之后才开始做事情。在下一节中,我们会让它按我们希望的方式工作。

  播放背景音乐

  背景音乐是指玩游戏时在背景播放的音乐。所以一旦开始播放背景歌曲,Pygame必须做好准备来做其他事情,比如移动动画精灵,或者检查是否有鼠标和键盘输入,它不会一直等到歌曲播放完。

  但是如果你想知道歌曲什么时候结束该怎么做呢?你可能希望等这首歌播放完就播放另一首歌或者另一个声音(就像我们现在要做的一样)。你怎么知道音乐什么时候结束呢?为此。Pygame提供了一种方法:你可以询问mixer.music模块是否还在忙于播放一首歌,如果忙,就能知道歌曲还没有播放完。如果它不忙,说明歌曲已经结束,下面就来试一试。

  要查看music模块是否在忙于播放一首歌,可以使用mixer.music模块的get_busy()函数,如果它仍在忙,这个函数会返回值True,如果不忙,函数会返回False。这一次,我们要让程序先播放歌曲,然后播放音效,再自动结束程序。代码清单19-4显示了如何完成这些工作。

  与孩子一起学编程-python教程与孩子一起学编程-python教程

  这个代码会播放一次歌曲,接下来播放音效,然后程序会结束。

评论关闭