我尝试使用QSound::play
我试过这段代码:
QSound::play("airplane.wav");
构建时没有错误但运行时没有声音?!
答案 0 :(得分: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());
现在你可以继续尝试播放声音文件了。
答案 1 :(得分:0)
我在类似的问题上度过了无数天。基本上,我发现QSound不支持44100 Hz采样率的波形文件。在QT5 QSound does not play all wave files
查看我的发现附注,QSound不支持QT资源,以防您使用QT资源。解决方法是将资源复制到文件中,然后使用QSound从硬盘驱动器播放该文件。希望这些信息有所帮助。