为什么QtGui.QSound根本不播放任何内容?

因此,我正在尝试在应用程序中播放声音.通常,在倒计时结束后需要播放声音,然后停止用户交互.

但是,问题在于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的目的,但我不知道为什么这不起作用.

解决方法:

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

当我在Linux上尝试此操作时,即使安装了声子,也可以打印False,并且可以使用PyQt Phonon模块播放音频.

这可能是因为我没有内置NAS支持(尚未检查),这是确定X11可用性的关键要求.对于其他平台,请参阅Detailed Description for QSound-特别要注意,QSound仅在Windows上播放WAV文件.

上一篇:退出时出现PyQt 5错误


下一篇:PyQt:使用QDataStream保存本机QTreeWidgets