Fix screen wake lock, add https dev server

This commit is contained in:
2023-06-01 16:24:49 -07:00
parent 458585758a
commit b1937939b5
2 changed files with 28 additions and 3 deletions

8
server.py Normal file
View File

@@ -0,0 +1,8 @@
from http.server import ThreadingHTTPServer, SimpleHTTPRequestHandler
import ssl
httpd = ThreadingHTTPServer(('', 8443), SimpleHTTPRequestHandler)
ssl_context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
ssl_context.load_cert_chain('/Users/amgutier/certs/fullchain.pem', keyfile='/Users/amgutier/certs/privkey.pem')
httpd.socket = ssl_context.wrap_socket(httpd.socket, server_side=True)
httpd.serve_forever()

View File

@@ -19,6 +19,9 @@ const NOTE_NAMES = [
// gives us finer-grained FFT buckets
const TARGET_SAMPLE_RATE = 8000;
// 2 minute screen timeout
const TIMEOUT = 120;
let dom_frequency;
let dom_rate;
let dom_note;
@@ -37,14 +40,26 @@ const setup = () => {
})
.then(handleStream, err => {
console.error("Error calling getUserMedia", err);
});
})
.then(aquireWakeLock);
}
};
const aquireWakeLock = ({ interval, stream}) => {
if (navigator.wakeLock && navigator.wakeLock.request) {
try {
navigator.wakeLock
.request("screen")
.then(wakeLock => setTimeout(() => wakeLock.release(), 60000));
.then(wakeLock => setTimeout(() => {
clearInterval(interval);
wakeLock.release();
stream.getTracks().forEach(track => track.stop());
dom_note.innerHTML = "Done";
dom_note.onclick = () => { window.location.reload() };
dom_tune.innerHTML = "";
dom_frequency.innerHTML = "";
}, TIMEOUT * 1000));
} catch (err) {}
}
};
@@ -65,7 +80,9 @@ const handleStream = stream => {
const source = audioContext.createMediaStreamSource(stream);
source.connect(analyser);
setInterval(tune(analyser, data), 500);
const interval = setInterval(tune(analyser, data), 500);
return { interval, stream};
};
const tune = (analyser, data) => () => {