一个人如何从命令行爆炸 QSound?
在 PyQt4 下,playSound.py 可以这么简单:
QtGui.QSound('start.wav').play()
除非没有可用的 .exec() 样式事件调度器,否则它不会播放。
那么最简单的不会弹出窗口并按时退出的调度队列是什么?
QSound
当声音完成时,没有可靠且便携的方式来发出信号。
您可以改用声子(C++ 中的代码示例)并将MediaObject::finished()
信号连接到quit()
应用程序的插槽。
为什么将 PyQt 用于 CLI 应用程序?看起来有点矫枉过正,你应该拥抱 Python 的电池并为 UI 使用 PyQt,如果你需要 CLI 和 GUI 版本,这种方式更便携。
在纯 Python 中播放音频有很多选择。[1]
[1] http://wiki.python.org/moin/Audio/
还要在这里检查这些:
以下独立代码对我来说很好,不会弹出任何窗口:
from PyQt4 import QtGui
s = QtGui.QSound('test.wav')
s.play()
while not s.isFinished():
sleep(0.1)
检查是必需的s.isFinished()
,否则脚本将在没有播放 wav 的情况下立即退出,因为play()
不会阻塞。
从 PyQt4.QtGui 导入 QSound
QSound.play("文件名")