У меня есть SoundBuffer. Я хочу, чтобы этот буфер переместился в Music.
Пока я сохраняю в файле и зачитываю, но не хочу сохранять. Что я могу сделать?
Теперь у меня есть этот код:
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();
Класс 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
учебный класс.
Других решений пока нет …