Isavailable不是QSound的成员

时间:2014-03-10 07:19:56

标签: c++ qt qt4 qt5

我想用QT 5.2.1编译一些旧的QT项目并且有很多麻烦,其中一个是QSound问题:

if(!QSound::isAvailable()) {
    ui.grpSounds->setEnabled(false);
    ui.grpSounds->setTitle(tr("Sounds (Not Available)"));
}

错误:  'isAvailable'不是'QSound'的成员

有人会帮助我吗?我是Qt的全新手。 谢谢。

2 个答案:

答案 0 :(得分:1)

如果您想通知用户是否可以播放声音,那么您最好的选择是QAudioDeviceInfo。您可以使用静态方法

查询可用的输入或输出设备
QList<QAudioDeviceInfo> QAudioDeviceInfo::availableDevices(QAudio::Mode mode)

例如,您可以用

替换QSound::isAvailable()
!QAudioDeviceInfo::availableDevices(QAudio::AudioOutput).isEmpty()

修改:

QSound是gui模块的一部分,但现在是多媒体模块的一部分(更有意义)。您需要查看changes in multimedia modules from Qt4 to Qt5以获取更多信息。您可能还想查看QSoundEffect,它似乎有更丰富的API

答案 1 :(得分:0)

根据类引用,Qt 5.2没有Sound :: isAvailable()静态方法http://qt-project.org/doc/qt-5/qsound.html

这是在Qt4.8