From 00dbeacc4f4ec57fcc8f2b41b03e95b902d97bce Mon Sep 17 00:00:00 2001 From: Jonathan Frank <41275844+Jonathhhan@users.noreply.github.com> Date: Tue, 20 Dec 2022 02:59:33 +0100 Subject: [PATCH 1/4] Add files via upload --- .../emscripten/library_audioDeviceSelect.js | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 addons/ofxEmscripten/libs/html5audio/lib/emscripten/library_audioDeviceSelect.js diff --git a/addons/ofxEmscripten/libs/html5audio/lib/emscripten/library_audioDeviceSelect.js b/addons/ofxEmscripten/libs/html5audio/lib/emscripten/library_audioDeviceSelect.js new file mode 100644 index 00000000000..08bfd9147a0 --- /dev/null +++ b/addons/ofxEmscripten/libs/html5audio/lib/emscripten/library_audioDeviceSelect.js @@ -0,0 +1,48 @@ +var mediaElement = null; + +function getAudioDevices(){ + var audioInDevices = ""; + var audioOutDevices = ""; + if(!navigator.mediaDevices.enumerateDevices){ + console.log("enumerateDevices() not supported."); + }else{ + navigator.mediaDevices.getUserMedia({audio: true, video: false}).then(s => { + navigator.mediaDevices.enumerateDevices().then((devices) => { + devices.forEach((device) => { + if(device.kind == "audioinput"){ + audioInDevices = audioInDevices.concat(",", `${device.deviceId}`,",", `${device.label}`); + } + if(device.kind == "audiooutput"){ + audioOutDevices = audioOutDevices.concat(",", `${device.groupId}`,",", `${device.label}`); + } + }); + Module.loadAudioInDevices(audioInDevices); + Module.loadAudioOutDevices(audioOutDevices); + }) + .catch((err) => { + console.error(`${err.name}: ${err.message}`); + }); + }); + } +} + +function selectAudioIn(file){ + if (navigator.getUserMedia){ + navigator.getUserMedia( + { audio: { deviceId: { exact: file } } }, + function (audioIn){ + if(mediaElement){ + mediaElement.disconnect(); + } + mediaElement = AUDIO.context.createMediaStreamSource(audioIn); + mediaElement.connect(AUDIO.stream); + }, + function (error){ + console.log("error creating audio in",error); + }); + } +} + +function selectAudioOut(file){ + //AUDIO.context.setSinkId(file); +} From 02f1ef817742e40e1c6f9276c56a4467abdf9a8c Mon Sep 17 00:00:00 2001 From: Jonathan Frank <41275844+Jonathhhan@users.noreply.github.com> Date: Tue, 20 Dec 2022 03:00:05 +0100 Subject: [PATCH 2/4] Update config.emscripten.default.mk --- .../project/emscripten/config.emscripten.default.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/libs/openFrameworksCompiled/project/emscripten/config.emscripten.default.mk b/libs/openFrameworksCompiled/project/emscripten/config.emscripten.default.mk index dbd818e7517..eef13705b5d 100644 --- a/libs/openFrameworksCompiled/project/emscripten/config.emscripten.default.mk +++ b/libs/openFrameworksCompiled/project/emscripten/config.emscripten.default.mk @@ -96,6 +96,7 @@ endif PLATFORM_LDFLAGS = -Wl --gc-sections --preload-file bin/data@data --emrun --bind --profiling-funcs -s USE_FREETYPE=1 -s EXPORTED_RUNTIME_METHODS=allocate -s ALLOW_MEMORY_GROWTH=1 -s MAX_WEBGL_VERSION=2 PLATFORM_LDFLAGS += --js-library $(OF_ADDONS_PATH)/ofxEmscripten/libs/html5video/lib/emscripten/library_html5video.js PLATFORM_LDFLAGS += --js-library $(OF_ADDONS_PATH)/ofxEmscripten/libs/html5audio/lib/emscripten/library_html5audio.js +PLATFORM_LDFLAGS += --post-js $(OF_ADDONS_PATH)/ofxEmscripten/libs/html5audio/lib/emscripten/library_audioDeviceSelect.js ifdef PROJECT_EMSCRIPTEN_TEMPLATE PLATFORM_LDFLAGS += --shell-file $(PROJECT_EMSCRIPTEN_TEMPLATE) From 63ec3cb3d27d309da98a32e33c67dda3e2829a52 Mon Sep 17 00:00:00 2001 From: Jonathan Frank <41275844+Jonathhhan@users.noreply.github.com> Date: Tue, 20 Dec 2022 04:31:09 +0100 Subject: [PATCH 3/4] Update library_html5audio.js --- .../lib/emscripten/library_html5audio.js | 21 ------------------- 1 file changed, 21 deletions(-) diff --git a/addons/ofxEmscripten/libs/html5audio/lib/emscripten/library_html5audio.js b/addons/ofxEmscripten/libs/html5audio/lib/emscripten/library_html5audio.js index cd0ff957fd9..d9b0ad129b9 100644 --- a/addons/ofxEmscripten/libs/html5audio/lib/emscripten/library_html5audio.js +++ b/addons/ofxEmscripten/libs/html5audio/lib/emscripten/library_html5audio.js @@ -173,27 +173,6 @@ var LibraryHTML5Audio = { } } }; - - if (inputChannels > 0){ - navigator.getUserMedia = navigator.getUserMedia || - navigator.webkitGetUserMedia || - navigator.mozGetUserMedia || - navigator.msGetUserMedia; - - if (navigator.getUserMedia){ - navigator.getUserMedia( - {audio: true}, - function (audioIn){ - var mediaElement = AUDIO.context.createMediaStreamSource(audioIn); - mediaElement.connect(stream); - AUDIO.mediaElement = mediaElement; - }, - function (error){ - console.log("error creating audio in",error); - }); - } - } - stream.connect(AUDIO.fft); AUDIO.stream = stream; }, From 21461204f916caaf46d20dbd10073da56c06d04d Mon Sep 17 00:00:00 2001 From: Jonathan Frank <41275844+Jonathhhan@users.noreply.github.com> Date: Tue, 20 Dec 2022 04:32:16 +0100 Subject: [PATCH 4/4] Update library_html5audio.js --- .../libs/html5audio/lib/emscripten/library_html5audio.js | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/ofxEmscripten/libs/html5audio/lib/emscripten/library_html5audio.js b/addons/ofxEmscripten/libs/html5audio/lib/emscripten/library_html5audio.js index d9b0ad129b9..b6ba5361717 100644 --- a/addons/ofxEmscripten/libs/html5audio/lib/emscripten/library_html5audio.js +++ b/addons/ofxEmscripten/libs/html5audio/lib/emscripten/library_html5audio.js @@ -173,6 +173,7 @@ var LibraryHTML5Audio = { } } }; + stream.connect(AUDIO.fft); AUDIO.stream = stream; },