使用OpenSL的所有Android设备以8KHz采样率进行语音通信

使用OpenSL的所有Android设备以8KHz采样率进行语音通信,第1张

概述我需要创建一个VOIP应用程序,我正在使用OpenSL ES.我需要以8KHz的采样率捕获并播放所有 Android设备的pcm音频数据.但是,当我以8KHz的采样率捕获音频并同时播放(语音通信)时,它会产生噪音,并且对于某些设备(如Samsung Galaxy S3,S4等)的音频会失真.我知道,有一个特定的首选采样率对于每个设备,我想知道是否有任何解决方法或任何方式使用8KHz采样率只是没有任 我需要创建一个VOIP应用程序,我正在使用OpenSL ES.我需要以8KHz的采样率捕获并播放所有 Android设备的pcm音频数据.但是,当我以8KHz的采样率捕获音频并同时播放(语音通信)时,它会产生噪音,并且对于某些设备(如Samsung galaxy S3,S4等)的音频会失真.我知道,有一个特定的首选采样率对于每个设备,我想知道是否有任何解决方法或任何方式使用8KHz采样率只是没有任何失真?

我尝试增加缓冲区大小和许多其他东西,但未能找到最佳和通用的解决方案.我需要为我的编码器和解码器以8KHz采样的音频数据.我把音频数据重新采样,然后传递给我的编码器或解码器,这是我的第二个想法,但它不是我想要的解决方案.

我发现CSipSimple使用了OpenSL,我也经历了一些代码.但是,我找不到解决办法,也许我无法理解在哪里集中注意力.
我被困在这里!

解决方法 这是我解决问题的方法:

我正在使用OpenSL ES开发AndroID音频流,this教程对我帮助很大.我按照这里的说明进行 *** 作.然后我发现使用这种方法的音频流对某些设备(主要是三星设备)效果不佳.我尝试了很多东西,比如增加缓冲区大小,禁用环境混响等等.我发现this的答案对提高流媒体性能非常有用.

最后,我发现音频失真是因为我必须用来同步缓冲开关的时钟.建议使用无锁结构以获得更好的音频性能.然后我选择了Victor Lazzarini的另一种方法,即无锁音频IO. Lock-free audio IO with OpenSL ES on Android的这篇文章帮助实现了无锁结构以及更好的音频性能.

总结

以上是内存溢出为你收集整理的使用OpenSL的所有Android设备以8KHz采样率进行语音通信全部内容,希望文章能够帮你解决使用OpenSL的所有Android设备以8KHz采样率进行语音通信所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1127575.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存