38 lines
1.3 KiB
JavaScript
38 lines
1.3 KiB
JavaScript
(function () {
|
|
if (window.__FluidSynthReady) return;
|
|
|
|
var FLUIDSYNTH_JS_URL;
|
|
var FLUIDSYNTH_WASM_URL;
|
|
|
|
if (window.__FLUIDSYNTH_CDN) {
|
|
FLUIDSYNTH_JS_URL = window.__FLUIDSYNTH_CDN;
|
|
} else {
|
|
// Luôn dùng WASM local — Tauri webview hostname=localhost nên CDN (jsdelivr) bị
|
|
// chặn làm FluidSynth không load, phải rơi về beep. File có sẵn trong source+dist.
|
|
FLUIDSYNTH_JS_URL = '/static/js/vendor/libfluidsynth-2.3.0-sf3.js';
|
|
}
|
|
|
|
FLUIDSYNTH_WASM_URL = FLUIDSYNTH_JS_URL.replace(/\.js$/, '.wasm');
|
|
|
|
window.__FluidSynthLocateWasm = function () { return FLUIDSYNTH_WASM_URL; };
|
|
|
|
window.__FluidSynthReady = new Promise(function (resolve) {
|
|
var script = document.createElement('script');
|
|
script.type = 'module';
|
|
script.textContent = [
|
|
'import FluidsynthModule from "' + FLUIDSYNTH_JS_URL + '";',
|
|
'window.__FluidSynthModuleFactory = FluidsynthModule;',
|
|
'console.log("[FluidSynth] Loaded:", "' + FLUIDSYNTH_JS_URL + '");'
|
|
].join('\n');
|
|
document.head.appendChild(script);
|
|
|
|
var check = setInterval(function () {
|
|
if (window.__FluidSynthModuleFactory) {
|
|
clearInterval(check);
|
|
resolve();
|
|
}
|
|
}, 50);
|
|
setTimeout(function () { clearInterval(check); resolve(); }, 15000);
|
|
});
|
|
})();
|