QSoundEffect ::play(SOUND_BACKGOUND)显示函数不接受一个参数,怎么修改
时间: 2024-03-03 09:51:44 浏览: 19
`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`。