#include <soloud.h> #include <soloud_wav.h> #include <soloud_wavstream.h> #include <chrono> #include <thread> using namespace std; using namespace std::chrono_literals; int main() { SoLoud::Soloud soloud; soloud.init(); // load background track SoLoud::WavStream bgm; bgm.load("../bgm.ogg"); // NOTE: SoLoud::Wav is poorly named as it also supports FLAC, MP3 and OGG // load three short samples SoLoud::Wav sfx[3]; sfx[0].load("../sfx1.wav"); sfx[1].load("../sfx2.wav"); sfx[2].load("../sfx3.wav"); // start the background track SoLoud::handle bgm_handle = soloud.play(bgm); // play each sample sequentially this_thread::sleep_for(500ms); soloud.play(sfx[0]); this_thread::sleep_for(500ms); soloud.play(sfx[1]); soloud.setPause(bgm_handle, true); this_thread::sleep_for(500ms); soloud.play(sfx[2]); soloud.setPause(bgm_handle, false); this_thread::sleep_for(500ms); // play all samples simultaniously for (unsigned i = 0; i < 3; i++) soloud.play(sfx[i]); this_thread::sleep_for(1000ms); // stop all audio and exit soloud.deinit(); return 0; }