如何解决NaN错误?

时间:2018-03-30 14:01:47

标签: javascript

我前几天询问过这个问题,但没有包含足够的代码。我基本上在 JavaScript 中收到NaN错误,我的麦克风输入信号显示在-36和'NaN'之间。我明白这意味着'不是一个数字',但我不知道如何解决它。下面我在 Tone.js 框架中添加了我的代码和'getValue'函数中的代码。

我的代码:

function checkLevel() {

    var linearLevel = levelMeter.getValue();
    var minLeveldB = Tone.gainToDb(0.0000761);
    var maxLeveldB = Tone.gainToDb(0.0157895);

    var leveldB = Tone.gainToDb(linearLevel);
    var absoluteLevel = Math.abs(leveldB);

    if (leveldB < minLeveldB) {
        leveldB = minLeveldB;
    }

    if (leveldB > maxLeveldB) {
        leveldB = maxLeveldB;
    }

    var n = leveldB.toFixed(0); // Rounds input signal down to 0 decimal places

    if (ISMICOPEN) {
        console.log(n); // Logs the rounded number to the console
    }

    decibelMeter.innerText = n; // Displays the input on the screen
}
window.setInterval(checkLevel, 700);

其中levelMeter是新的Tone.js仪表实例,decibelMeter是HTML中用于显示信号的范围。

Tone.js getValue()代码:

 /**
     *  Get the signal value of the incoming signal
     *  @returns {Number}
     */
    Tone.Meter.prototype.getValue = function () {
        this._analyser.type = 'waveform';
        var value = this._analyser.getValue();
        return value[0];
    };

谢谢!

0 个答案:

没有答案