Fix screen wake lock, add https dev server
This commit is contained in:
8
server.py
Normal file
8
server.py
Normal 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()
|
||||||
23
tuner.js
23
tuner.js
@@ -19,6 +19,9 @@ const NOTE_NAMES = [
|
|||||||
// gives us finer-grained FFT buckets
|
// gives us finer-grained FFT buckets
|
||||||
const TARGET_SAMPLE_RATE = 8000;
|
const TARGET_SAMPLE_RATE = 8000;
|
||||||
|
|
||||||
|
// 2 minute screen timeout
|
||||||
|
const TIMEOUT = 120;
|
||||||
|
|
||||||
let dom_frequency;
|
let dom_frequency;
|
||||||
let dom_rate;
|
let dom_rate;
|
||||||
let dom_note;
|
let dom_note;
|
||||||
@@ -37,14 +40,26 @@ const setup = () => {
|
|||||||
})
|
})
|
||||||
.then(handleStream, err => {
|
.then(handleStream, err => {
|
||||||
console.error("Error calling getUserMedia", err);
|
console.error("Error calling getUserMedia", err);
|
||||||
});
|
})
|
||||||
|
.then(aquireWakeLock);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
const aquireWakeLock = ({ interval, stream}) => {
|
||||||
if (navigator.wakeLock && navigator.wakeLock.request) {
|
if (navigator.wakeLock && navigator.wakeLock.request) {
|
||||||
try {
|
try {
|
||||||
navigator.wakeLock
|
navigator.wakeLock
|
||||||
.request("screen")
|
.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) {}
|
} catch (err) {}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -65,7 +80,9 @@ const handleStream = stream => {
|
|||||||
const source = audioContext.createMediaStreamSource(stream);
|
const source = audioContext.createMediaStreamSource(stream);
|
||||||
source.connect(analyser);
|
source.connect(analyser);
|
||||||
|
|
||||||
setInterval(tune(analyser, data), 500);
|
const interval = setInterval(tune(analyser, data), 500);
|
||||||
|
|
||||||
|
return { interval, stream};
|
||||||
};
|
};
|
||||||
|
|
||||||
const tune = (analyser, data) => () => {
|
const tune = (analyser, data) => () => {
|
||||||
|
|||||||
Reference in New Issue
Block a user