安卓AudioRecord幅度从MIC读(android AudioRecord amplitude

2019-07-29 09:07发布

我想记录来自MIC声音并绘制现场图。 我能够记录和绘制图形。 问题是,使用下面的代码记录的值是不准确的,例如......下面的图片是我得到的时候没有声音都存在。 我已经看到了使用FFT的例子,但我肯定NOOT如果这将是任何帮助我的情况下,我想画一个时域图,我看不出有什么目的,将其转换为频域(现在)。 别人都在用平均功率,这可能是有益的,但我不知道。

谢谢你的帮助。

bufferSize = AudioRecord.getMinBufferSize(RECORDER_SAMPLERATE,RECORDER_CHANNELS,RECORDER_AUDIO_ENCODING);

    recorder = new AudioRecord(MediaRecorder.AudioSource.MIC,
            RECORDER_SAMPLERATE, RECORDER_CHANNELS,RECORDER_AUDIO_ENCODING, bufferSize);

    short data [] = new short[bufferSize];

    while (!Thread.interrupted()) {

        recorder.startRecording();

        recorder.read(data, 0, bufferSize);

        recorder.stop();

        for (short s : data)
        {
            try {
                Thread.sleep((long) 300.00);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            postUI (Math.abs(s));
        }
    }

    recorder.release();

Answer 1:

对于任何人都在寻找一种方式来做到这一点,看看三星的奇妙例如完整的源代码



Answer 2:

尝试使用更高的采样率。 最大值为48000,但44100是标准的。

此外,可以将麦克风恰好在录制背景噪音。



文章来源: android AudioRecord amplitude reading from MIC