超级SDK - 监控麦克风输入

时间:2015-07-24 19:41:00

标签: android c++ audio real-time

我已经从Superpowered SDK下载并测试了CrossExample Android应用,这是我的问题: 我怎样才能实时收听手机的麦克风?我需要一些示例代码...... 我的目标是将一些滤波器应用于音频输入(麦克风)并立即收听结果。

非常感谢!

2 个答案:

答案 0 :(得分:5)

实际上很容易获得音频输入。您只需在SuperpoweredAndroidAudioIO的构造函数中启用输入。为此,请将第三个参数设置为true,如下所示:

audioSystem = new SuperpoweredAndroidAudioIO(
    samplerate, buffersize, true, true, audioProcessing, this, -1, SL_ANDROID_STREAM_MEDIA, buffersize * 2);

现在,您可以在示例的process方法中获得音频输入。这意味着在

bool SuperpoweredExample::process(short int *output, unsigned int numberOfSamples)

相同的缓冲区用于输入和输出。输入将写入short int *output,您可以从unsigned int numberOfSamples获取长度。您可能需要将short int *output重命名为short int *inputoutput以获得澄清。

确保在使用输出数据覆盖输入之前处理输入。如果要应用任何效果,只需在处理方法中对输入/输出缓冲区执行此操作。

另外,请确保您RECORD_AUDIO拥有AndroidManifest.xml权限:

<uses-permission android:name="android.permission.RECORD_AUDIO" />

答案 1 :(得分:0)

CrossExample将演示使用不同的效果混合两个预定义的音频剪辑(来自项目的原始文件夹)。团队仍然没有发布将展示您正在寻找的功能的示例。这不是一件容易的事(但相当复杂),所以我建议你深入了解一些现有的例子,直到他们发布更多的代码/教程,以便你以后更轻松地解决这些问题。