2016-11-11 56 views
2

我想我錯誤地將SuperpoweredAndroidAudioIO傳遞給SuperpoweredRecorderprocess()方法。SuperpoweredRecorder:不創建臨時文件或錄製任何音頻

我的過程中的回調看起來象下面這樣:

bool SuperpoweredExample::process(short int *audioIO, unsigned int numberOfSamples) { 
    if (recording) { 
     recordProcess(audioIO, numberOfSamples); 
    } 
    return true; 

recordProcess:

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)); 
} 

SuperpoweredRecorderprocess()總是返回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); 

我繼陝西():

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()嗎?它說只用於離線處理。

回答

1

我添加了一個單獨的緩衝區進行錄製,似乎工作。

+0

我以爲你說你已經嘗試創建另一個緩衝區只是爲了錄製? – user1147171