实际上很容易获得音频输入。您只需在 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 以进行澄清。
确保在用输出数据覆盖之前处理输入。如果您想应用任何效果,只需在处理方法中的输入/输出缓冲区上执行即可。
还要确保您在您的AndroidManifest.xml 中拥有RECORD_AUDIO 权限:
<uses-permission android:name="android.permission.RECORD_AUDIO" />