feat: Audio Preview Player #14
+11
-1
@@ -199,14 +199,20 @@ async function browseWavs() {
|
|||||||
const dir = document.getElementById('wav-dir').value;
|
const dir = document.getElementById('wav-dir').value;
|
||||||
const list = document.getElementById('wav-list');
|
const list = document.getElementById('wav-list');
|
||||||
list.innerHTML = 'Loading...';
|
list.innerHTML = 'Loading...';
|
||||||
|
console.log('browseWavs: dir =', dir);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const resp = await fetch(`${API}/list-wavs?dir=${encodeURIComponent(dir)}`);
|
const url = `${API}/list-wavs?dir=${encodeURIComponent(dir)}`;
|
||||||
|
console.log('browseWavs: fetching', url);
|
||||||
|
const resp = await fetch(url);
|
||||||
|
console.log('browseWavs: response status', resp.status, 'ok', resp.ok);
|
||||||
|
|
||||||
if (!resp.ok) {
|
if (!resp.ok) {
|
||||||
list.innerHTML = '<span class="no-files">HTTP ' + resp.status + '</span>';
|
list.innerHTML = '<span class="no-files">HTTP ' + resp.status + '</span>';
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const data = await resp.json();
|
const data = await resp.json();
|
||||||
|
console.log('browseWavs: parsed data', data, 'type', typeof data, 'isArray', Array.isArray(data));
|
||||||
if (!data || data.error) {
|
if (!data || data.error) {
|
||||||
list.innerHTML = '<span class="no-files">Error: ' + (data && data.error ? data.error : 'server error') + '</span>';
|
list.innerHTML = '<span class="no-files">Error: ' + (data && data.error ? data.error : 'server error') + '</span>';
|
||||||
return;
|
return;
|
||||||
@@ -215,6 +221,7 @@ async function browseWavs() {
|
|||||||
list.innerHTML = '<span class="no-files">No WAV files found</span>';
|
list.innerHTML = '<span class="no-files">No WAV files found</span>';
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
console.log('browseWavs: found', data.length, 'wavs');
|
||||||
list.innerHTML = data.map(f => `
|
list.innerHTML = data.map(f => `
|
||||||
<div class="wav-item" data-file="${esc(f)}">
|
<div class="wav-item" data-file="${esc(f)}">
|
||||||
<span class="wav-name" title="${esc(f)}">${esc(f)}</span>
|
<span class="wav-name" title="${esc(f)}">${esc(f)}</span>
|
||||||
@@ -222,13 +229,16 @@ async function browseWavs() {
|
|||||||
</div>
|
</div>
|
||||||
`).join('');
|
`).join('');
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
console.error('browseWavs: error', e);
|
||||||
list.innerHTML = 'Failed: ' + e.message;
|
list.innerHTML = 'Failed: ' + e.message;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async function playWav(filename) {
|
async function playWav(filename) {
|
||||||
|
console.log('playWav:', filename);
|
||||||
if (!audioCtx) {
|
if (!audioCtx) {
|
||||||
audioCtx = new AudioContext();
|
audioCtx = new AudioContext();
|
||||||
|
console.log('playWav: created AudioContext');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (currentSource) {
|
if (currentSource) {
|
||||||
|
|||||||
Reference in New Issue
Block a user