QSoundEffect::availableSoundEffects()怎么用
时间: 2024-02-27 17:57:16 浏览: 23
QSoundEffect::availableSoundEffects() 是一个静态函数,用于获取系统中可用的音效列表。使用方法如下:
```cpp
#include <QSoundEffect>
// ...
// 获取可用的音效列表
QList<QUrl> soundEffects = QSoundEffect::availableSoundEffects();
// 打印音效列表
foreach (const QUrl &url, soundEffects) {
qDebug() << url.toString();
}
```
该函数会返回一个 QUrl 类型的列表,每个 QUrl 对象表示一个可用的音效文件的路径。你可以遍历这个列表,获取每个音效文件的路径,并进行相应的操作。
相关问题
void Sound::play() { QSoundEffect::play(SOUND_BACKGROUND); } void WingFlapSound:: play() { QSoundEffect::play(SOUND_WING); } void HitSound::play() { QSoundEffect::play(SOUND_HIT); }显示call to non-static member function without an object argument
这个错误通常是因为调用了成员函数,但没有提供一个对象作为参数。成员函数需要一个对象才能被调用,因为它们依赖于对象的状态和数据。你需要创建一个对象,然后调用该成员函数。例如,如果你有一个名为`sound`的`Sound`对象,你可以这样调用`play`函数:
```
sound.play();
```
如果你要在静态函数中调用成员函数,你需要先创建一个对象,然后使用该对象来调用成员函数。例如:
```
static void someStaticFunction() {
Sound sound;
sound.play();
}
```
QSoundEffect ::play(SOUND_BACKGOUND)显示函数不接受一个参数,怎么修改
`QSoundEffect::play()` 函数是不接受参数的,它会播放已经设置的音效。如果您想播放不同的音效,需要在设置音效时给它们不同的名称,然后在播放时使用相应的名称。
例如,您可以这样设置两个不同的音效:
```cpp
QSoundEffect backgroundSound;
backgroundSound.setSource(QUrl::fromLocalFile("background.wav"));
backgroundSound.setLoopCount(QSoundEffect::Infinite);
backgroundSound.setObjectName("background");
QSoundEffect explosionSound;
explosionSound.setSource(QUrl::fromLocalFile("explosion.wav"));
explosionSound.setLoopCount(1);
explosionSound.setObjectName("explosion");
```
然后,在播放时,您可以这样使用它们:
```cpp
QSoundEffect* sound = findChild<QSoundEffect*>("background");
if (sound) {
sound->play();
}
```
```cpp
QSoundEffect* sound = findChild<QSoundEffect*>("explosion");
if (sound) {
sound->play();
}
```
请注意,`findChild()` 函数用于在对象树中查找具有指定对象名称的对象。如果找到了该对象,则返回一个指向该对象的指针;否则返回 `nullptr`。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)