存储在ResourceHolder中的声音缓冲区无法播放SFML声音



我目前正在用sfml做一个小游戏。

对于资源加载和保存,我使用SFML游戏中描述的ResourceHolder开发手册:SFML资源持有者基本上,资源以unique_ptr的形式存储在地图中。

在SoundManager类中,我正在将不同的声音加载到此ResourceHolder。当我想播放声音时,这个SoundManager有一个播放声音的功能。

void SoundManager::playSound(SoundType soundToPlay) {
auto buffer = sounds.get(soundToPlay);
auto sound = sf::Sound(buffer);
sound.play();
}

但是我没有听到任何声音。我必须为地图中的每个声音存储不同的声音对象吗?我还尝试使用sf::Sound对象作为类成员,但这也不起作用。

使用此ResourceHolder可以正确加载纹理。

感谢您对的帮助

我在sfml-dev论坛中通过一些输入链接描述解决了这个问题。

最新更新