2012-03-12 96 views
0

我是新来的android平台,我想开发一个应用程序,在后台运行并读取麦克风输入,对其应用转换,并将生成的音频输出到扬声器。实时输出转换后的麦克风输入?

我想知道在这个过程中用户是否感觉到任何延迟,或者是否可以近实时地做到这一点,以便用户可以听到转换后的音频与周围音频同步。谢谢!

回答

1

是,用户会听到一个严重的延迟在使用提供的API的当前未修改的Android设备上尝试实时音频时出现滞后或回声。

总结的是,Android设备配置了相当长的音频缓冲区,据报道它的长度在100到400毫秒范围内,具体取决于特定设备和它运行的Android操作系统版本。 (可以在Android设备上使用更短的缓冲区,在这些设备上可以使用自己的自定义音频驱动程序来构建和安装操作系统的修改定制版本。)

(人类在25 mS附近或某些地方听到回声。 iOS的可以短至5.8毫秒,所以你可能有更好的运气试图建立一个不同的设备平台上的近实时音频处理。)

+0

Galaxy nexus现在的延迟低至20毫秒。 http://forum.xda-developers.com/showthread.php?t=1674836 – Motes 2012-06-14 21:14:10

+0

存在的处理的延迟,但是,是实时采样可能?阅读此:http://stackoverflow.com/questions/19646057/android-realtime-audio-aquisition-loosing-some-samples – Gaucho 2013-10-28 22:17:33

1

在android上的音频处理并不是很好,事实上,说实话,它很糟糕。 android设备上的这种开箱即用的延迟非常糟糕。然而,你可以修改NDK并尝试将基于OpenSL ES的东西放在一起,这将具有显着较低的延迟。

有一个类似的StackOverflow问题:Playing back sound coming from microphone in real-time

其他一些有用的链接:

0

在硬币的另一面,Android的麦克风质量的方法优于IOS质量。我有一个银河s4和一个华为非常低端的手机,录音时都有很好的麦克风质量。