Skip to content

Commit f6153e9

Browse files
committed
Work-in-progress
(Off home!)
1 parent 6140011 commit f6153e9

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
#include <emscripten/em_js.h>
2+
#include <emscripten/webaudio.h>
3+
4+
#define AUDIO_STACK_SIZE 2048
5+
6+
EM_JS(bool, addAudio, (EMSCRIPTEN_WEBAUDIO_T ctxHnd, const char* url, const char* label), {
7+
var context = emscriptenGetAudioObject(ctxHnd);
8+
if (context) {
9+
var audio = document.createElement('audio');
10+
audio.src = UTF8ToString(url);
11+
audio.loop = true;
12+
var track = context.createMediaElementSource(audio);
13+
track.connect(context.destination);
14+
15+
var button = document.createElement('button');
16+
button.innerHTML = UTF8ToString(label);
17+
button.onclick = () => {
18+
if (context.state == 'suspended') {
19+
context.resume();
20+
}
21+
audio.play();
22+
};
23+
24+
document.body.appendChild(button);
25+
return true;
26+
}
27+
return false;
28+
});
29+
30+
int main() {
31+
EMSCRIPTEN_WEBAUDIO_T context = emscripten_create_audio_context(NULL);
32+
33+
addAudio(context, "audio_files/emscripten-beat.mp3", "Play Beat");
34+
addAudio(context, "audio_files/emscripten-bass.mp3", "Play Bass");
35+
}

0 commit comments

Comments
 (0)