Tap-to-start

Should fix wake lock problem
This commit is contained in:
2024-05-20 22:18:38 -07:00
parent dc2957f876
commit 9f64715a13
3 changed files with 20 additions and 14 deletions

View File

@@ -1,6 +1,7 @@
body {
align-items: center;
justify-content: center;
text-align: center;
background: green;
color: white;
display: flex;

View File

@@ -5,8 +5,8 @@
<script src="tuner.js"></script>
<title>Tuner</title>
</head>
<body onload="setup()">
<h1 id="note">Listening...</h1>
<body onclick="setup()">
<h1 id="note">Tap to Start</h1>
<h2 id="tune"></h2>
<div id="frequency"></div>
<div>(<span id="rate">??</span> kHz sample rate)</div>

View File

@@ -28,12 +28,15 @@ let dom_note;
let dom_tune;
const setup = () => {
document.body.onclick = undefined;
dom_frequency = document.getElementById("frequency");
dom_rate = document.getElementById("rate");
dom_note = document.getElementById("note");
dom_tune = document.getElementById("tune");
if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {
dom_note.innerHTML = "Listening...";
if (navigator?.mediaDevices?.getUserMedia) {
navigator.mediaDevices
.getUserMedia({
audio: true,
@@ -46,18 +49,20 @@ const setup = () => {
};
const aquireWakeLock = ({ interval, stream }) => {
if (navigator.wakeLock && navigator.wakeLock.request) {
if (navigator?.wakeLock?.request) {
try {
navigator.wakeLock.request("screen").then((wakeLock) =>
setTimeout(() => {
clearInterval(interval);
wakeLock.release();
stream.getTracks().forEach((track) => track.stop());
dom_note.innerHTML = "Restart";
dom_note.onclick = window.location.reload;
dom_tune.innerHTML = "";
dom_frequency.innerHTML = "";
}, TIMEOUT * 1000)
navigator.wakeLock.request("screen").then(
(wakeLock) =>
setTimeout(() => {
clearInterval(interval);
wakeLock.release();
stream.getTracks().forEach((track) => track.stop());
dom_note.innerHTML = "Tap to Start";
document.body.onclick = setup;
dom_tune.innerHTML = "";
dom_frequency.innerHTML = "";
}, TIMEOUT * 1000),
(err) => console.error("Error requesting wakeLock", err)
);
} catch (err) {}
}