add save sound

This commit is contained in:
larssand
2026-08-28 13:39:12 +02:00
parent 5f79228941
commit fa3e5ee379
6 changed files with 62 additions and 9 deletions

View File

@@ -1024,7 +1024,7 @@ const TRANSLATIONS = {
"audio.max_delay": "Största fördröjning (sek)",
"audio.per_competitor": "Olika passing-ton per förare/bil",
"audio.test": "Testa",
"audio.note": "Effekter får överlappa och blockerar aldrig tidtagningen. Kritiska utrop avbryter lägre prioriterat tal. Saknade ljudfiler använder fallback eller hoppas över.",
"audio.note": "Fasta effekter spelas från ljudpaketets WAV-filer. Röstutrop använder webbläsarens installerade systemröster. Val sparas automatiskt; kritiska utrop avbryter lägre prioriterat tal.",
"audio.effect": "Effekt",
"audio.voice": "Röst",
"audio.track_call": "STOPP PÅ BANAN",
@@ -2131,7 +2131,7 @@ const TRANSLATIONS = {
"audio.max_delay": "Maximum delay (seconds)",
"audio.per_competitor": "Different passing tone per driver/car",
"audio.test": "Test",
"audio.note": "Effects may overlap and never block timing. Critical announcements interrupt lower-priority speech. Missing files use a fallback or are skipped.",
"audio.note": "Fixed effects use WAV files from the sound pack. Voice announcements use the browser installed system voices. Changes save automatically; critical announcements interrupt lower-priority speech.",
"audio.effect": "Effect",
"audio.voice": "Voice",
"audio.track_call": "TRACK CALL",
@@ -2744,7 +2744,7 @@ const raceAudioEngine = createRaceAudioEngine({
speak: (text, options = {}) => new Promise((resolve) => {
let settled = false;
const done = (value) => { if (!settled) { settled = true; resolve(value); } };
const started = speakText(text, { ...options, onEnd: () => done(true), onError: () => done(false) });
const started = speakText(text, { ...options, voiceUri: "", onEnd: () => done(true), onError: () => done(false) });
if (!started) done(false);
else setTimeout(() => done(true), 15000);
}),