Tap-to-start
Should fix wake lock problem
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
body {
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
text-align: center;
|
||||
background: green;
|
||||
color: white;
|
||||
display: flex;
|
||||
|
||||
@@ -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>
|
||||
|
||||
29
tuner.js
29
tuner.js
@@ -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) {}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user