怎么可能从命令行爆炸QSound?
在PyQt4下,playSound.py可以像这样简单:
QtGui.QSound('start.wav').play()
除非没有.exec()样式的事件调度程序,否则它不会播放。
那么最简单的调度队列是什么,它不会弹出窗口并按时退出?
答案 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上查看这些:
答案 2 :(得分:1)
以下独立代码对我来说很好,没有任何窗口弹出:
from PyQt4 import QtGui
s = QtGui.QSound('test.wav')
s.play()
while not s.isFinished():
sleep(0.1)
需要进行s.isFinished()
检查,否则脚本会在没有播放wav的情况下立即退出,因为play()
没有阻止。
答案 3 :(得分:0)
来自PyQt4.QtGui导入QSound
QSound.play("文件名&#34)