SFML 没有声音播放存储在 ResourceHolder 中的声音缓冲区

SFML no sound playing with soundbuffers stored in ResourceHolder

我目前正在使用 sfml 开发一个小游戏。

对于资源加载和保存,我正在使用 SFML 游戏中描述的 ResourceHolder 开发书:SFML ResourceHolder 资源基本上都是以unique_ptr的形式存储在一个map中。

在 SoundManager 中 class 我正在向此 ResourceHolder 加载不同的声音。当我想播放声音时,这个 SoundManager 有一个 playSound 函数。

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

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

使用这个 ResourceHolder 可以正确加载我的纹理。

谢谢你的帮助

我能够通过 sfml-dev 论坛中的一些 enter link description here 解决这个问题。