我嘗試用QSound::play
播放.wav與QSound的(QT)無聲音存在
播放.wav Qt中的文件,我試過這段代碼:
QSound::play("airplane.wav");
沒有錯誤時生成,但是當跑在那裏沒有聲音?!
我嘗試用QSound::play
播放.wav與QSound的(QT)無聲音存在
播放.wav Qt中的文件,我試過這段代碼:
QSound::play("airplane.wav");
沒有錯誤時生成,但是當跑在那裏沒有聲音?!
這搖鈴我,等我發現我用它來處理聲音的代碼。我們的平臺是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());
現在你可以繼續嘗試播放聲音文件。
謝謝你的回答:) – hoohub
我花了無數天類似的問題。基本上,我發現QSound不支持44100 Hz採樣率的波形文件。在QT5 QSound does not play all wave files
旁註看看我發現,QSound的不支持QT資源,如果你正在使用一個。解決方法是將資源複製到文件中,然後使用硬盤上的QSound播放該文件。希望這個信息有幫助。
你在哪個平臺上運行,並且通過檢查http://doc.qt.nokia.com/latest/qsound.html#isAvailable的結果確定是否有良好的支持? – HostileFork