Конвертировать html-страницу определения высоты звука в Android - PullRequest
0 голосов
/ 16 ноября 2018

Привет всем, у меня есть html-файл, который определяет частоту входного сигнала микрофона, который прекрасно работает на моем андроид мобильном телефоне, однако однажды я попытался преобразовать его в apk, используя следующий html to apk онлайн-конвертер ( https://www.appsgeyser.com/create/start/) просто показывает экран без определения частоты. Я хочу преобразовать этот HTML-файл в полнофункциональное приложение для Android. Вот мой HTML-код:

<style>
#frequencybox {
background-color: red;
width: 10px;
height: 30px;
margin: 0;}
</style>
<script>
 navigator.getUserMedia = navigator.getUserMedia
                               || navigator.webkitGetUserMedia
                               || navigator.mozGetUserMedia;
        navigator.getUserMedia({ video : false, audio : true }, callback, 
 console.log);
        function callback(stream) {
            var ctx = new AudioContext();
            var mic = ctx.createMediaStreamSource(stream);
            var analyser = ctx.createAnalyser();
            var osc = ctx.createOscillator();
            mic.connect(analyser); 
             osc.connect(ctx.destination);
           //  osc.start(0);
            var data = new Uint8Array(analyser.frequencyBinCount);
            function play() {
                analyser.getByteFrequencyData(data);
                // get fullest bin
                var idx = 0;
                for (var j=0; j < analyser.frequencyBinCount; j++) {
                    if (data[j] > data[idx]) {
                        idx = j;
                    }
                }
                var frequency = idx * ctx.sampleRate / analyser.fftSize;
                console.log(frequency);

             document.getElementById("freq-h1").innerHTML = frequency;
             document.getElementById("frequencybox").style.width = 
 (frequency/10) + 'px';
            osc.frequency.value = frequency;
               requestAnimationFrame(play);
            }
            play();
        }
 </script>
 <body>
 <div id="frequencybox"><div>
 <h1 id="freq-h1"></h1>
 </body>
...