我需要创建一个 VOIP 应用程序并且我正在使用 OpenSL ES。我需要为所有 android 设备以 8KHz 采样率捕获和播放 pcm 音频数据。但是,当我以 8KHz 采样率捕获音频并同时播放(语音通信)时,它会产生噪音,并且对于三星 Galaxy S3、S4 等某些设备,音频会失真。我知道,有一个特定的首选采样率对于每个设备,我想知道是否有任何解决方法或任何方法可以仅使用 8KHz 采样率而没有任何失真?
我尝试增加缓冲区大小和许多其他事情,但未能找到最佳和通用的解决方案。我的编码器和解码器需要以 8KHz 采样的音频数据。作为我的第二个想法,我在将音频数据传递给我的编码器或解码器之前对其进行了重新采样,但这不是我正在寻找的解决方案。
我发现 CSipSimple 使用了 OpenSL,并且我也浏览了他们的一些代码。但是,我找不到解决方案,可能是我不明白该集中在哪里。我被困在这里了!