声音之播放声音,,


  播放声音

  播放声音时,要从硬盘(或从CD,或者有时从互联网)得到一个声音文件,把它转换成可以转换成可以在计算机的扬声器或耳机上听到的声音,计算机上可以使用多种不同类型的声音文件,以下是比较常见的类型。

  波形文件----文件名以.wav结尾,如hello.wav

  MP3文件---文件名为.mp3结尾,如mySong.mp3

  WMA(Windows媒体音频,Windows Media Audio)文件---文件名以.wma结尾,如someSong.wma。

  Ogg Vorbis文件------文件名以.ogg结尾,如yourSong.ogg。

  我们的例子中打算使用.wav和.mp3文件。

  在程序中包含一个声音文件有两种方法,可以把声音文件复制到保存程序的同一个文件夹中。Python会在这里查找文件,所以可以在程序中直接使用这个文件的名,例如:sound_file=”my_sound.wav”

  如果声音文件没有复制到程序所在的同一个文件夹中,就必须把声音文件的位置明确地告诉Python,例如:

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

  举几个例子,假设你已经把声音文件复制到保存程序的文件夹,这说明,只要在例子中用到声音文件,你只会看到文件名,而不是文件的完整位置,如果声音文件没有复制到程序文件夹,就要把文件名替换为完整的文件位置。

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

  启动pygame.mixer

  要播放声音,首先必须初始化(initialize)pygame.mixer。还记得初始化是什么意思吗?指的是开始时让某个东西做好准备。

  让pygame.mixer做好准备很容易,只需要在初始化Pygame之后增加一行代码:

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

  所以,使用Pygame处理声音的程序中最前面几行代码应该像这样:

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

  现在我们已经做好准备可以播放声音了,这些程序主要使用两种类型的声音,第一种是音效或声音片段,这些声音往往很短,通常保存在.wav文件中,对于这种类型的声音,pygame.mixer会使用一个Soud对象。如下:

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

  另一种大量使用的声音是音乐,音乐大多存储在.mp3、.wma或.ogg文件中。要播放这些音乐,Pygame会使用mixer中的music模块。可以这样来使用:

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

  这样歌曲(或音乐文件里的任何音乐)会播放一次,然后停止。

  下面来试着播放一些声音,首先来播放“啪啪”声。

  我们还需要一个while循环来保证Pygame程序一直运行,另外,尽管目前没有画任何图形,但Pygame程序仍然需要有一个窗口,而且,在某些系统上,mixer初始化还需要一点时间,如果播放声音太快,你可能只能听到声音的一部分,或者根本什么都听不到。所以我们会等一会,直到mixer准备好,这个代码见代码清单19-1.

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

  试着运行这个程序,看看它的效果如何,应该记得,IDLE运行Pygame程序可能有问题,所以可能需要使用SPE或其他方法来运行这个程序。

  现在来使用mixer.music模块播放一些音乐。只需要修改代码清单 19-1中的几行代码。新代码见代码清单19-2

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

  再来试一试,确保你能听到音乐。

  我不知道你具体情况,不过对我来说听起来声音太大了。我必须把计算机的音量调小,下节我们来看如何在程序中控制声音的音量。

评论关闭