PyQt4 QtGui.QSound作为命令行程序播放?

时间:2013-05-01 05:24:27

标签: qt pyqt pyqt4 audio

怎么可能从命令行爆炸QSound?

在PyQt4下,playSound.py可以像这样简单:

QtGui.QSound('start.wav').play()

除非没有.exec()样式的事件调度程序,否则它不会播放。

那么最简单的调度队列是什么,它不会弹出窗口并按时退出?

4 个答案:

答案 0 :(得分:1)

QSound没有可靠且便携的方式在声音完成时发出信号。

您可以使用声音(code example in C++)并将MediaObject::finished()信号连接到应用的quit()位置。

答案 1 :(得分:1)

为什么将PyQt用于CLI应用程序?看起来有点过分,你应该接受Python的电池并使用PyQt作为用户界面,如果你需要CLI和GUI版本,这种方式更便携。

在普通Python中播放音频有很多选择。 [1]

[1] http://wiki.python.org/moin/Audio/

另请在SO上查看这些:

Play audio with Python

Play a Sound with Python

答案 2 :(得分:1)

以下独立代码对我来说很好,没有任何窗口弹出:

from PyQt4 import QtGui
s = QtGui.QSound('test.wav')
s.play()
while not s.isFinished():
    sleep(0.1)

需要进行s.isFinished()检查,否则脚本会在没有播放wav的情况下立即退出,因为play()没有阻止。

http://doc.qt.io/qt-5/qsound.html

答案 3 :(得分:0)

来自PyQt4.QtGui导入QSound

QSound.play("文件名&#34)