SFML SoundBuffer 到音乐缓冲区
SFML SoundBuffer to Music buffer
我有 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
class 提供了非常相似的界面为 sf::Music
class.
我有 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
class 提供了非常相似的界面为 sf::Music
class.