为什么QtGui.QSound根本不玩任何东西?

时间:2014-01-14 15:42:20

标签: python python-2.7 user-interface pyqt pyqt4

所以,我正试图在我的应用程序中播放声音。通常,声音需要在倒计时结束后播放,然后停止用户交互。

但是,问题是QSound最终什么都不玩。我已经尝试过mp3,wav等没有任何结果。

可能的原因是什么?

我在Linux和Windows上都试过这个。这是我尝试过的(play和play2函数):

class Window(QtGui.QWidget):
    def __init__(self):
        QtGui.QWidget.__init__(self)
        self.initUI()

    def initUI(self):
        self.setGeometry(300, 300, 200, 200)
        self.btn = QtGui.QPushButton("Play", self)
        self.btn.clicked.connect(self.play)
        self.btn.move(50, 80)

    def play(self):
        c = QtGui.QSound("1.mp3")
        c.play()

    def play2(self):
        QtGui.QSound.play("1.mp3")

它们都不起作用!

编辑:我使用Phonon作为我的目的,但我不知道为什么这不起作用。

1 个答案:

答案 0 :(得分:3)

您应该致电QSound.isAvailable()以检查您的平台上是否有必要的声音设施(但请注意,这可能会在Windows上产生误报)。

当我在Linux上尝试这个时,打印False,即使安装了声子,我也可以使用PyQt Phonon模块播放音频。

这可能是因为我没有内置NAS支持(我没有检查过),这是决定X11可用性的关键要求。对于其他平台,请参阅Detailed Description以了解QSound - 特别注意QSound只会在Windows上播放WAV文件。