blob: 25ba0031690d2f2a7f9775edab75589137e01745 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
#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;
}
|