在Android上访问实时麦克风数据的最低级别

我刚刚编写了一些使用Audio Units的iOS代码,以硬件采样率从麦克风获取单声道浮点流.

它最终成了很多代码!首先,我必须设置一个音频会话,指定所需的48kHz采样率.然后我必须启动会话并检查实际返回的采样率.这将是实际的硬件采样率.然后我必须设置一个音频单元,实现渲染回调.

但我至少能够使用硬件采样率(因此我可以确定通过软件重新采样没有信息丢失).而且我还能够设置尽可能小的缓冲区大小,以便实现最小的延迟.

android上的类似过程是什么?

我怎样才能找到电线?

PS目前还没有提到它,但似乎可以在JNI级别工作.

解决方法

AudioRecord课程应该能够帮助您从Java / Kotlin方面做到所需.这将以您请求的采样率为您提供原始PCM数据(假设硬件支持它.)由您的应用程序以高效和及时的方式从AudioRecord类中读取数据,因此它不会溢出缓冲区并丢弃数据.

相关文章

Android 如何解决dialog弹出时无法捕捉Activity的back事件 在...
Android实现自定义带文字和图片的Button 在Android开发中经常...
Android 关于长按back键退出应用程序的实现最近在做一个Andr...
android自带的时间选择器只能精确到分,但是对于某些应用要求...