在Pygame中更改sonid频率

时间:2016-05-18 04:23:14

标签: python pygame

如果按下按钮,我想更改sonid频率。我使用Pygame,特别是混音器模块。当我第一次设定频率时,我无法重新设定。我已经阅读了Pygame的文档,并且存在pre_init()方法,这设置了音乐播放之前的频率。现在我有这个:

def play_full(self, frequency=22050):
    """Play if a button is pressed"""
    pygame.mixer.pre_init(frequency=frequency)
    pygame.mixer.init()
    pygame.mixer.music.load(os.path.join(os.path.dirname(__file__), "../music/hi.mp3"))
    pygame.mixer.music.play()

但是当我将参数发送到函数时,频率不会改变。如何根据按下的按钮改变频率?,是否有一些例子?顺便说一句,我使用PyQt4进行GUI。

1 个答案:

答案 0 :(得分:0)

在pygame.mixer.init()中,您需要设置频率大小和通道, 在您的情况下,您将编写如下代码:

import pygame.mixer

def play_full(self, my_frequency):
    pygame.mixer.init(my_frequency, size=-16, channels=2)
    pygame.mixer.music.load('YOUR_FILE_DIRECTORY_GO_HERE')
    pygame.mixer.music.play()

这样,您可以为要执行的操作设置频率。