fix CORS errors for local HTML

This commit is contained in:
Zsolt Zitting 2023-10-25 03:49:19 -07:00
parent b92ac793b6
commit 2f3d4c204f
1 changed files with 36 additions and 31 deletions

67
main.js
View File

@ -150,38 +150,43 @@ fetch('Table/music_info.json').then(r=>r.json()).then(r => {
console.error('failed loading music table', e)
})
const seContext = new AudioContext
//const bgmSrc = seContext.createMediaElementSource(bgm)
//bgmSrc.connect(seContext.destination)
let seBuffer = null
fetch('note.wav').then(r => r.arrayBuffer()).then(r => {
seContext.decodeAudioData(r, buf => {
if (buf) {
seBuffer = buf
} else {
console.error('decode failed')
}
}, e => console.error(e))
})
let seRBuffer = null
fetch('232.adx.wav').then(r => r.arrayBuffer()).then(r => {
seContext.decodeAudioData(r, buf => {
if (buf) {
seRBuffer = buf
} else {
console.error('decode failed')
}
}, e => console.error(e))
})
let clkBuffer = null
fetch('52.hca.wav').then(r => r.arrayBuffer()).then(r => {
seContext.decodeAudioData(r, buf => {
if (buf) {
clkBuffer = buf
} else {
console.error('decode failed')
}
}, e => console.error(e))
})
if (window.location.protocol !== "file:") {
fetch('note.wav').then(r => r.arrayBuffer()).then(r => {
seContext.decodeAudioData(r, buf => {
if (buf) {
seBuffer = buf
} else {
console.error('decode failed')
}
}, e => console.error(e))
})
fetch('rnote.wav').then(r => r.arrayBuffer()).then(r => {
seContext.decodeAudioData(r, buf => {
if (buf) {
seRBuffer = buf
} else {
console.error('decode failed')
}
}, e => console.error(e))
})
fetch('52.hca.wav').then(r => r.arrayBuffer()).then(r => {
seContext.decodeAudioData(r, buf => {
if (buf) {
clkBuffer = buf
} else {
console.error('decode failed')
}
}, e => console.error(e))
})
}
function loadUsingSelect() {
const id = music_select.value | 0
const diffi = diffi_select.value | 0
@ -1100,7 +1105,7 @@ function render(now) {
{
while (pendingSeTrigger.length && pendingSeTrigger[0] - currentTs < 100) {
if (!seBuffer) break
if (!seBuffer && !clkBuffer) break
if (pendingSeTrigger[0] - currentTs > -25) {
let bufSrc = seContext.createBufferSource()
bufSrc.buffer = seBuffer
@ -1113,7 +1118,7 @@ function render(now) {
if (!seRBuffer) break
if (pendingSeRTrigger[0] - currentTs > -25) {
let bufSrc = seContext.createBufferSource()
bufSrc.buffer = seRBuffer
bufSrc.buffer = clkBuffer != null ? clkBuffer : seRBuffer
bufSrc.connect(gain)
bufSrc.start(seContext.currentTime + Math.max(0, pendingSeRTrigger[0] - currentTs) / 1000)
}