2

一个人如何从命令行爆炸 QSound?

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

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

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

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

4

4 回答 4

1

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

您可以改用声子(C++ 中的代码示例)并将MediaObject::finished()信号连接到quit()应用程序的插槽。

于 2013-05-01T08:31:35.747 回答
1

为什么将 PyQt 用于 CLI 应用程序?看起来有点矫枉过正,你应该拥抱 Python 的电池并为 UI 使用 PyQt,如果你需要 CLI 和 GUI 版本,这种方式更便携。

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

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

还要在这里检查这些:

使用 Python 播放音频

用 Python 播放声音

于 2013-05-02T15:24:36.073 回答
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

于 2015-08-05T09:49:29.067 回答
0

从 PyQt4.QtGui 导入 QSound

QSound.play("文件名")

于 2015-10-20T16:16:06.820 回答