我认为我错误地将 SuperpoweredAndroidAudioIO
传递给了 SuperpoweredRecorder
的 process()
方法。
我的流程回调如下所示:
bool SuperpoweredExample::process(short int *audioIO, unsigned int numberOfSamples) {
if (recording) {
recordProcess(audioIO, numberOfSamples);
}
return true;
记录过程:
void SuperpoweredExample::recordProcess(short *input, unsigned int numberOfSamples) {
SuperpoweredShortIntToFloat(input, stereoBuffer, numberOfSamples);
__android_log_print(ANDROID_LOG_VERBOSE, "SuperpoweredExample", "%i",
recorder->process(stereoBuffer, NULL, numberOfSamples));
}
SuperpoweredRecorder
的 process()
总是返回 0,所以它还没有开始记录。我认为这是因为我没有正确传递输入。
更多相关代码:
stereoBuffer = (float *) memalign(16, (buffersize + 16) * sizeof(float) * 2);
audioSystem = new SuperpoweredAndroidAudioIO(samplerate, buffersize, true, true,
audioProcessing, this, -1, SL_ANDROID_STREAM_MEDIA,
buffersize * 2);
我的 onRecord():
void SuperpoweredExample::onRecord(bool record) {
if (!record) {
recording = false;
recorder->stop();
} else {
recording = true;
__android_log_print(ANDROID_LOG_VERBOSE, "SuperpoweredExample", "%s", tempPath.c_str());
recorder->start((tempPath + "_TEMP").c_str());
};
}
如何使用 SuperpoweredRecorder
创建文件?
我已经尝试创建另一个缓冲区来记录,但我遇到了同样的问题。我应该使用 createWav()
吗?它说只将其用于离线处理。
最佳答案
我为记录添加了一个单独的缓冲区,这似乎有效。
关于android - super 记录器 : not creating temp file or recording any audio,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40554615/