feat: Audio Preview Player #14

Merged
david merged 10 commits from feat/audio-preview-player into main 2026-06-22 09:25:29 +00:00
Showing only changes of commit b69e1d81ab - Show all commits
+11 -1
View File
@@ -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) {