gpt4 book ai didi

c++ - SFML SoundBuffer 到音乐缓冲区

转载 作者:搜寻专家 更新时间:2023-10-31 02:18:08 24 4
gpt4 key购买 nike

我有 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();

最佳答案

类(class)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类提供与 sf::Music 非常相似的接口(interface)类。

关于c++ - SFML SoundBuffer 到音乐缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34832461/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com