2011-08-31 203 views
0

我嘗試用QSound::play播放.wav與QSound的(QT)無聲音存在

播放.wav Qt中的文件,我試過這段代碼:

QSound::play("airplane.wav"); 

沒有錯誤時生成,但是當跑在那裏沒有聲音?!

+3

你在哪個平臺上運行,並且通過檢查http://doc.qt.nokia.com/latest/qsound.html#isAvailable的結果確定是否有良好的支持? – HostileFork

回答

1

這搖鈴我,等我發現我用它來處理聲音的代碼。我們的平臺是Windows,所以這對我們很有用。我把所有這一切都包裝在一個球員類中。我給自己的筆記說,QSound需要平臺格式的絕對路徑(通過檢查QSound代碼找到)。因此,試圖通過一些獲取文件路徑這樣

// (note the "sSoundPath" variable is set to where we store our sound files). 
static const QString sSoundPath("./resources/sounds/"); 

別處......

// QSound wants absolute paths, in platform format 

QFileInfo fileInfo(soundFile); 

if (fileInfo.isRelative()) 
{ 
    // we assume one of our own sound files in a relative path 
    fileInfo.setFile(sSoundPath + soundFile); 
    fileInfo.makeAbsolute(); 
} 

if (!fileInfo.exists()) 
{ 
    return false; 
} 

mSoundFile = QDir::toNativeSeparators(fileInfo.filePath()); 

現在你可以繼續嘗試播放聲音文件。

+0

謝謝你的回答:) – hoohub

0

我花了無數天類似的問題。基本上,我發現QSound不支持44100 Hz採樣率的波形文件。在QT5 QSound does not play all wave files

旁註看看我發現,QSound的不支持QT資源,如果你正在使用一個。解決方法是將資源複製到文件中,然後使用硬盤上的QSound播放該文件。希望這個信息有幫助。