如何控制通过
pyglet.media.load
加载的音频的音量?
原因是我必须重复重复一个声音(例如子弹),但是如果我使用播放器,声音会排队以便能够播放它,并且仅使用
.play()
播放一次(例如 bullet = pyglet.media.load("bullet.wav", streaming=False) audioPlayer = pyglet.media.Player() audioPlayer.queue(bullet)
如果audioPlayer.play()
命令被使用多次,例如从一个按键,它只执行一次,仅此而已)
如果我不使用播放器,我可以不断使用声音,但此时我无法再操纵音频的音量。 (例如
bullet = pyglet.media.load("bullet.wav", streaming=False) bullet.play()
)
那么我该如何解决这个问题呢?我没有太多使用 Pyglet 音频的经验,所以我可能忽略了一些我不知道的东西。
音频播放器是正确的方法,因为您可以在播放器上设置音量。
audioPlayer.volume = 0.5
在底层,所有
media.play()
命令所做的就是创建一个 Player
实例,排队并播放它。如果您想重播某些内容,只需将源排队并再次播放播放器即可。如果您需要音频重叠,那么您每次都会创建单独的 Player
实例,就像 media.play()
那样。
您可以使用“volume”作为 play() 方法的属性,因此:
import pyglet
bullet = pyglet.media.load("bullet.wav", streaming=False)
bullet.play().volume = .5
# bullet.play().loop = True # Infinity loop