从 MIC 读取 android AudioRecord 振幅

标签 android audio record

我正在尝试录制来自 MIC 的声音并绘制实时图表。我能够记录和绘制图表。问题是使用下面的代码记录的值不准确,例如……下图是我在完全没有声音时得到的。我看过使用 fft 的示例,但我不确定这对我的情况是否有帮助,因为我正在尝试绘制时域图,但我认为没有将其转换为频域的目的(目前)。其他人使用的是平均功率,这可能会有所帮助,但我不确定。

感谢您的帮助。

enter image description here

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();

最佳答案

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

此外,麦克风可能只是在记录背景噪音。

关于从 MIC 读取 android AudioRecord 振幅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10579184/

相关文章:

audio - 使用Core Audio从AIFF提取花车

mysql - 当在数据库中删除某些内容时,如何更改其他记录以便记录的 id 发生变化

Java录制/混合两个音频流

java - 澄清 Android Activity onPause 和 onRestart

android - 深度链接 - 通过另一个 Ionic 应用程序打开一个 Ionic 应用程序

c# - 对象被销毁时 audio.play() 不工作

android - 如何用Appium为android录制测试用例?

android - 使用 view pager2 和嵌套导航正确使用导航组件

android - 在 Android 支持库中自定义导航 View

javascript - 播放音频并突出显示带暂停选项的文本