小编kas*_*urd的帖子

Android Superpowered SDK同时录制和播放

我的目标是在录制设备的麦克风输入时以低延迟播放本地文件.我来到Superpowered库,因为从文档中它提供了低延迟功能.我使用SuperpoweredAdvancedAudioPlayer和SuperpoweredAndroidAudioIO创建了播放器,它播放得很好.

SuperpoweredAndroidAudioIO具有带有参数boolean enableInput,boolean enableOutput的construcor.目前我正在使用enableInput == false和enableOutput == true.当我把这些参数设置为true时 - 没有效果.

我想知道是否可以同时录制文件和播放其他文件?

在库中还有SuperpoweredRecorder类,但它表示不能直接写入磁盘.并且需要使用createWAV,fwrite,closeWAV方法.我已经尝试过单独使用Recorder,但质量不好(它比实际录音快两三倍+声音被分散).这是我用过的最简单的录音代码:

void SuperpoweredFileRecorder::start(const char *destinationPath) {
    file = createWAV(destinationPath, sampleRate, 2);
    audioIO = new SuperpoweredAndroidAudioIO(sampleRate, bufferSize, true, false, audioProcessing, NULL, bufferSize); // Start audio input/output.
}

void SuperpoweredFileRecorder::stop() {
    closeWAV(file);
    audioIO->stop();
}

static bool audioProcessing(void *clientdata, short int *audioInputOutput, int numberOfSamples, int samplerate) {
    fwrite(audioInputOutput, sizeof(short int), numberOfSamples, file);
    return false;
}
Run Code Online (Sandbox Code Playgroud)

可能我不能将Superpowered用于此目的,只需要直接使用OpenSL ES进行录制.

提前致谢!

audio android playback recording android-ndk

5
推荐指数
2
解决办法
2474
查看次数

标签 统计

android ×1

android-ndk ×1

audio ×1

playback ×1

recording ×1