2013-05-01 49 views
2

如何從命令行激發QSound?PyQt4 QtGui.QSound作爲命令行程序播放?

在PyQt4中,playSound.py可能是如此簡單:

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

只是它不提供沒有一個.exec()式的事件調度玩。

那麼最簡單的調度隊列不會彈出一個窗口並按時退出?

回答

1

QSound沒有可靠和便攜的方式發出聲音完成信號。

您可以改用聲子(code example in C++)並將MediaObject::finished()信號連接到應用程序的quit()插槽。

+0

和一個小應用程序僅用於EXEC鍵。 K至少聲子是內置的,不像其他一些聲音驅動程序,我們也可以提到! – Phlip 2013-05-01 15:49:05

1

爲什麼在一個CLI應用程序中使用PyQt?看起來有點過分,你應該接受Python的電池,並使用PyQt作爲用戶界面,如果你需要CLI和GUI版本的話,這種方式更加便攜。

在純Python中播放音頻有很多選項。 [1]

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

而且,這裏檢查這些對SO:

Play audio with Python

Play a Sound with Python

+0

因爲我們正在構建一個PyQt4應用程序,所以基本規則是「比任何其他庫更喜歡PyQt4,如果可能的話」 – Phlip 2013-05-13 16:23:29

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

0

從PyQt4.QtGui進口QSound的

QSound.play( 「文件名」)