SFML SoundBuffer到音乐缓冲区

时间:2016-01-16 21:42:06

标签: c++ sfml soundbuffer

我有SoundBuffer。我希望这个缓冲区移动到音乐。 现在我保存在文件中并读出来,但我不想保存。我能做什么? 现在我有了这段代码:

sf::SoundBuffer sb = getSoundBuffer(new_channels,sample_rate);
sb.saveToFile("sound.wav");
std::unique_ptr<sf::Music> Buffer(new sf::Music());
Buffer->openFromFile("sound.wav")
 musicAlias[alias] = std::move(Buffer);
...
music->selected = musicAlias[alias].get();

1 个答案:

答案 0 :(得分:2)

sf::Music旨在用于播放从文件加载的长音频数据。如果您想播放声音缓冲区中的音乐,请使用sf::Sound,如下所示:

sf::SoundBuffer sb = getSoundBuffer(new_channels,sample_rate);
std::unique_ptr<sf::Sound> Buffer(new sf::Sound( sb ));
musicAlias[alias] = std::move(Buffer);
...
music->selected = musicAlias[alias].get();

您可能需要将musicAlias的类型更改为std::unique_ptr<sf::Sound>的容器,但这应该有效,因为sf::Sound类提供了与{{1}非常相似的接口}。class。