2013-07-24 58 views
0

我的應用程序應該可以在Windows和Linux(Ubuntu)上運行。所以我必須重新實現我的通知聲音,因爲QSound在Ubuntu下不起作用。 我想用QAudioOutput。在PyQt中使用QAudioOutput播放聲音

我不能讓它運行這個代碼,我不明白我必須做什麼。你有什麼建議嗎?或者也許另一個適用於這兩種操作系統的想法?

from PyQt4.QtGui import QApplication 
import sys 
from PyQt4.QtMultimedia import QAudioOutput, QAudioFormat 
from PyQt4.QtCore import QFile, QIODevice 


app=QApplication(sys.argv) #1st Edit 

output=QAudioOutput() 

soundFile=QFile() 
soundFile.setFileName("C:\\Users\\delete_2.wav") 
soundFile.open(QIODevice.ReadOnly) 

output.start(soundFile) 

app.exec_()    #1st Edit 

回答

0

我不知道這是否是唯一的問題,但你肯定需要創建一個QApplication對象並啓動主事件循環。添加到您的程序的開頭:

app = QApplication() 

添加到您的程序結束:

app.exec_() 
+0

好的,謝謝,但它仍然沒有播放任何聲音。 – user2366975

0

行後:

app = QApplication(sys.argv) 

( '輸出' 的定義之前)插入這些行:

format = QAudioFormat() # 2nd Edit 
format.setChannels(1) # 2nd Edit 
format.setFrequency(22050) # 2nd Edit 
format.setSampleSize(16) # 2nd Edit 
format.setCodec("audio/pcm") # 2nd Edit 
format.setByteOrder(QAudioFormat.LittleEndian) # 2nd Edit 
format.setSampleType(QAudioFormat.SignedInt) # 2nd Edit 

和替換

output = QAudioOutput() 

output = QAudioOutput(format) #2nd Edit 

這爲我工作在Windows,但現在我沒有安裝Linux發行版在OS測試代碼,反正我希望它工作在兩種操作系統。