【问题标题】:Callback in android native for Superpowered audio SDK用于 Superpowered 音频 SDK 的 Android 本机回调
【发布时间】:2017-09-17 22:17:48
【问题描述】:

我在用于 android 的 superpowered sdk 中实现 SuperpoweredRecorderStoppedCallback 时遇到问题。我试图像 CrossedExample 中的玩家回调一样设置它,但我一定遗漏了一些东西。

static void recordCallback(void *clientData) {
    __android_log_print(ANDROID_LOG_DEBUG, "LOG_callback record", "text:%i ", 
clientData);
};

然后我尝试像播放器一样设置录音机 - 我让它录音很好,但我没有收到回调。

SuperpoweredExample::SuperpoweredExample(unsigned int samplerate, unsigned int buffersize, const char *path, int fileAoffset, int fileAlength, int fileBoffset, int fileBlength, const char *testPath[]) : activeFx(0), crossValue(0.0f), volB(0.0f), volA(1.0f * headroom) {
stereoBuffer = (float *)memalign(16, (buffersize + 16) * sizeof(float) * 2);
stereoBufferRecording = (float *)memalign(16, (buffersize + 16) * sizeof(float) * 2);
this->sampleRate = sampleRate;

playerA = new SuperpoweredAdvancedAudioPlayer(&playerA , playerEventCallbackA, samplerate, 0);
playerA->open(path, fileAoffset, (fileAlength));
playerB = new SuperpoweredAdvancedAudioPlayer(&playerB, playerEventCallbackB, samplerate, 0);
//playerB->open(path, fileBoffset, (fileBlength));
playerB->open(testPath[1],0,0);

playerA->syncMode = playerB->syncMode = SuperpoweredAdvancedAudioPlayerSyncMode_TempoAndBeat;

roll = new SuperpoweredRoll(samplerate);
filter = new SuperpoweredFilter(SuperpoweredFilter_Resonant_Lowpass, samplerate);
flanger = new SuperpoweredFlanger(samplerate);

recorder = new SuperpoweredRecorder(temp, samplerate,1,2,false, recordCallback, __null);

audioSystem = new SuperpoweredAndroidAudioIO(samplerate, buffersize, false, true, audioProcessing, this, -1, SL_ANDROID_STREAM_MEDIA, buffersize * 2);
audioSystemRecording = new SuperpoweredAndroidAudioIO(sampleRate, buffersize, true, false, audioProcessingRecording, this, buffersize * 2);
}

感谢您的任何想法!

【问题讨论】:

    标签: android audio superpowered


    【解决方案1】:

    在你调用 recorder->stop() 之后,回调会被调用一点点。请注意,您为 clientData 传递了 NULL,然后您尝试打印。

    【讨论】:

    • 我已经设置好录音机并开始工作,但是在 recorder->stop() 之后我看不到任何打印内容。我试过传递除 NULL 之外的其他数据,但没有任何效果。我的播放器回调工作正常,打印正常。不过这看起来大体上是正确的?
    • 如果您修复了该日志打印,您的 recordCallback 是正确的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-22
    • 1970-01-01
    • 2016-12-26
    • 2012-06-22
    • 1970-01-01
    相关资源
    最近更新 更多