Tap-to-start
Should fix wake lock problem
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
body {
|
body {
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
text-align: center;
|
||||||
background: green;
|
background: green;
|
||||||
color: white;
|
color: white;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|||||||
@@ -5,8 +5,8 @@
|
|||||||
<script src="tuner.js"></script>
|
<script src="tuner.js"></script>
|
||||||
<title>Tuner</title>
|
<title>Tuner</title>
|
||||||
</head>
|
</head>
|
||||||
<body onload="setup()">
|
<body onclick="setup()">
|
||||||
<h1 id="note">Listening...</h1>
|
<h1 id="note">Tap to Start</h1>
|
||||||
<h2 id="tune"></h2>
|
<h2 id="tune"></h2>
|
||||||
<div id="frequency"></div>
|
<div id="frequency"></div>
|
||||||
<div>(<span id="rate">??</span> kHz sample rate)</div>
|
<div>(<span id="rate">??</span> kHz sample rate)</div>
|
||||||
|
|||||||
29
tuner.js
29
tuner.js
@@ -28,12 +28,15 @@ let dom_note;
|
|||||||
let dom_tune;
|
let dom_tune;
|
||||||
|
|
||||||
const setup = () => {
|
const setup = () => {
|
||||||
|
document.body.onclick = undefined;
|
||||||
dom_frequency = document.getElementById("frequency");
|
dom_frequency = document.getElementById("frequency");
|
||||||
dom_rate = document.getElementById("rate");
|
dom_rate = document.getElementById("rate");
|
||||||
dom_note = document.getElementById("note");
|
dom_note = document.getElementById("note");
|
||||||
dom_tune = document.getElementById("tune");
|
dom_tune = document.getElementById("tune");
|
||||||
|
|
||||||
if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {
|
dom_note.innerHTML = "Listening...";
|
||||||
|
|
||||||
|
if (navigator?.mediaDevices?.getUserMedia) {
|
||||||
navigator.mediaDevices
|
navigator.mediaDevices
|
||||||
.getUserMedia({
|
.getUserMedia({
|
||||||
audio: true,
|
audio: true,
|
||||||
@@ -46,18 +49,20 @@ const setup = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const aquireWakeLock = ({ interval, stream }) => {
|
const aquireWakeLock = ({ interval, stream }) => {
|
||||||
if (navigator.wakeLock && navigator.wakeLock.request) {
|
if (navigator?.wakeLock?.request) {
|
||||||
try {
|
try {
|
||||||
navigator.wakeLock.request("screen").then((wakeLock) =>
|
navigator.wakeLock.request("screen").then(
|
||||||
setTimeout(() => {
|
(wakeLock) =>
|
||||||
clearInterval(interval);
|
setTimeout(() => {
|
||||||
wakeLock.release();
|
clearInterval(interval);
|
||||||
stream.getTracks().forEach((track) => track.stop());
|
wakeLock.release();
|
||||||
dom_note.innerHTML = "Restart";
|
stream.getTracks().forEach((track) => track.stop());
|
||||||
dom_note.onclick = window.location.reload;
|
dom_note.innerHTML = "Tap to Start";
|
||||||
dom_tune.innerHTML = "";
|
document.body.onclick = setup;
|
||||||
dom_frequency.innerHTML = "";
|
dom_tune.innerHTML = "";
|
||||||
}, TIMEOUT * 1000)
|
dom_frequency.innerHTML = "";
|
||||||
|
}, TIMEOUT * 1000),
|
||||||
|
(err) => console.error("Error requesting wakeLock", err)
|
||||||
);
|
);
|
||||||
} catch (err) {}
|
} catch (err) {}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user