AudioRecord缓冲区在android中消失

Posted

技术标签:

【中文标题】AudioRecord缓冲区在android中消失【英文标题】:AudioRecord buffer wipe out in android 【发布时间】:2012-06-20 03:20:40 【问题描述】:

根据文档,在 android 中读取阻塞调用,但是如果我们使用读取调用将数据读入自定义缓冲区,android 音频缓冲区会发生什么情况

    Android 音频缓冲区是否会在读取后清除其数据? 如果大量不同频率的声音信号入射到安卓录音机上会怎样? 有没有办法在android中捕获指定频率的声波? 如何通过 android 录音机本身捕获从 android(使用音轨)发出的声波,即如果我发出特定频率的声波,我怎么知道我捕获了相同的频率?

【问题讨论】:

【参考方案1】:

Android 音频缓冲区是否会在读取后清除其数据?

是的

如果android录音机出现大量声音信号会怎样?

我不确定你的意思,Android 会记录麦克风中的任何内容。如果您的应用在从缓冲区读取之前等待的时间过长,则会出现溢出并且您开始丢失数据。

有没有办法在android中捕捉指定频率的声波?

您的意思是产生特定频率的声音?为此使用ToneGenerator 来识别频率,那么您需要更复杂的算法,其中之一是zero-crossings

如何通过android录音机本身捕获从android发出的声波(使用音轨)?

您只是照常录制。我没有使用音轨,但我使用了SoundPool 来播放声音,然后使用 Android 的 API 录制它们

【讨论】:

以上是关于AudioRecord缓冲区在android中消失的主要内容,如果未能解决你的问题,请参考以下文章

Android多媒体功能开发(11)——使用AudioRecord类录制音频

AudioRecord 类的问题

无法在 Android 中使用 AudioRecord 进行录制

Android:java.lang.IllegalArgumentException:无效的音频缓冲区大小

我想检查android中声音的响度

无法在 Android 中播放使用 AudioRecord 录制的 pcm 文件