frontend: Don't let screen sleep when transcribing.

This commit is contained in:
David Gumberg 2025-08-12 17:30:57 -07:00
parent 15c3df1cba
commit 7f93c4b978

View file

@ -385,6 +385,7 @@
let chunkDuration = 1000;
let websocketUrl = "ws://localhost:8000/asr";
let userClosing = false;
let wakeLock = null;
let startTime = null;
let timerInterval = null;
let audioContext = null;
@ -712,6 +713,16 @@
async function startRecording() {
try {
// https://developer.mozilla.org/en-US/docs/Web/API/Screen_Wake_Lock_API
// create an async function to request a wake lock
try {
wakeLock = await navigator.wakeLock.request("screen");
} catch (err) {
// The Wake Lock request has failed - usually system related, such as battery.
console.log("Error acquiring wake lock.")
}
const stream = await navigator.mediaDevices.getUserMedia({ audio: true });
audioContext = new (window.AudioContext || window.webkitAudioContext)();
@ -741,6 +752,10 @@
}
async function stopRecording() {
wakeLock.release().then(() => {
wakeLock = null;
});
userClosing = true;
waitingForStop = true;