超级SDK - 监控麦克风输入

Eze*_*Est 3 c++ audio android real-time

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

非常感谢!

Nic*_*ick 5

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

audioSystem = new SuperpoweredAndroidAudioIO(
    samplerate, buffersize, true, true, audioProcessing, this, -1, SL_ANDROID_STREAM_MEDIA, buffersize * 2);
Run Code Online (Sandbox Code Playgroud)

现在,您将获得process在示例方法中提供的音频输入.这意味着

bool SuperpoweredExample::process(short int *output, unsigned int numberOfSamples)
Run Code Online (Sandbox Code Playgroud)

相同的缓冲区用于输入和输出.写入输入short int *output,您可以从中获取长度unsigned int numberOfSamples.您可能需要重命名short int *outputshort int *inputoutput进行说明.

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

还要确保您拥有以下RECORD_AUDIO权限AndroidManifest.xml:

<uses-permission android:name="android.permission.RECORD_AUDIO" />
Run Code Online (Sandbox Code Playgroud)