在 Pyglet 中操纵不断重复的音频的音量

问题描述 投票:0回答:2

如何控制通过

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 音频的经验,所以我可能忽略了一些我不知道的东西。

python pyglet python-3.10
2个回答
0
投票

音频播放器是正确的方法,因为您可以在播放器上设置音量。

audioPlayer.volume = 0.5

在底层,所有

media.play()
命令所做的就是创建一个
Player
实例,排队并播放它。如果您想重播某些内容,只需将源排队并再次播放播放器即可。如果您需要音频重叠,那么您每次都会创建单独的
Player
实例,就像
media.play()
那样。


0
投票

您可以使用“volume”作为 play() 方法的属性,因此:

import pyglet
bullet = pyglet.media.load("bullet.wav", streaming=False)
bullet.play().volume = .5
# bullet.play().loop = True  # Infinity loop
© www.soinside.com 2019 - 2024. All rights reserved.