pygame 的声音播放

狂风中的少年 提交于 2020-08-11 04:15:43

pygame 的声音播放

1. sound 对象

在初始化声音设备后就可以读取一个音乐文件到一个 Sound 对象中。pygame.mixer.sound() 接收一个文件名,也可以是一个文件对象,不过这个文件对象必须是 WAV 或者 OGG 文件。

hello_sound = pygame.mixer.sound("hello.ogg")		# 建立 Sound 对象
hello_sound.play()					# 声音播放一次

一旦这个 Sound 对象出来了,就可以使用 play() 来播放它。play(loop, maxtime) 可以接收两个参数,loop 是重复的次数(取1是两次,注意是重复的次数,而不是播放的次数),-1 意味着无限循环;maxtime 是指多少毫秒后结束。

若不使用任何参数调用,意味着把这个声音播放一次。一旦 play() 方法调用成功,就会返回一个 Channel 对象,否则返回一个 None。


2. music 对象

pygame 中还提供了 pygame.mixer.music 类来控制背景音乐的播放。pygame.mixer.music 用来播放 MP3 和 OGG 文件,不过 MP3 并不是所有的系统都支持(Linux 默认就不支持 MP3 播放)。用户可以用 pygame.mixer.music.load() 加载一个文件,然后使用 pygame.mixer.music.play() 播放,不放的时候就用 stop() 方法停止,当然也有类似录影机上的 pause() 和 unpause() 方法。

# 加载背景音乐
pygame.mixer.music.load("hello.mp3")
pygame.mixer.music.set_volume(music_volume / 100.0)
# 循环播放,从音乐的第30秒开始
pygame.mixer.music.play(-1, 30.0)

在游戏退出事件中加入停止音乐播放的代码:

# 停止音乐播放
pygame.mixer.music.stop()

music 对象提供了丰富的函数方法,下面分别介绍:

  1. pygame.mixer.music.load()

    功能:加载音乐文件

    格式:pygame.mixer.music.load(filename)

  2. pygame.mixer.music.play()

    功能:播放音乐

    格式:pygame.mixer.music.play(loops = 0, start = 0.0)

    其中 loops 表示循环次数,如果设置为 -1 ,表示不停的循环播放,如果 loops 为 5 ,则播放 5+1=6 次;start 表示从音乐文件的哪一秒开始播放,设置为 0 表示从开始完整播放。

  3. pygame.mixer.music.rewind()

    功能:重新播放

    格式:pygame.mixer.music.rewind()

  4. pygame.mixer.music.stop()

    功能:停止播放

    格式:pygame.mixer.music.stop()

  5. pygame.mixer.music.pause()

    功能:暂停播放

    格式:pygame.mixer.music.pause()

    用户可以通过 pygame.mixer.music.unpause() 恢复播放。

  6. pygame.mixer.music.set_volume()

    功能:设置音量

    格式:pygame.mixer.music.set_volume(value)

    其中 value 的取值为 0.0 ~ 1.0 。

  7. pyagme.mixer.music.get_pos()

    功能:获取当前播放了多长时间

    格式:pygame.mixer.music.get_pos()

    返回值为 time 。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!