AsyncTask获取经过的时间错误

时间:2019-11-26 15:12:15

标签: java android signals

我想测量声音的持续时间,我使用getDataBlock()收集并处理(FFT ...)数组中的声音

当声音大于平均值时,我会检测到声音,然后使用System.currentTimeMillis()来获取时间。并且我显示了重置为正常时的持续时间。 问题在于显示的时间是完全错误的,而且永远都不相同。 它在AsyncTask类中。

protected Void doInBackground(Void... params) {
        while(getBlockingQueue()) {
            // Get targetFq & averageNoise
            int targetFq = getTargetFqMaxSignal();
            double averageNoise = getAverageNoise();
            int averageNoiseMultiplier = 6;

            if (dataBlockingQueue.get(targetFq) > averageNoise * averageNoiseMultiplier) {
                startBeep = System.currentTimeMillis();
                alreadyBeep = true;
            } else {
                if (alreadyBeep) {
                    System.out.println("BEEP ms : " + (System.currentTimeMillis() - startBeep));
                    alreadyBeep = false;
                    startBeep = 0;
                }
            }
        }

        return null;
    }

0 个答案:

没有答案