Сверхмощная петля AndroidAudioIO, вывод только на левое ухо

После реализации аудиопетли (от входа микрофона до стандартного вывода) в Android с помощью Superpowered SDK я обнаружил, что вывод слышен только через одну сторону гарнитуры.

Вот как я инициализировал SuperpoweredAndroidAudioIO:

    audioIO = new SuperpoweredAndroidAudioIO (
        samplerate,                     // sampling rate
        buffersize,                     // buffer size
        true,                           // enableInput
        true,                           // enableOutput
        liveAudioProcessing,            // process callback function
        process,                        // clientData
        -1   ,                          // inputStreamType (-1 = default)
        -1,                             // outputStreamType (-1 = default)
        buffersize * 2                  // latencySamples
);

Переключение inputStreamType или outputStreamType на другие параметры в SLES/OpenSLES_AndroidConfiguration.h не помогло решить проблему.

Моя функция обратного вызова liveAudioProcessing выглядит так:

static bool liveAudioProcessing (
        void * clientdata,          // custom pointer to processing bool
        short int *audio,           // buffer of interleaved samples
        int numberOfFrames,         // number of frames to process
        int __unused samplerate     // sampling rate
) {
    SuperpoweredShortIntToFloat(audio, floatBuffer, (unsigned int)numberOfFrames);
    if (*(bool *) clientdata and eq != nullptr) {
        eq->process(floatBuffer, floatBuffer, (unsigned int) numberOfFrames);
    }
    SuperpoweredFloatToShortInt(floatBuffer, audio, (unsigned int)numberOfFrames);
    return true;
}

Проблема возникает, когда оба clientdata являются ложными и истинными, поэтому это не имеет ничего общего с эквалайзером.


person Devin    schedule 27.10.2018    source источник


Ответы (1)


Может быть, ваше Android-устройство предоставляет данные микрофона только с левой стороны? Что произойдет, если внутри обратного вызова будет только «return true» и ничего больше?

person Gabor Szanto    schedule 02.11.2018
comment
Прошу прощения за поздний ответ, проблема оказалась в самом устройстве (Huawei Mate 10 Lite) и, к счастью, не возникает на других устройствах. Спасибо за ваш ответ! - person Devin; 12.12.2018