Stop tool status audio before final speech
This commit is contained in:
1 parent
727827ac32
commit
c60031c957
1 file changed
+19
-8
@@ -113,8 +113,8 @@ class Filter:
|
|||||||
const safeCategory = allowed.includes(category) ? category : 'generic';
|
const safeCategory = allowed.includes(category) ? category : 'generic';
|
||||||
const timers = window.__mikeAIToolStatusTimers ||= new Map();
|
const timers = window.__mikeAIToolStatusTimers ||= new Map();
|
||||||
if (timers.has(key)) return;
|
if (timers.has(key)) return;
|
||||||
const timer = window.setTimeout(async () => {{
|
const state = {{ timer: undefined, audio: undefined }};
|
||||||
timers.delete(key);
|
state.timer = window.setTimeout(async () => {{
|
||||||
let enabled = false;
|
let enabled = false;
|
||||||
try {{
|
try {{
|
||||||
const local = JSON.parse(localStorage.getItem('settings') || '{{}}');
|
const local = JSON.parse(localStorage.getItem('settings') || '{{}}');
|
||||||
@@ -131,15 +131,22 @@ class Filter:
|
|||||||
}}
|
}}
|
||||||
}}
|
}}
|
||||||
}} catch (_) {{}}
|
}} catch (_) {{}}
|
||||||
if (!enabled) return;
|
if (!enabled) {{
|
||||||
|
timers.delete(key);
|
||||||
|
return;
|
||||||
|
}}
|
||||||
try {{
|
try {{
|
||||||
const audio = new Audio(`/static/tool-status/${{safeCategory}}.mp3?status=v1`);
|
const audio = new Audio(`/static/tool-status/${{safeCategory}}.mp3?status=v1`);
|
||||||
|
state.audio = audio;
|
||||||
audio.preload = 'auto';
|
audio.preload = 'auto';
|
||||||
audio.volume = 0.92;
|
audio.volume = 0.92;
|
||||||
|
audio.addEventListener('ended', () => timers.delete(key), {{ once: true }});
|
||||||
await audio.play();
|
await audio.play();
|
||||||
}} catch (_) {{}}
|
}} catch (_) {{
|
||||||
|
timers.delete(key);
|
||||||
|
}}
|
||||||
}}, 850);
|
}}, 850);
|
||||||
timers.set(key, timer);
|
timers.set(key, state);
|
||||||
}})();
|
}})();
|
||||||
""".strip()
|
""".strip()
|
||||||
try:
|
try:
|
||||||
@@ -166,9 +173,13 @@ class Filter:
|
|||||||
(() => {{
|
(() => {{
|
||||||
const key = {json.dumps(key)};
|
const key = {json.dumps(key)};
|
||||||
const timers = window.__mikeAIToolStatusTimers;
|
const timers = window.__mikeAIToolStatusTimers;
|
||||||
const timer = timers && timers.get(key);
|
const state = timers && timers.get(key);
|
||||||
if (timer !== undefined) {{
|
if (state !== undefined) {{
|
||||||
window.clearTimeout(timer);
|
if (state.timer !== undefined) window.clearTimeout(state.timer);
|
||||||
|
if (state.audio) {{
|
||||||
|
state.audio.pause();
|
||||||
|
state.audio.currentTime = 0;
|
||||||
|
}}
|
||||||
timers.delete(key);
|
timers.delete(key);
|
||||||
}}
|
}}
|
||||||
}})();
|
}})();
|
||||||
|
|||||||
Reference in new issue
Block a user