This commit is contained in:
Timothy Jaeryang Baek
2026-04-01 05:40:32 -05:00
parent d7a5a903a6
commit 0f8d7982e1

View File

@@ -58,6 +58,34 @@
return `${minutes}:${formattedSeconds}`;
};
let wakeLock = null;
const requestWakeLock = async () => {
if ('wakeLock' in navigator) {
try {
wakeLock = await navigator.wakeLock.request('screen');
console.log('Wake Lock acquired');
wakeLock.addEventListener('release', () => {
console.log('Wake Lock released');
});
} catch (err) {
console.log('Wake Lock request failed:', err);
}
}
};
const releaseWakeLock = async () => {
if (wakeLock) {
try {
await wakeLock.release();
} catch (err) {
console.log('Wake Lock release failed:', err);
}
wakeLock = null;
}
};
let stream;
let speechRecognition;
@@ -216,11 +244,13 @@
mimeType: mineTypes.find((type) => MediaRecorder.isTypeSupported(type))
});
mediaRecorder.onstart = () => {
mediaRecorder.onstart = async () => {
console.log('Recording started');
loading = false;
startDurationCounter();
await requestWakeLock();
audioChunks = [];
analyseAudio(stream);
};
@@ -333,6 +363,8 @@
speechRecognition.stop();
}
await releaseWakeLock();
stopDurationCounter();
audioChunks = [];
visualizerData = Array(VISUALIZER_BUFFER_LENGTH).fill(0);
@@ -354,6 +386,8 @@
}
clearInterval(durationCounter);
await releaseWakeLock();
if (stream) {
const tracks = stream.getTracks();
tracks.forEach((track) => track.stop());
@@ -376,8 +410,15 @@
}
};
const handleVisibilityChange = async () => {
if (recording && document.visibilityState === 'visible') {
await requestWakeLock();
}
};
onMount(() => {
window.addEventListener('keydown', handleKeyDown);
document.addEventListener('visibilitychange', handleVisibilityChange);
// listen to width changes
resizeObserver = new ResizeObserver(() => {
@@ -396,6 +437,8 @@
onDestroy(() => {
window.removeEventListener('keydown', handleKeyDown);
document.removeEventListener('visibilitychange', handleVisibilityChange);
releaseWakeLock();
// remove resize observer
resizeObserver.disconnect();
});