我刚刚编写了一些使用Audio Units的iOS代码,以硬件采样率从麦克风获取单声道浮点流.
它最终成了很多代码!首先,我必须设置一个音频会话,指定所需的48kHz采样率.然后我必须启动会话并检查实际返回的采样率.这将是实际的硬件采样率.然后我必须设置一个音频单元,实现渲染回调.
但我至少能够使用硬件采样率(因此我可以确定通过软件重新采样没有信息丢失).而且我还能够设置尽可能小的缓冲区大小,以便实现最小的延迟.
android上的类似过程是什么?
我怎样才能找到电线?
PS目前还没有提到它,但似乎可以在JNI级别工作.
解决方法
AudioRecord
课程应该能够帮助您从Java / Kotlin方面做到所需.这将以您请求的采样率为您提供原始PCM数据(假设硬件支持它.)由您的应用程序以高效和及时的方式从AudioRecord类中读取数据,因此它不会溢出缓冲区并丢弃数据.