我一直在尝试使用pygame为所有声音设置音量。 def on_press(self): file_name = self.filename
pygame.mixer.pre_init(44100, 16, 2, 4096)
pygame.init()
pygame.mixer.init(44100)
channel=pygame.mixer.Sound(file_name)
channel.play(0)
每次按前端的按钮,都会播放声音。我可以播放尽可能多的声音。 现在我的问题是如何控制所有音乐的音量?在这里,我应该为每个文件创建对象并设置其音量值。代码如下
channel=pygame.mixer.Sound(file_name)
channel.play(0)
如何全局设置音量?正在播放的所有文件都应该受到给定音量的影响? 谢谢你的帮助!
答案 0 :(得分:0)
我相信您必须使用Sound.set_volume(value)
单独设置每一个。您必须存储您创建的每个Sound实例,然后在希望更改卷时循环遍历它们。如果您想根据已经存在的音量设置每个音量,您可以执行以下操作:
def set_all_volume(sounds,mult):
for sound in sounds:
vol = sound.get_volume()
sound.set_volume(min(vol*mult,1.0))
答案 1 :(得分:0)
我正在使用用于全局设置音量的功能。该函数包含 sound.set.volume()行,您可以在其中设置使用该函数创建的所有声音对象的音量。
# Audio
pygame.mixer.init()
# Sound
def create_sound04(name):
fullname = "audio/sound/" + name # path + name of the sound file
sound = pygame.mixer.Sound(fullname)
sound.set_volume(0.40)
return sound
使用该功能,我可以创建声音对象。
closedGate = create_sound04("closedGate.wav")
openGate = create_sound04("openGate.wav")
它们都设置为相同的音量并准备播放。
您还可以使用不同的函数名称创建具有不同音量和/或路径的第二个函数。