2013-05-01 3 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 по крайней мере phonon встроен, в отличие от нескольких других звуковых драйверов, о которых мы могли бы также упомянуть! – Phlip

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

+0

Поскольку мы создаем приложение PyQt4, поэтому основное правило «предпочитает PyQt4 по любой другой библиотеке, если это вообще возможно» – Phlip

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 ("Имя файла")

Смежные вопросы