<!DOCTYPE html>
<html>
<head>
    <title>Frog Sound (Ultrasound)</title>
    <style>
        #pauseButton {
            display: none; /* Απόκρυψη του κουμπιού Pause αρχικά */
        }
    </style>
</head>
<body>
    <h1>Frog Sound (Ultrasound)</h1>
    <button id="playButton" onclick="playFrogSound()">Play</button>
    <button id="pauseButton" onclick="pauseFrogSound()">Pause</button>

    <script>
        let audioCtx;
        let oscillator;
        let gainNode;
        let isPlaying = false;
        let interval;

        function playFrogSound() {
            if (isPlaying) return; // Αν ήδη παίζει, δεν κάνουμε τίποτα
            isPlaying = true;

            // Εναλλαγή ορατότητας κουμπιών
            document.getElementById("playButton").style.display = "none";
            document.getElementById("pauseButton").style.display = "inline";

            audioCtx = new (window.AudioContext || window.webkitAudioContext)();

            // Λειτουργία αναπαραγωγής με επαναλαμβανόμενες διάρκειες και παύσεις
            interval = setInterval(() => {
                oscillator = audioCtx.createOscillator();
                gainNode = audioCtx.createGain();

                // Ρύθμιση του ήχου
                oscillator.type = 'sine'; // Κυματομορφή 'sine' για φυσικό ήχο
                // Τυχαία συχνότητα μεταξύ 9 kHz και 19 kHz
                oscillator.frequency.setValueAtTime(9000 + Math.random() * (19000 - 9000), audioCtx.currentTime);

                // Ρύθμιση του gain στο ελάχιστο για χαμηλά decibel
                gainNode.gain.setValueAtTime(0.01, audioCtx.currentTime); // Ελάχιστη ένταση

                oscillator.connect(gainNode);
                gainNode.connect(audioCtx.destination);

                // Εκκίνηση του ήχου
                oscillator.start();
                setTimeout(() => {
                    oscillator.stop(); // Διακοπή του ήχου μετά από 0.4 δευτερόλεπτα
                }, 400);
            }, 1400); // Επαναλαμβάνεται κάθε 1.4 δευτερόλεπτα (0.4 δευτερόλεπτα ήχος + 1 δευτερόλεπτο παύση)
        }

        function pauseFrogSound() {
            if (!isPlaying) return; // Αν δεν παίζει, δεν κάνουμε τίποτα
            isPlaying = false;

            // Εναλλαγή ορατότητας κουμπιών
            document.getElementById("playButton").style.display = "inline";
            document.getElementById("pauseButton").style.display = "none";

            clearInterval(interval); // Διακοπή της επανάληψης
            audioCtx.close(); // Κλείσιμο του AudioContext
            audioCtx = null;
        }
    </script>
</body>
</html>
